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

package mxaccess_gateway.v1;

@com.google.protobuf.Generated
public final class MxaccessGateway extends com.google.protobuf.GeneratedFile {
  private MxaccessGateway() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 33,
      /* patch= */ 1,
      /* suffix= */ "",
      "MxaccessGateway");
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code mxaccess_gateway.v1.MxCommandKind}
   */
  public enum MxCommandKind
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>MX_COMMAND_KIND_UNSPECIFIED = 0;</code>
     */
    MX_COMMAND_KIND_UNSPECIFIED(0),
    /**
     * <code>MX_COMMAND_KIND_REGISTER = 1;</code>
     */
    MX_COMMAND_KIND_REGISTER(1),
    /**
     * <code>MX_COMMAND_KIND_UNREGISTER = 2;</code>
     */
    MX_COMMAND_KIND_UNREGISTER(2),
    /**
     * <code>MX_COMMAND_KIND_ADD_ITEM = 3;</code>
     */
    MX_COMMAND_KIND_ADD_ITEM(3),
    /**
     * <code>MX_COMMAND_KIND_ADD_ITEM2 = 4;</code>
     */
    MX_COMMAND_KIND_ADD_ITEM2(4),
    /**
     * <code>MX_COMMAND_KIND_REMOVE_ITEM = 5;</code>
     */
    MX_COMMAND_KIND_REMOVE_ITEM(5),
    /**
     * <code>MX_COMMAND_KIND_ADVISE = 6;</code>
     */
    MX_COMMAND_KIND_ADVISE(6),
    /**
     * <code>MX_COMMAND_KIND_UN_ADVISE = 7;</code>
     */
    MX_COMMAND_KIND_UN_ADVISE(7),
    /**
     * <code>MX_COMMAND_KIND_ADVISE_SUPERVISORY = 8;</code>
     */
    MX_COMMAND_KIND_ADVISE_SUPERVISORY(8),
    /**
     * <code>MX_COMMAND_KIND_ADD_BUFFERED_ITEM = 9;</code>
     */
    MX_COMMAND_KIND_ADD_BUFFERED_ITEM(9),
    /**
     * <code>MX_COMMAND_KIND_SET_BUFFERED_UPDATE_INTERVAL = 10;</code>
     */
    MX_COMMAND_KIND_SET_BUFFERED_UPDATE_INTERVAL(10),
    /**
     * <code>MX_COMMAND_KIND_SUSPEND = 11;</code>
     */
    MX_COMMAND_KIND_SUSPEND(11),
    /**
     * <code>MX_COMMAND_KIND_ACTIVATE = 12;</code>
     */
    MX_COMMAND_KIND_ACTIVATE(12),
    /**
     * <code>MX_COMMAND_KIND_WRITE = 13;</code>
     */
    MX_COMMAND_KIND_WRITE(13),
    /**
     * <code>MX_COMMAND_KIND_WRITE2 = 14;</code>
     */
    MX_COMMAND_KIND_WRITE2(14),
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED = 15;</code>
     */
    MX_COMMAND_KIND_WRITE_SECURED(15),
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED2 = 16;</code>
     */
    MX_COMMAND_KIND_WRITE_SECURED2(16),
    /**
     * <code>MX_COMMAND_KIND_AUTHENTICATE_USER = 17;</code>
     */
    MX_COMMAND_KIND_AUTHENTICATE_USER(17),
    /**
     * <code>MX_COMMAND_KIND_ARCHESTRA_USER_TO_ID = 18;</code>
     */
    MX_COMMAND_KIND_ARCHESTRA_USER_TO_ID(18),
    /**
     * <code>MX_COMMAND_KIND_ADD_ITEM_BULK = 19;</code>
     */
    MX_COMMAND_KIND_ADD_ITEM_BULK(19),
    /**
     * <code>MX_COMMAND_KIND_ADVISE_ITEM_BULK = 20;</code>
     */
    MX_COMMAND_KIND_ADVISE_ITEM_BULK(20),
    /**
     * <code>MX_COMMAND_KIND_REMOVE_ITEM_BULK = 21;</code>
     */
    MX_COMMAND_KIND_REMOVE_ITEM_BULK(21),
    /**
     * <code>MX_COMMAND_KIND_UN_ADVISE_ITEM_BULK = 22;</code>
     */
    MX_COMMAND_KIND_UN_ADVISE_ITEM_BULK(22),
    /**
     * <code>MX_COMMAND_KIND_SUBSCRIBE_BULK = 23;</code>
     */
    MX_COMMAND_KIND_SUBSCRIBE_BULK(23),
    /**
     * <code>MX_COMMAND_KIND_UNSUBSCRIBE_BULK = 24;</code>
     */
    MX_COMMAND_KIND_UNSUBSCRIBE_BULK(24),
    /**
     * <code>MX_COMMAND_KIND_SUBSCRIBE_ALARMS = 25;</code>
     */
    MX_COMMAND_KIND_SUBSCRIBE_ALARMS(25),
    /**
     * <code>MX_COMMAND_KIND_UNSUBSCRIBE_ALARMS = 26;</code>
     */
    MX_COMMAND_KIND_UNSUBSCRIBE_ALARMS(26),
    /**
     * <code>MX_COMMAND_KIND_ACKNOWLEDGE_ALARM = 27;</code>
     */
    MX_COMMAND_KIND_ACKNOWLEDGE_ALARM(27),
    /**
     * <code>MX_COMMAND_KIND_QUERY_ACTIVE_ALARMS = 28;</code>
     */
    MX_COMMAND_KIND_QUERY_ACTIVE_ALARMS(28),
    /**
     * <code>MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME = 29;</code>
     */
    MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME(29),
    /**
     * <code>MX_COMMAND_KIND_WRITE_BULK = 30;</code>
     */
    MX_COMMAND_KIND_WRITE_BULK(30),
    /**
     * <code>MX_COMMAND_KIND_WRITE2_BULK = 31;</code>
     */
    MX_COMMAND_KIND_WRITE2_BULK(31),
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED_BULK = 32;</code>
     */
    MX_COMMAND_KIND_WRITE_SECURED_BULK(32),
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED2_BULK = 33;</code>
     */
    MX_COMMAND_KIND_WRITE_SECURED2_BULK(33),
    /**
     * <code>MX_COMMAND_KIND_READ_BULK = 34;</code>
     */
    MX_COMMAND_KIND_READ_BULK(34),
    /**
     * <code>MX_COMMAND_KIND_PING = 100;</code>
     */
    MX_COMMAND_KIND_PING(100),
    /**
     * <code>MX_COMMAND_KIND_GET_SESSION_STATE = 101;</code>
     */
    MX_COMMAND_KIND_GET_SESSION_STATE(101),
    /**
     * <code>MX_COMMAND_KIND_GET_WORKER_INFO = 102;</code>
     */
    MX_COMMAND_KIND_GET_WORKER_INFO(102),
    /**
     * <code>MX_COMMAND_KIND_DRAIN_EVENTS = 103;</code>
     */
    MX_COMMAND_KIND_DRAIN_EVENTS(103),
    /**
     * <code>MX_COMMAND_KIND_SHUTDOWN_WORKER = 104;</code>
     */
    MX_COMMAND_KIND_SHUTDOWN_WORKER(104),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxCommandKind");
    }
    /**
     * <code>MX_COMMAND_KIND_UNSPECIFIED = 0;</code>
     */
    public static final int MX_COMMAND_KIND_UNSPECIFIED_VALUE = 0;
    /**
     * <code>MX_COMMAND_KIND_REGISTER = 1;</code>
     */
    public static final int MX_COMMAND_KIND_REGISTER_VALUE = 1;
    /**
     * <code>MX_COMMAND_KIND_UNREGISTER = 2;</code>
     */
    public static final int MX_COMMAND_KIND_UNREGISTER_VALUE = 2;
    /**
     * <code>MX_COMMAND_KIND_ADD_ITEM = 3;</code>
     */
    public static final int MX_COMMAND_KIND_ADD_ITEM_VALUE = 3;
    /**
     * <code>MX_COMMAND_KIND_ADD_ITEM2 = 4;</code>
     */
    public static final int MX_COMMAND_KIND_ADD_ITEM2_VALUE = 4;
    /**
     * <code>MX_COMMAND_KIND_REMOVE_ITEM = 5;</code>
     */
    public static final int MX_COMMAND_KIND_REMOVE_ITEM_VALUE = 5;
    /**
     * <code>MX_COMMAND_KIND_ADVISE = 6;</code>
     */
    public static final int MX_COMMAND_KIND_ADVISE_VALUE = 6;
    /**
     * <code>MX_COMMAND_KIND_UN_ADVISE = 7;</code>
     */
    public static final int MX_COMMAND_KIND_UN_ADVISE_VALUE = 7;
    /**
     * <code>MX_COMMAND_KIND_ADVISE_SUPERVISORY = 8;</code>
     */
    public static final int MX_COMMAND_KIND_ADVISE_SUPERVISORY_VALUE = 8;
    /**
     * <code>MX_COMMAND_KIND_ADD_BUFFERED_ITEM = 9;</code>
     */
    public static final int MX_COMMAND_KIND_ADD_BUFFERED_ITEM_VALUE = 9;
    /**
     * <code>MX_COMMAND_KIND_SET_BUFFERED_UPDATE_INTERVAL = 10;</code>
     */
    public static final int MX_COMMAND_KIND_SET_BUFFERED_UPDATE_INTERVAL_VALUE = 10;
    /**
     * <code>MX_COMMAND_KIND_SUSPEND = 11;</code>
     */
    public static final int MX_COMMAND_KIND_SUSPEND_VALUE = 11;
    /**
     * <code>MX_COMMAND_KIND_ACTIVATE = 12;</code>
     */
    public static final int MX_COMMAND_KIND_ACTIVATE_VALUE = 12;
    /**
     * <code>MX_COMMAND_KIND_WRITE = 13;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE_VALUE = 13;
    /**
     * <code>MX_COMMAND_KIND_WRITE2 = 14;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE2_VALUE = 14;
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED = 15;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE_SECURED_VALUE = 15;
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED2 = 16;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE_SECURED2_VALUE = 16;
    /**
     * <code>MX_COMMAND_KIND_AUTHENTICATE_USER = 17;</code>
     */
    public static final int MX_COMMAND_KIND_AUTHENTICATE_USER_VALUE = 17;
    /**
     * <code>MX_COMMAND_KIND_ARCHESTRA_USER_TO_ID = 18;</code>
     */
    public static final int MX_COMMAND_KIND_ARCHESTRA_USER_TO_ID_VALUE = 18;
    /**
     * <code>MX_COMMAND_KIND_ADD_ITEM_BULK = 19;</code>
     */
    public static final int MX_COMMAND_KIND_ADD_ITEM_BULK_VALUE = 19;
    /**
     * <code>MX_COMMAND_KIND_ADVISE_ITEM_BULK = 20;</code>
     */
    public static final int MX_COMMAND_KIND_ADVISE_ITEM_BULK_VALUE = 20;
    /**
     * <code>MX_COMMAND_KIND_REMOVE_ITEM_BULK = 21;</code>
     */
    public static final int MX_COMMAND_KIND_REMOVE_ITEM_BULK_VALUE = 21;
    /**
     * <code>MX_COMMAND_KIND_UN_ADVISE_ITEM_BULK = 22;</code>
     */
    public static final int MX_COMMAND_KIND_UN_ADVISE_ITEM_BULK_VALUE = 22;
    /**
     * <code>MX_COMMAND_KIND_SUBSCRIBE_BULK = 23;</code>
     */
    public static final int MX_COMMAND_KIND_SUBSCRIBE_BULK_VALUE = 23;
    /**
     * <code>MX_COMMAND_KIND_UNSUBSCRIBE_BULK = 24;</code>
     */
    public static final int MX_COMMAND_KIND_UNSUBSCRIBE_BULK_VALUE = 24;
    /**
     * <code>MX_COMMAND_KIND_SUBSCRIBE_ALARMS = 25;</code>
     */
    public static final int MX_COMMAND_KIND_SUBSCRIBE_ALARMS_VALUE = 25;
    /**
     * <code>MX_COMMAND_KIND_UNSUBSCRIBE_ALARMS = 26;</code>
     */
    public static final int MX_COMMAND_KIND_UNSUBSCRIBE_ALARMS_VALUE = 26;
    /**
     * <code>MX_COMMAND_KIND_ACKNOWLEDGE_ALARM = 27;</code>
     */
    public static final int MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_VALUE = 27;
    /**
     * <code>MX_COMMAND_KIND_QUERY_ACTIVE_ALARMS = 28;</code>
     */
    public static final int MX_COMMAND_KIND_QUERY_ACTIVE_ALARMS_VALUE = 28;
    /**
     * <code>MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME = 29;</code>
     */
    public static final int MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME_VALUE = 29;
    /**
     * <code>MX_COMMAND_KIND_WRITE_BULK = 30;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE_BULK_VALUE = 30;
    /**
     * <code>MX_COMMAND_KIND_WRITE2_BULK = 31;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE2_BULK_VALUE = 31;
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED_BULK = 32;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE_SECURED_BULK_VALUE = 32;
    /**
     * <code>MX_COMMAND_KIND_WRITE_SECURED2_BULK = 33;</code>
     */
    public static final int MX_COMMAND_KIND_WRITE_SECURED2_BULK_VALUE = 33;
    /**
     * <code>MX_COMMAND_KIND_READ_BULK = 34;</code>
     */
    public static final int MX_COMMAND_KIND_READ_BULK_VALUE = 34;
    /**
     * <code>MX_COMMAND_KIND_PING = 100;</code>
     */
    public static final int MX_COMMAND_KIND_PING_VALUE = 100;
    /**
     * <code>MX_COMMAND_KIND_GET_SESSION_STATE = 101;</code>
     */
    public static final int MX_COMMAND_KIND_GET_SESSION_STATE_VALUE = 101;
    /**
     * <code>MX_COMMAND_KIND_GET_WORKER_INFO = 102;</code>
     */
    public static final int MX_COMMAND_KIND_GET_WORKER_INFO_VALUE = 102;
    /**
     * <code>MX_COMMAND_KIND_DRAIN_EVENTS = 103;</code>
     */
    public static final int MX_COMMAND_KIND_DRAIN_EVENTS_VALUE = 103;
    /**
     * <code>MX_COMMAND_KIND_SHUTDOWN_WORKER = 104;</code>
     */
    public static final int MX_COMMAND_KIND_SHUTDOWN_WORKER_VALUE = 104;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static MxCommandKind forNumber(int value) {
      switch (value) {
        case 0: return MX_COMMAND_KIND_UNSPECIFIED;
        case 1: return MX_COMMAND_KIND_REGISTER;
        case 2: return MX_COMMAND_KIND_UNREGISTER;
        case 3: return MX_COMMAND_KIND_ADD_ITEM;
        case 4: return MX_COMMAND_KIND_ADD_ITEM2;
        case 5: return MX_COMMAND_KIND_REMOVE_ITEM;
        case 6: return MX_COMMAND_KIND_ADVISE;
        case 7: return MX_COMMAND_KIND_UN_ADVISE;
        case 8: return MX_COMMAND_KIND_ADVISE_SUPERVISORY;
        case 9: return MX_COMMAND_KIND_ADD_BUFFERED_ITEM;
        case 10: return MX_COMMAND_KIND_SET_BUFFERED_UPDATE_INTERVAL;
        case 11: return MX_COMMAND_KIND_SUSPEND;
        case 12: return MX_COMMAND_KIND_ACTIVATE;
        case 13: return MX_COMMAND_KIND_WRITE;
        case 14: return MX_COMMAND_KIND_WRITE2;
        case 15: return MX_COMMAND_KIND_WRITE_SECURED;
        case 16: return MX_COMMAND_KIND_WRITE_SECURED2;
        case 17: return MX_COMMAND_KIND_AUTHENTICATE_USER;
        case 18: return MX_COMMAND_KIND_ARCHESTRA_USER_TO_ID;
        case 19: return MX_COMMAND_KIND_ADD_ITEM_BULK;
        case 20: return MX_COMMAND_KIND_ADVISE_ITEM_BULK;
        case 21: return MX_COMMAND_KIND_REMOVE_ITEM_BULK;
        case 22: return MX_COMMAND_KIND_UN_ADVISE_ITEM_BULK;
        case 23: return MX_COMMAND_KIND_SUBSCRIBE_BULK;
        case 24: return MX_COMMAND_KIND_UNSUBSCRIBE_BULK;
        case 25: return MX_COMMAND_KIND_SUBSCRIBE_ALARMS;
        case 26: return MX_COMMAND_KIND_UNSUBSCRIBE_ALARMS;
        case 27: return MX_COMMAND_KIND_ACKNOWLEDGE_ALARM;
        case 28: return MX_COMMAND_KIND_QUERY_ACTIVE_ALARMS;
        case 29: return MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME;
        case 30: return MX_COMMAND_KIND_WRITE_BULK;
        case 31: return MX_COMMAND_KIND_WRITE2_BULK;
        case 32: return MX_COMMAND_KIND_WRITE_SECURED_BULK;
        case 33: return MX_COMMAND_KIND_WRITE_SECURED2_BULK;
        case 34: return MX_COMMAND_KIND_READ_BULK;
        case 100: return MX_COMMAND_KIND_PING;
        case 101: return MX_COMMAND_KIND_GET_SESSION_STATE;
        case 102: return MX_COMMAND_KIND_GET_WORKER_INFO;
        case 103: return MX_COMMAND_KIND_DRAIN_EVENTS;
        case 104: return MX_COMMAND_KIND_SHUTDOWN_WORKER;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(0);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.MxCommandKind)
  }

  /**
   * <pre>
   * Provider selection / current provider for the alarm feed. The zero value
   * has two distinct meanings depending on the use site:
   * - As SubscribeAlarmsCommand.forced_mode, UNSPECIFIED means auto: alarmmgr
   * primary with subtag fallback.
   * - As a provenance value (OnAlarmTransitionEvent.source_provider,
   * ActiveAlarmSnapshot.source_provider, OnAlarmProviderModeChangedEvent.mode,
   * AlarmProviderStatus.mode), the worker always emits ALARMMGR or SUBTAG and
   * never UNSPECIFIED; clients should treat a UNSPECIFIED provenance value as
   * "unknown / not yet determined".
   * </pre>
   *
   * Protobuf enum {@code mxaccess_gateway.v1.AlarmProviderMode}
   */
  public enum AlarmProviderMode
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ALARM_PROVIDER_MODE_UNSPECIFIED = 0;</code>
     */
    ALARM_PROVIDER_MODE_UNSPECIFIED(0),
    /**
     * <code>ALARM_PROVIDER_MODE_ALARMMGR = 1;</code>
     */
    ALARM_PROVIDER_MODE_ALARMMGR(1),
    /**
     * <code>ALARM_PROVIDER_MODE_SUBTAG = 2;</code>
     */
    ALARM_PROVIDER_MODE_SUBTAG(2),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmProviderMode");
    }
    /**
     * <code>ALARM_PROVIDER_MODE_UNSPECIFIED = 0;</code>
     */
    public static final int ALARM_PROVIDER_MODE_UNSPECIFIED_VALUE = 0;
    /**
     * <code>ALARM_PROVIDER_MODE_ALARMMGR = 1;</code>
     */
    public static final int ALARM_PROVIDER_MODE_ALARMMGR_VALUE = 1;
    /**
     * <code>ALARM_PROVIDER_MODE_SUBTAG = 2;</code>
     */
    public static final int ALARM_PROVIDER_MODE_SUBTAG_VALUE = 2;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static AlarmProviderMode forNumber(int value) {
      switch (value) {
        case 0: return ALARM_PROVIDER_MODE_UNSPECIFIED;
        case 1: return ALARM_PROVIDER_MODE_ALARMMGR;
        case 2: return ALARM_PROVIDER_MODE_SUBTAG;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(1);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.AlarmProviderMode)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.MxEventFamily}
   */
  public enum MxEventFamily
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>MX_EVENT_FAMILY_UNSPECIFIED = 0;</code>
     */
    MX_EVENT_FAMILY_UNSPECIFIED(0),
    /**
     * <code>MX_EVENT_FAMILY_ON_DATA_CHANGE = 1;</code>
     */
    MX_EVENT_FAMILY_ON_DATA_CHANGE(1),
    /**
     * <code>MX_EVENT_FAMILY_ON_WRITE_COMPLETE = 2;</code>
     */
    MX_EVENT_FAMILY_ON_WRITE_COMPLETE(2),
    /**
     * <code>MX_EVENT_FAMILY_OPERATION_COMPLETE = 3;</code>
     */
    MX_EVENT_FAMILY_OPERATION_COMPLETE(3),
    /**
     * <code>MX_EVENT_FAMILY_ON_BUFFERED_DATA_CHANGE = 4;</code>
     */
    MX_EVENT_FAMILY_ON_BUFFERED_DATA_CHANGE(4),
    /**
     * <code>MX_EVENT_FAMILY_ON_ALARM_TRANSITION = 5;</code>
     */
    MX_EVENT_FAMILY_ON_ALARM_TRANSITION(5),
    /**
     * <code>MX_EVENT_FAMILY_ON_ALARM_PROVIDER_MODE_CHANGED = 6;</code>
     */
    MX_EVENT_FAMILY_ON_ALARM_PROVIDER_MODE_CHANGED(6),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxEventFamily");
    }
    /**
     * <code>MX_EVENT_FAMILY_UNSPECIFIED = 0;</code>
     */
    public static final int MX_EVENT_FAMILY_UNSPECIFIED_VALUE = 0;
    /**
     * <code>MX_EVENT_FAMILY_ON_DATA_CHANGE = 1;</code>
     */
    public static final int MX_EVENT_FAMILY_ON_DATA_CHANGE_VALUE = 1;
    /**
     * <code>MX_EVENT_FAMILY_ON_WRITE_COMPLETE = 2;</code>
     */
    public static final int MX_EVENT_FAMILY_ON_WRITE_COMPLETE_VALUE = 2;
    /**
     * <code>MX_EVENT_FAMILY_OPERATION_COMPLETE = 3;</code>
     */
    public static final int MX_EVENT_FAMILY_OPERATION_COMPLETE_VALUE = 3;
    /**
     * <code>MX_EVENT_FAMILY_ON_BUFFERED_DATA_CHANGE = 4;</code>
     */
    public static final int MX_EVENT_FAMILY_ON_BUFFERED_DATA_CHANGE_VALUE = 4;
    /**
     * <code>MX_EVENT_FAMILY_ON_ALARM_TRANSITION = 5;</code>
     */
    public static final int MX_EVENT_FAMILY_ON_ALARM_TRANSITION_VALUE = 5;
    /**
     * <code>MX_EVENT_FAMILY_ON_ALARM_PROVIDER_MODE_CHANGED = 6;</code>
     */
    public static final int MX_EVENT_FAMILY_ON_ALARM_PROVIDER_MODE_CHANGED_VALUE = 6;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static MxEventFamily forNumber(int value) {
      switch (value) {
        case 0: return MX_EVENT_FAMILY_UNSPECIFIED;
        case 1: return MX_EVENT_FAMILY_ON_DATA_CHANGE;
        case 2: return MX_EVENT_FAMILY_ON_WRITE_COMPLETE;
        case 3: return MX_EVENT_FAMILY_OPERATION_COMPLETE;
        case 4: return MX_EVENT_FAMILY_ON_BUFFERED_DATA_CHANGE;
        case 5: return MX_EVENT_FAMILY_ON_ALARM_TRANSITION;
        case 6: return MX_EVENT_FAMILY_ON_ALARM_PROVIDER_MODE_CHANGED;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(2);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.MxEventFamily)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.AlarmTransitionKind}
   */
  public enum AlarmTransitionKind
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ALARM_TRANSITION_KIND_UNSPECIFIED = 0;</code>
     */
    ALARM_TRANSITION_KIND_UNSPECIFIED(0),
    /**
     * <code>ALARM_TRANSITION_KIND_RAISE = 1;</code>
     */
    ALARM_TRANSITION_KIND_RAISE(1),
    /**
     * <code>ALARM_TRANSITION_KIND_ACKNOWLEDGE = 2;</code>
     */
    ALARM_TRANSITION_KIND_ACKNOWLEDGE(2),
    /**
     * <code>ALARM_TRANSITION_KIND_CLEAR = 3;</code>
     */
    ALARM_TRANSITION_KIND_CLEAR(3),
    /**
     * <code>ALARM_TRANSITION_KIND_RETRIGGER = 4;</code>
     */
    ALARM_TRANSITION_KIND_RETRIGGER(4),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmTransitionKind");
    }
    /**
     * <code>ALARM_TRANSITION_KIND_UNSPECIFIED = 0;</code>
     */
    public static final int ALARM_TRANSITION_KIND_UNSPECIFIED_VALUE = 0;
    /**
     * <code>ALARM_TRANSITION_KIND_RAISE = 1;</code>
     */
    public static final int ALARM_TRANSITION_KIND_RAISE_VALUE = 1;
    /**
     * <code>ALARM_TRANSITION_KIND_ACKNOWLEDGE = 2;</code>
     */
    public static final int ALARM_TRANSITION_KIND_ACKNOWLEDGE_VALUE = 2;
    /**
     * <code>ALARM_TRANSITION_KIND_CLEAR = 3;</code>
     */
    public static final int ALARM_TRANSITION_KIND_CLEAR_VALUE = 3;
    /**
     * <code>ALARM_TRANSITION_KIND_RETRIGGER = 4;</code>
     */
    public static final int ALARM_TRANSITION_KIND_RETRIGGER_VALUE = 4;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static AlarmTransitionKind forNumber(int value) {
      switch (value) {
        case 0: return ALARM_TRANSITION_KIND_UNSPECIFIED;
        case 1: return ALARM_TRANSITION_KIND_RAISE;
        case 2: return ALARM_TRANSITION_KIND_ACKNOWLEDGE;
        case 3: return ALARM_TRANSITION_KIND_CLEAR;
        case 4: return ALARM_TRANSITION_KIND_RETRIGGER;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(3);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.AlarmTransitionKind)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.AlarmConditionState}
   */
  public enum AlarmConditionState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ALARM_CONDITION_STATE_UNSPECIFIED = 0;</code>
     */
    ALARM_CONDITION_STATE_UNSPECIFIED(0),
    /**
     * <code>ALARM_CONDITION_STATE_ACTIVE = 1;</code>
     */
    ALARM_CONDITION_STATE_ACTIVE(1),
    /**
     * <code>ALARM_CONDITION_STATE_ACTIVE_ACKED = 2;</code>
     */
    ALARM_CONDITION_STATE_ACTIVE_ACKED(2),
    /**
     * <code>ALARM_CONDITION_STATE_INACTIVE = 3;</code>
     */
    ALARM_CONDITION_STATE_INACTIVE(3),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmConditionState");
    }
    /**
     * <code>ALARM_CONDITION_STATE_UNSPECIFIED = 0;</code>
     */
    public static final int ALARM_CONDITION_STATE_UNSPECIFIED_VALUE = 0;
    /**
     * <code>ALARM_CONDITION_STATE_ACTIVE = 1;</code>
     */
    public static final int ALARM_CONDITION_STATE_ACTIVE_VALUE = 1;
    /**
     * <code>ALARM_CONDITION_STATE_ACTIVE_ACKED = 2;</code>
     */
    public static final int ALARM_CONDITION_STATE_ACTIVE_ACKED_VALUE = 2;
    /**
     * <code>ALARM_CONDITION_STATE_INACTIVE = 3;</code>
     */
    public static final int ALARM_CONDITION_STATE_INACTIVE_VALUE = 3;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static AlarmConditionState forNumber(int value) {
      switch (value) {
        case 0: return ALARM_CONDITION_STATE_UNSPECIFIED;
        case 1: return ALARM_CONDITION_STATE_ACTIVE;
        case 2: return ALARM_CONDITION_STATE_ACTIVE_ACKED;
        case 3: return ALARM_CONDITION_STATE_INACTIVE;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(4);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.AlarmConditionState)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.MxStatusCategory}
   */
  public enum MxStatusCategory
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>MX_STATUS_CATEGORY_UNSPECIFIED = 0;</code>
     */
    MX_STATUS_CATEGORY_UNSPECIFIED(0),
    /**
     * <code>MX_STATUS_CATEGORY_UNKNOWN = 1;</code>
     */
    MX_STATUS_CATEGORY_UNKNOWN(1),
    /**
     * <code>MX_STATUS_CATEGORY_OK = 2;</code>
     */
    MX_STATUS_CATEGORY_OK(2),
    /**
     * <code>MX_STATUS_CATEGORY_PENDING = 3;</code>
     */
    MX_STATUS_CATEGORY_PENDING(3),
    /**
     * <code>MX_STATUS_CATEGORY_WARNING = 4;</code>
     */
    MX_STATUS_CATEGORY_WARNING(4),
    /**
     * <code>MX_STATUS_CATEGORY_COMMUNICATION_ERROR = 5;</code>
     */
    MX_STATUS_CATEGORY_COMMUNICATION_ERROR(5),
    /**
     * <code>MX_STATUS_CATEGORY_CONFIGURATION_ERROR = 6;</code>
     */
    MX_STATUS_CATEGORY_CONFIGURATION_ERROR(6),
    /**
     * <code>MX_STATUS_CATEGORY_OPERATIONAL_ERROR = 7;</code>
     */
    MX_STATUS_CATEGORY_OPERATIONAL_ERROR(7),
    /**
     * <code>MX_STATUS_CATEGORY_SECURITY_ERROR = 8;</code>
     */
    MX_STATUS_CATEGORY_SECURITY_ERROR(8),
    /**
     * <code>MX_STATUS_CATEGORY_SOFTWARE_ERROR = 9;</code>
     */
    MX_STATUS_CATEGORY_SOFTWARE_ERROR(9),
    /**
     * <code>MX_STATUS_CATEGORY_OTHER_ERROR = 10;</code>
     */
    MX_STATUS_CATEGORY_OTHER_ERROR(10),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxStatusCategory");
    }
    /**
     * <code>MX_STATUS_CATEGORY_UNSPECIFIED = 0;</code>
     */
    public static final int MX_STATUS_CATEGORY_UNSPECIFIED_VALUE = 0;
    /**
     * <code>MX_STATUS_CATEGORY_UNKNOWN = 1;</code>
     */
    public static final int MX_STATUS_CATEGORY_UNKNOWN_VALUE = 1;
    /**
     * <code>MX_STATUS_CATEGORY_OK = 2;</code>
     */
    public static final int MX_STATUS_CATEGORY_OK_VALUE = 2;
    /**
     * <code>MX_STATUS_CATEGORY_PENDING = 3;</code>
     */
    public static final int MX_STATUS_CATEGORY_PENDING_VALUE = 3;
    /**
     * <code>MX_STATUS_CATEGORY_WARNING = 4;</code>
     */
    public static final int MX_STATUS_CATEGORY_WARNING_VALUE = 4;
    /**
     * <code>MX_STATUS_CATEGORY_COMMUNICATION_ERROR = 5;</code>
     */
    public static final int MX_STATUS_CATEGORY_COMMUNICATION_ERROR_VALUE = 5;
    /**
     * <code>MX_STATUS_CATEGORY_CONFIGURATION_ERROR = 6;</code>
     */
    public static final int MX_STATUS_CATEGORY_CONFIGURATION_ERROR_VALUE = 6;
    /**
     * <code>MX_STATUS_CATEGORY_OPERATIONAL_ERROR = 7;</code>
     */
    public static final int MX_STATUS_CATEGORY_OPERATIONAL_ERROR_VALUE = 7;
    /**
     * <code>MX_STATUS_CATEGORY_SECURITY_ERROR = 8;</code>
     */
    public static final int MX_STATUS_CATEGORY_SECURITY_ERROR_VALUE = 8;
    /**
     * <code>MX_STATUS_CATEGORY_SOFTWARE_ERROR = 9;</code>
     */
    public static final int MX_STATUS_CATEGORY_SOFTWARE_ERROR_VALUE = 9;
    /**
     * <code>MX_STATUS_CATEGORY_OTHER_ERROR = 10;</code>
     */
    public static final int MX_STATUS_CATEGORY_OTHER_ERROR_VALUE = 10;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static MxStatusCategory forNumber(int value) {
      switch (value) {
        case 0: return MX_STATUS_CATEGORY_UNSPECIFIED;
        case 1: return MX_STATUS_CATEGORY_UNKNOWN;
        case 2: return MX_STATUS_CATEGORY_OK;
        case 3: return MX_STATUS_CATEGORY_PENDING;
        case 4: return MX_STATUS_CATEGORY_WARNING;
        case 5: return MX_STATUS_CATEGORY_COMMUNICATION_ERROR;
        case 6: return MX_STATUS_CATEGORY_CONFIGURATION_ERROR;
        case 7: return MX_STATUS_CATEGORY_OPERATIONAL_ERROR;
        case 8: return MX_STATUS_CATEGORY_SECURITY_ERROR;
        case 9: return MX_STATUS_CATEGORY_SOFTWARE_ERROR;
        case 10: return MX_STATUS_CATEGORY_OTHER_ERROR;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(5);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.MxStatusCategory)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.MxStatusSource}
   */
  public enum MxStatusSource
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>MX_STATUS_SOURCE_UNSPECIFIED = 0;</code>
     */
    MX_STATUS_SOURCE_UNSPECIFIED(0),
    /**
     * <code>MX_STATUS_SOURCE_UNKNOWN = 1;</code>
     */
    MX_STATUS_SOURCE_UNKNOWN(1),
    /**
     * <code>MX_STATUS_SOURCE_REQUESTING_LMX = 2;</code>
     */
    MX_STATUS_SOURCE_REQUESTING_LMX(2),
    /**
     * <code>MX_STATUS_SOURCE_RESPONDING_LMX = 3;</code>
     */
    MX_STATUS_SOURCE_RESPONDING_LMX(3),
    /**
     * <code>MX_STATUS_SOURCE_REQUESTING_NMX = 4;</code>
     */
    MX_STATUS_SOURCE_REQUESTING_NMX(4),
    /**
     * <code>MX_STATUS_SOURCE_RESPONDING_NMX = 5;</code>
     */
    MX_STATUS_SOURCE_RESPONDING_NMX(5),
    /**
     * <code>MX_STATUS_SOURCE_REQUESTING_AUTOMATION_OBJECT = 6;</code>
     */
    MX_STATUS_SOURCE_REQUESTING_AUTOMATION_OBJECT(6),
    /**
     * <code>MX_STATUS_SOURCE_RESPONDING_AUTOMATION_OBJECT = 7;</code>
     */
    MX_STATUS_SOURCE_RESPONDING_AUTOMATION_OBJECT(7),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxStatusSource");
    }
    /**
     * <code>MX_STATUS_SOURCE_UNSPECIFIED = 0;</code>
     */
    public static final int MX_STATUS_SOURCE_UNSPECIFIED_VALUE = 0;
    /**
     * <code>MX_STATUS_SOURCE_UNKNOWN = 1;</code>
     */
    public static final int MX_STATUS_SOURCE_UNKNOWN_VALUE = 1;
    /**
     * <code>MX_STATUS_SOURCE_REQUESTING_LMX = 2;</code>
     */
    public static final int MX_STATUS_SOURCE_REQUESTING_LMX_VALUE = 2;
    /**
     * <code>MX_STATUS_SOURCE_RESPONDING_LMX = 3;</code>
     */
    public static final int MX_STATUS_SOURCE_RESPONDING_LMX_VALUE = 3;
    /**
     * <code>MX_STATUS_SOURCE_REQUESTING_NMX = 4;</code>
     */
    public static final int MX_STATUS_SOURCE_REQUESTING_NMX_VALUE = 4;
    /**
     * <code>MX_STATUS_SOURCE_RESPONDING_NMX = 5;</code>
     */
    public static final int MX_STATUS_SOURCE_RESPONDING_NMX_VALUE = 5;
    /**
     * <code>MX_STATUS_SOURCE_REQUESTING_AUTOMATION_OBJECT = 6;</code>
     */
    public static final int MX_STATUS_SOURCE_REQUESTING_AUTOMATION_OBJECT_VALUE = 6;
    /**
     * <code>MX_STATUS_SOURCE_RESPONDING_AUTOMATION_OBJECT = 7;</code>
     */
    public static final int MX_STATUS_SOURCE_RESPONDING_AUTOMATION_OBJECT_VALUE = 7;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static MxStatusSource forNumber(int value) {
      switch (value) {
        case 0: return MX_STATUS_SOURCE_UNSPECIFIED;
        case 1: return MX_STATUS_SOURCE_UNKNOWN;
        case 2: return MX_STATUS_SOURCE_REQUESTING_LMX;
        case 3: return MX_STATUS_SOURCE_RESPONDING_LMX;
        case 4: return MX_STATUS_SOURCE_REQUESTING_NMX;
        case 5: return MX_STATUS_SOURCE_RESPONDING_NMX;
        case 6: return MX_STATUS_SOURCE_REQUESTING_AUTOMATION_OBJECT;
        case 7: return MX_STATUS_SOURCE_RESPONDING_AUTOMATION_OBJECT;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(6);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.MxStatusSource)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.MxDataType}
   */
  public enum MxDataType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>MX_DATA_TYPE_UNSPECIFIED = 0;</code>
     */
    MX_DATA_TYPE_UNSPECIFIED(0),
    /**
     * <code>MX_DATA_TYPE_UNKNOWN = 1;</code>
     */
    MX_DATA_TYPE_UNKNOWN(1),
    /**
     * <code>MX_DATA_TYPE_NO_DATA = 2;</code>
     */
    MX_DATA_TYPE_NO_DATA(2),
    /**
     * <code>MX_DATA_TYPE_BOOLEAN = 3;</code>
     */
    MX_DATA_TYPE_BOOLEAN(3),
    /**
     * <code>MX_DATA_TYPE_INTEGER = 4;</code>
     */
    MX_DATA_TYPE_INTEGER(4),
    /**
     * <code>MX_DATA_TYPE_FLOAT = 5;</code>
     */
    MX_DATA_TYPE_FLOAT(5),
    /**
     * <code>MX_DATA_TYPE_DOUBLE = 6;</code>
     */
    MX_DATA_TYPE_DOUBLE(6),
    /**
     * <code>MX_DATA_TYPE_STRING = 7;</code>
     */
    MX_DATA_TYPE_STRING(7),
    /**
     * <code>MX_DATA_TYPE_TIME = 8;</code>
     */
    MX_DATA_TYPE_TIME(8),
    /**
     * <code>MX_DATA_TYPE_ELAPSED_TIME = 9;</code>
     */
    MX_DATA_TYPE_ELAPSED_TIME(9),
    /**
     * <code>MX_DATA_TYPE_REFERENCE_TYPE = 10;</code>
     */
    MX_DATA_TYPE_REFERENCE_TYPE(10),
    /**
     * <code>MX_DATA_TYPE_STATUS_TYPE = 11;</code>
     */
    MX_DATA_TYPE_STATUS_TYPE(11),
    /**
     * <code>MX_DATA_TYPE_ENUM = 12;</code>
     */
    MX_DATA_TYPE_ENUM(12),
    /**
     * <code>MX_DATA_TYPE_SECURITY_CLASSIFICATION_ENUM = 13;</code>
     */
    MX_DATA_TYPE_SECURITY_CLASSIFICATION_ENUM(13),
    /**
     * <code>MX_DATA_TYPE_DATA_QUALITY_TYPE = 14;</code>
     */
    MX_DATA_TYPE_DATA_QUALITY_TYPE(14),
    /**
     * <code>MX_DATA_TYPE_QUALIFIED_ENUM = 15;</code>
     */
    MX_DATA_TYPE_QUALIFIED_ENUM(15),
    /**
     * <code>MX_DATA_TYPE_QUALIFIED_STRUCT = 16;</code>
     */
    MX_DATA_TYPE_QUALIFIED_STRUCT(16),
    /**
     * <code>MX_DATA_TYPE_INTERNATIONALIZED_STRING = 17;</code>
     */
    MX_DATA_TYPE_INTERNATIONALIZED_STRING(17),
    /**
     * <code>MX_DATA_TYPE_BIG_STRING = 18;</code>
     */
    MX_DATA_TYPE_BIG_STRING(18),
    /**
     * <code>MX_DATA_TYPE_END = 19;</code>
     */
    MX_DATA_TYPE_END(19),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxDataType");
    }
    /**
     * <code>MX_DATA_TYPE_UNSPECIFIED = 0;</code>
     */
    public static final int MX_DATA_TYPE_UNSPECIFIED_VALUE = 0;
    /**
     * <code>MX_DATA_TYPE_UNKNOWN = 1;</code>
     */
    public static final int MX_DATA_TYPE_UNKNOWN_VALUE = 1;
    /**
     * <code>MX_DATA_TYPE_NO_DATA = 2;</code>
     */
    public static final int MX_DATA_TYPE_NO_DATA_VALUE = 2;
    /**
     * <code>MX_DATA_TYPE_BOOLEAN = 3;</code>
     */
    public static final int MX_DATA_TYPE_BOOLEAN_VALUE = 3;
    /**
     * <code>MX_DATA_TYPE_INTEGER = 4;</code>
     */
    public static final int MX_DATA_TYPE_INTEGER_VALUE = 4;
    /**
     * <code>MX_DATA_TYPE_FLOAT = 5;</code>
     */
    public static final int MX_DATA_TYPE_FLOAT_VALUE = 5;
    /**
     * <code>MX_DATA_TYPE_DOUBLE = 6;</code>
     */
    public static final int MX_DATA_TYPE_DOUBLE_VALUE = 6;
    /**
     * <code>MX_DATA_TYPE_STRING = 7;</code>
     */
    public static final int MX_DATA_TYPE_STRING_VALUE = 7;
    /**
     * <code>MX_DATA_TYPE_TIME = 8;</code>
     */
    public static final int MX_DATA_TYPE_TIME_VALUE = 8;
    /**
     * <code>MX_DATA_TYPE_ELAPSED_TIME = 9;</code>
     */
    public static final int MX_DATA_TYPE_ELAPSED_TIME_VALUE = 9;
    /**
     * <code>MX_DATA_TYPE_REFERENCE_TYPE = 10;</code>
     */
    public static final int MX_DATA_TYPE_REFERENCE_TYPE_VALUE = 10;
    /**
     * <code>MX_DATA_TYPE_STATUS_TYPE = 11;</code>
     */
    public static final int MX_DATA_TYPE_STATUS_TYPE_VALUE = 11;
    /**
     * <code>MX_DATA_TYPE_ENUM = 12;</code>
     */
    public static final int MX_DATA_TYPE_ENUM_VALUE = 12;
    /**
     * <code>MX_DATA_TYPE_SECURITY_CLASSIFICATION_ENUM = 13;</code>
     */
    public static final int MX_DATA_TYPE_SECURITY_CLASSIFICATION_ENUM_VALUE = 13;
    /**
     * <code>MX_DATA_TYPE_DATA_QUALITY_TYPE = 14;</code>
     */
    public static final int MX_DATA_TYPE_DATA_QUALITY_TYPE_VALUE = 14;
    /**
     * <code>MX_DATA_TYPE_QUALIFIED_ENUM = 15;</code>
     */
    public static final int MX_DATA_TYPE_QUALIFIED_ENUM_VALUE = 15;
    /**
     * <code>MX_DATA_TYPE_QUALIFIED_STRUCT = 16;</code>
     */
    public static final int MX_DATA_TYPE_QUALIFIED_STRUCT_VALUE = 16;
    /**
     * <code>MX_DATA_TYPE_INTERNATIONALIZED_STRING = 17;</code>
     */
    public static final int MX_DATA_TYPE_INTERNATIONALIZED_STRING_VALUE = 17;
    /**
     * <code>MX_DATA_TYPE_BIG_STRING = 18;</code>
     */
    public static final int MX_DATA_TYPE_BIG_STRING_VALUE = 18;
    /**
     * <code>MX_DATA_TYPE_END = 19;</code>
     */
    public static final int MX_DATA_TYPE_END_VALUE = 19;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static MxDataType forNumber(int value) {
      switch (value) {
        case 0: return MX_DATA_TYPE_UNSPECIFIED;
        case 1: return MX_DATA_TYPE_UNKNOWN;
        case 2: return MX_DATA_TYPE_NO_DATA;
        case 3: return MX_DATA_TYPE_BOOLEAN;
        case 4: return MX_DATA_TYPE_INTEGER;
        case 5: return MX_DATA_TYPE_FLOAT;
        case 6: return MX_DATA_TYPE_DOUBLE;
        case 7: return MX_DATA_TYPE_STRING;
        case 8: return MX_DATA_TYPE_TIME;
        case 9: return MX_DATA_TYPE_ELAPSED_TIME;
        case 10: return MX_DATA_TYPE_REFERENCE_TYPE;
        case 11: return MX_DATA_TYPE_STATUS_TYPE;
        case 12: return MX_DATA_TYPE_ENUM;
        case 13: return MX_DATA_TYPE_SECURITY_CLASSIFICATION_ENUM;
        case 14: return MX_DATA_TYPE_DATA_QUALITY_TYPE;
        case 15: return MX_DATA_TYPE_QUALIFIED_ENUM;
        case 16: return MX_DATA_TYPE_QUALIFIED_STRUCT;
        case 17: return MX_DATA_TYPE_INTERNATIONALIZED_STRING;
        case 18: return MX_DATA_TYPE_BIG_STRING;
        case 19: return MX_DATA_TYPE_END;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(7);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.MxDataType)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.ProtocolStatusCode}
   */
  public enum ProtocolStatusCode
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>PROTOCOL_STATUS_CODE_UNSPECIFIED = 0;</code>
     */
    PROTOCOL_STATUS_CODE_UNSPECIFIED(0),
    /**
     * <code>PROTOCOL_STATUS_CODE_OK = 1;</code>
     */
    PROTOCOL_STATUS_CODE_OK(1),
    /**
     * <code>PROTOCOL_STATUS_CODE_INVALID_REQUEST = 2;</code>
     */
    PROTOCOL_STATUS_CODE_INVALID_REQUEST(2),
    /**
     * <code>PROTOCOL_STATUS_CODE_SESSION_NOT_FOUND = 3;</code>
     */
    PROTOCOL_STATUS_CODE_SESSION_NOT_FOUND(3),
    /**
     * <code>PROTOCOL_STATUS_CODE_SESSION_NOT_READY = 4;</code>
     */
    PROTOCOL_STATUS_CODE_SESSION_NOT_READY(4),
    /**
     * <code>PROTOCOL_STATUS_CODE_WORKER_UNAVAILABLE = 5;</code>
     */
    PROTOCOL_STATUS_CODE_WORKER_UNAVAILABLE(5),
    /**
     * <code>PROTOCOL_STATUS_CODE_TIMEOUT = 6;</code>
     */
    PROTOCOL_STATUS_CODE_TIMEOUT(6),
    /**
     * <code>PROTOCOL_STATUS_CODE_CANCELED = 7;</code>
     */
    PROTOCOL_STATUS_CODE_CANCELED(7),
    /**
     * <code>PROTOCOL_STATUS_CODE_PROTOCOL_VIOLATION = 8;</code>
     */
    PROTOCOL_STATUS_CODE_PROTOCOL_VIOLATION(8),
    /**
     * <code>PROTOCOL_STATUS_CODE_MXACCESS_FAILURE = 9;</code>
     */
    PROTOCOL_STATUS_CODE_MXACCESS_FAILURE(9),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ProtocolStatusCode");
    }
    /**
     * <code>PROTOCOL_STATUS_CODE_UNSPECIFIED = 0;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_UNSPECIFIED_VALUE = 0;
    /**
     * <code>PROTOCOL_STATUS_CODE_OK = 1;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_OK_VALUE = 1;
    /**
     * <code>PROTOCOL_STATUS_CODE_INVALID_REQUEST = 2;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_INVALID_REQUEST_VALUE = 2;
    /**
     * <code>PROTOCOL_STATUS_CODE_SESSION_NOT_FOUND = 3;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_SESSION_NOT_FOUND_VALUE = 3;
    /**
     * <code>PROTOCOL_STATUS_CODE_SESSION_NOT_READY = 4;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_SESSION_NOT_READY_VALUE = 4;
    /**
     * <code>PROTOCOL_STATUS_CODE_WORKER_UNAVAILABLE = 5;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_WORKER_UNAVAILABLE_VALUE = 5;
    /**
     * <code>PROTOCOL_STATUS_CODE_TIMEOUT = 6;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_TIMEOUT_VALUE = 6;
    /**
     * <code>PROTOCOL_STATUS_CODE_CANCELED = 7;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_CANCELED_VALUE = 7;
    /**
     * <code>PROTOCOL_STATUS_CODE_PROTOCOL_VIOLATION = 8;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_PROTOCOL_VIOLATION_VALUE = 8;
    /**
     * <code>PROTOCOL_STATUS_CODE_MXACCESS_FAILURE = 9;</code>
     */
    public static final int PROTOCOL_STATUS_CODE_MXACCESS_FAILURE_VALUE = 9;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static ProtocolStatusCode forNumber(int value) {
      switch (value) {
        case 0: return PROTOCOL_STATUS_CODE_UNSPECIFIED;
        case 1: return PROTOCOL_STATUS_CODE_OK;
        case 2: return PROTOCOL_STATUS_CODE_INVALID_REQUEST;
        case 3: return PROTOCOL_STATUS_CODE_SESSION_NOT_FOUND;
        case 4: return PROTOCOL_STATUS_CODE_SESSION_NOT_READY;
        case 5: return PROTOCOL_STATUS_CODE_WORKER_UNAVAILABLE;
        case 6: return PROTOCOL_STATUS_CODE_TIMEOUT;
        case 7: return PROTOCOL_STATUS_CODE_CANCELED;
        case 8: return PROTOCOL_STATUS_CODE_PROTOCOL_VIOLATION;
        case 9: return PROTOCOL_STATUS_CODE_MXACCESS_FAILURE;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(8);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.ProtocolStatusCode)
  }

  /**
   * Protobuf enum {@code mxaccess_gateway.v1.SessionState}
   */
  public enum SessionState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>SESSION_STATE_UNSPECIFIED = 0;</code>
     */
    SESSION_STATE_UNSPECIFIED(0),
    /**
     * <code>SESSION_STATE_CREATING = 1;</code>
     */
    SESSION_STATE_CREATING(1),
    /**
     * <code>SESSION_STATE_STARTING_WORKER = 2;</code>
     */
    SESSION_STATE_STARTING_WORKER(2),
    /**
     * <code>SESSION_STATE_WAITING_FOR_PIPE = 3;</code>
     */
    SESSION_STATE_WAITING_FOR_PIPE(3),
    /**
     * <code>SESSION_STATE_HANDSHAKING = 4;</code>
     */
    SESSION_STATE_HANDSHAKING(4),
    /**
     * <code>SESSION_STATE_INITIALIZING_WORKER = 5;</code>
     */
    SESSION_STATE_INITIALIZING_WORKER(5),
    /**
     * <code>SESSION_STATE_READY = 6;</code>
     */
    SESSION_STATE_READY(6),
    /**
     * <code>SESSION_STATE_CLOSING = 7;</code>
     */
    SESSION_STATE_CLOSING(7),
    /**
     * <code>SESSION_STATE_CLOSED = 8;</code>
     */
    SESSION_STATE_CLOSED(8),
    /**
     * <code>SESSION_STATE_FAULTED = 9;</code>
     */
    SESSION_STATE_FAULTED(9),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SessionState");
    }
    /**
     * <code>SESSION_STATE_UNSPECIFIED = 0;</code>
     */
    public static final int SESSION_STATE_UNSPECIFIED_VALUE = 0;
    /**
     * <code>SESSION_STATE_CREATING = 1;</code>
     */
    public static final int SESSION_STATE_CREATING_VALUE = 1;
    /**
     * <code>SESSION_STATE_STARTING_WORKER = 2;</code>
     */
    public static final int SESSION_STATE_STARTING_WORKER_VALUE = 2;
    /**
     * <code>SESSION_STATE_WAITING_FOR_PIPE = 3;</code>
     */
    public static final int SESSION_STATE_WAITING_FOR_PIPE_VALUE = 3;
    /**
     * <code>SESSION_STATE_HANDSHAKING = 4;</code>
     */
    public static final int SESSION_STATE_HANDSHAKING_VALUE = 4;
    /**
     * <code>SESSION_STATE_INITIALIZING_WORKER = 5;</code>
     */
    public static final int SESSION_STATE_INITIALIZING_WORKER_VALUE = 5;
    /**
     * <code>SESSION_STATE_READY = 6;</code>
     */
    public static final int SESSION_STATE_READY_VALUE = 6;
    /**
     * <code>SESSION_STATE_CLOSING = 7;</code>
     */
    public static final int SESSION_STATE_CLOSING_VALUE = 7;
    /**
     * <code>SESSION_STATE_CLOSED = 8;</code>
     */
    public static final int SESSION_STATE_CLOSED_VALUE = 8;
    /**
     * <code>SESSION_STATE_FAULTED = 9;</code>
     */
    public static final int SESSION_STATE_FAULTED_VALUE = 9;


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

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

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static SessionState forNumber(int value) {
      switch (value) {
        case 0: return SESSION_STATE_UNSPECIFIED;
        case 1: return SESSION_STATE_CREATING;
        case 2: return SESSION_STATE_STARTING_WORKER;
        case 3: return SESSION_STATE_WAITING_FOR_PIPE;
        case 4: return SESSION_STATE_HANDSHAKING;
        case 5: return SESSION_STATE_INITIALIZING_WORKER;
        case 6: return SESSION_STATE_READY;
        case 7: return SESSION_STATE_CLOSING;
        case 8: return SESSION_STATE_CLOSED;
        case 9: return SESSION_STATE_FAULTED;
        default: return null;
      }
    }

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

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.getDescriptor().getEnumTypes().get(9);
    }

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:mxaccess_gateway.v1.SessionState)
  }

  public interface QueryActiveAlarmsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.QueryActiveAlarmsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    java.lang.String getClientCorrelationId();
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    com.google.protobuf.ByteString
        getClientCorrelationIdBytes();

    /**
     * <pre>
     * Optional filter: when non-empty, only snapshots whose alarm_full_reference
     * starts with this string are returned.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 3;</code>
     * @return The alarmFilterPrefix.
     */
    java.lang.String getAlarmFilterPrefix();
    /**
     * <pre>
     * Optional filter: when non-empty, only snapshots whose alarm_full_reference
     * starts with this string are returned.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 3;</code>
     * @return The bytes for alarmFilterPrefix.
     */
    com.google.protobuf.ByteString
        getAlarmFilterPrefixBytes();
  }
  /**
   * <pre>
   * Public request shape for QueryActiveAlarms.
   * Clients may leave `session_id` empty; the gateway currently ignores it and
   * serves the session-less central-monitor cache. A future version may use it
   * to scope the snapshot to one session.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.QueryActiveAlarmsRequest}
   */
  public static final class QueryActiveAlarmsRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.QueryActiveAlarmsRequest)
      QueryActiveAlarmsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "QueryActiveAlarmsRequest");
    }
    // Use QueryActiveAlarmsRequest.newBuilder() to construct.
    private QueryActiveAlarmsRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private QueryActiveAlarmsRequest() {
      sessionId_ = "";
      clientCorrelationId_ = "";
      alarmFilterPrefix_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest.class, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest.Builder.class);
    }

    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENT_CORRELATION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientCorrelationId_ = "";
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    @java.lang.Override
    public java.lang.String getClientCorrelationId() {
      java.lang.Object ref = clientCorrelationId_;
      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();
        clientCorrelationId_ = s;
        return s;
      }
    }
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientCorrelationIdBytes() {
      java.lang.Object ref = clientCorrelationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientCorrelationId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALARM_FILTER_PREFIX_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmFilterPrefix_ = "";
    /**
     * <pre>
     * Optional filter: when non-empty, only snapshots whose alarm_full_reference
     * starts with this string are returned.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 3;</code>
     * @return The alarmFilterPrefix.
     */
    @java.lang.Override
    public java.lang.String getAlarmFilterPrefix() {
      java.lang.Object ref = alarmFilterPrefix_;
      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();
        alarmFilterPrefix_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Optional filter: when non-empty, only snapshots whose alarm_full_reference
     * starts with this string are returned.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 3;</code>
     * @return The bytes for alarmFilterPrefix.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmFilterPrefixBytes() {
      java.lang.Object ref = alarmFilterPrefix_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmFilterPrefix_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, clientCorrelationId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFilterPrefix_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, alarmFilterPrefix_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, clientCorrelationId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFilterPrefix_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, alarmFilterPrefix_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest other = (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (!getClientCorrelationId()
          .equals(other.getClientCorrelationId())) return false;
      if (!getAlarmFilterPrefix()
          .equals(other.getAlarmFilterPrefix())) 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();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + CLIENT_CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClientCorrelationId().hashCode();
      hash = (37 * hash) + ALARM_FILTER_PREFIX_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmFilterPrefix().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest 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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest 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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest 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(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest 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;
    }
    /**
     * <pre>
     * Public request shape for QueryActiveAlarms.
     * Clients may leave `session_id` empty; the gateway currently ignores it and
     * serves the session-less central-monitor cache. A future version may use it
     * to scope the snapshot to one session.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.QueryActiveAlarmsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.QueryActiveAlarmsRequest)
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest.class, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        clientCorrelationId_ = "";
        alarmFilterPrefix_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest build() {
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest result = new mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientCorrelationId_ = clientCorrelationId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.alarmFilterPrefix_ = alarmFilterPrefix_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getClientCorrelationId().isEmpty()) {
          clientCorrelationId_ = other.clientCorrelationId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getAlarmFilterPrefix().isEmpty()) {
          alarmFilterPrefix_ = other.alarmFilterPrefix_;
          bitField0_ |= 0x00000004;
          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: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                clientCorrelationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                alarmFilterPrefix_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              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 sessionId_ = "";
      /**
       * <code>string session_id = 1;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object clientCorrelationId_ = "";
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The clientCorrelationId.
       */
      public java.lang.String getClientCorrelationId() {
        java.lang.Object ref = clientCorrelationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientCorrelationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The bytes for clientCorrelationId.
       */
      public com.google.protobuf.ByteString
          getClientCorrelationIdBytes() {
        java.lang.Object ref = clientCorrelationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientCorrelationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientCorrelationId() {
        clientCorrelationId_ = getDefaultInstance().getClientCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The bytes for clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object alarmFilterPrefix_ = "";
      /**
       * <pre>
       * Optional filter: when non-empty, only snapshots whose alarm_full_reference
       * starts with this string are returned.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 3;</code>
       * @return The alarmFilterPrefix.
       */
      public java.lang.String getAlarmFilterPrefix() {
        java.lang.Object ref = alarmFilterPrefix_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmFilterPrefix_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Optional filter: when non-empty, only snapshots whose alarm_full_reference
       * starts with this string are returned.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 3;</code>
       * @return The bytes for alarmFilterPrefix.
       */
      public com.google.protobuf.ByteString
          getAlarmFilterPrefixBytes() {
        java.lang.Object ref = alarmFilterPrefix_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmFilterPrefix_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Optional filter: when non-empty, only snapshots whose alarm_full_reference
       * starts with this string are returned.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 3;</code>
       * @param value The alarmFilterPrefix to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFilterPrefix(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmFilterPrefix_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional filter: when non-empty, only snapshots whose alarm_full_reference
       * starts with this string are returned.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmFilterPrefix() {
        alarmFilterPrefix_ = getDefaultInstance().getAlarmFilterPrefix();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional filter: when non-empty, only snapshots whose alarm_full_reference
       * starts with this string are returned.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 3;</code>
       * @param value The bytes for alarmFilterPrefix to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFilterPrefixBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmFilterPrefix_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.QueryActiveAlarmsRequest)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.QueryActiveAlarmsRequest)
    private static final mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<QueryActiveAlarmsRequest>
        PARSER = new com.google.protobuf.AbstractParser<QueryActiveAlarmsRequest>() {
      @java.lang.Override
      public QueryActiveAlarmsRequest 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<QueryActiveAlarmsRequest> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OpenSessionRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OpenSessionRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string requested_backend = 1;</code>
     * @return The requestedBackend.
     */
    java.lang.String getRequestedBackend();
    /**
     * <code>string requested_backend = 1;</code>
     * @return The bytes for requestedBackend.
     */
    com.google.protobuf.ByteString
        getRequestedBackendBytes();

    /**
     * <code>string client_session_name = 2;</code>
     * @return The clientSessionName.
     */
    java.lang.String getClientSessionName();
    /**
     * <code>string client_session_name = 2;</code>
     * @return The bytes for clientSessionName.
     */
    com.google.protobuf.ByteString
        getClientSessionNameBytes();

    /**
     * <code>string client_correlation_id = 3;</code>
     * @return The clientCorrelationId.
     */
    java.lang.String getClientCorrelationId();
    /**
     * <code>string client_correlation_id = 3;</code>
     * @return The bytes for clientCorrelationId.
     */
    com.google.protobuf.ByteString
        getClientCorrelationIdBytes();

    /**
     * <code>.google.protobuf.Duration command_timeout = 4;</code>
     * @return Whether the commandTimeout field is set.
     */
    boolean hasCommandTimeout();
    /**
     * <code>.google.protobuf.Duration command_timeout = 4;</code>
     * @return The commandTimeout.
     */
    com.google.protobuf.Duration getCommandTimeout();
    /**
     * <code>.google.protobuf.Duration command_timeout = 4;</code>
     */
    com.google.protobuf.DurationOrBuilder getCommandTimeoutOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.OpenSessionRequest}
   */
  public static final class OpenSessionRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OpenSessionRequest)
      OpenSessionRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OpenSessionRequest");
    }
    // Use OpenSessionRequest.newBuilder() to construct.
    private OpenSessionRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OpenSessionRequest() {
      requestedBackend_ = "";
      clientSessionName_ = "";
      clientCorrelationId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest.class, mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest.Builder.class);
    }

    private int bitField0_;
    public static final int REQUESTED_BACKEND_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object requestedBackend_ = "";
    /**
     * <code>string requested_backend = 1;</code>
     * @return The requestedBackend.
     */
    @java.lang.Override
    public java.lang.String getRequestedBackend() {
      java.lang.Object ref = requestedBackend_;
      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();
        requestedBackend_ = s;
        return s;
      }
    }
    /**
     * <code>string requested_backend = 1;</code>
     * @return The bytes for requestedBackend.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRequestedBackendBytes() {
      java.lang.Object ref = requestedBackend_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        requestedBackend_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENT_SESSION_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientSessionName_ = "";
    /**
     * <code>string client_session_name = 2;</code>
     * @return The clientSessionName.
     */
    @java.lang.Override
    public java.lang.String getClientSessionName() {
      java.lang.Object ref = clientSessionName_;
      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();
        clientSessionName_ = s;
        return s;
      }
    }
    /**
     * <code>string client_session_name = 2;</code>
     * @return The bytes for clientSessionName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientSessionNameBytes() {
      java.lang.Object ref = clientSessionName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientSessionName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENT_CORRELATION_ID_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientCorrelationId_ = "";
    /**
     * <code>string client_correlation_id = 3;</code>
     * @return The clientCorrelationId.
     */
    @java.lang.Override
    public java.lang.String getClientCorrelationId() {
      java.lang.Object ref = clientCorrelationId_;
      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();
        clientCorrelationId_ = s;
        return s;
      }
    }
    /**
     * <code>string client_correlation_id = 3;</code>
     * @return The bytes for clientCorrelationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientCorrelationIdBytes() {
      java.lang.Object ref = clientCorrelationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientCorrelationId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMAND_TIMEOUT_FIELD_NUMBER = 4;
    private com.google.protobuf.Duration commandTimeout_;
    /**
     * <code>.google.protobuf.Duration command_timeout = 4;</code>
     * @return Whether the commandTimeout field is set.
     */
    @java.lang.Override
    public boolean hasCommandTimeout() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Duration command_timeout = 4;</code>
     * @return The commandTimeout.
     */
    @java.lang.Override
    public com.google.protobuf.Duration getCommandTimeout() {
      return commandTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : commandTimeout_;
    }
    /**
     * <code>.google.protobuf.Duration command_timeout = 4;</code>
     */
    @java.lang.Override
    public com.google.protobuf.DurationOrBuilder getCommandTimeoutOrBuilder() {
      return commandTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : commandTimeout_;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestedBackend_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, requestedBackend_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientSessionName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, clientSessionName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, clientCorrelationId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getCommandTimeout());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestedBackend_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, requestedBackend_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientSessionName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, clientSessionName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, clientCorrelationId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getCommandTimeout());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest other = (mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest) obj;

      if (!getRequestedBackend()
          .equals(other.getRequestedBackend())) return false;
      if (!getClientSessionName()
          .equals(other.getClientSessionName())) return false;
      if (!getClientCorrelationId()
          .equals(other.getClientCorrelationId())) return false;
      if (hasCommandTimeout() != other.hasCommandTimeout()) return false;
      if (hasCommandTimeout()) {
        if (!getCommandTimeout()
            .equals(other.getCommandTimeout())) 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();
      hash = (37 * hash) + REQUESTED_BACKEND_FIELD_NUMBER;
      hash = (53 * hash) + getRequestedBackend().hashCode();
      hash = (37 * hash) + CLIENT_SESSION_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getClientSessionName().hashCode();
      hash = (37 * hash) + CLIENT_CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClientCorrelationId().hashCode();
      if (hasCommandTimeout()) {
        hash = (37 * hash) + COMMAND_TIMEOUT_FIELD_NUMBER;
        hash = (53 * hash) + getCommandTimeout().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest 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 mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest 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 mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest 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(mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest 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 mxaccess_gateway.v1.OpenSessionRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OpenSessionRequest)
        mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest.class, mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetCommandTimeoutFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestedBackend_ = "";
        clientSessionName_ = "";
        clientCorrelationId_ = "";
        commandTimeout_ = null;
        if (commandTimeoutBuilder_ != null) {
          commandTimeoutBuilder_.dispose();
          commandTimeoutBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionRequest_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest build() {
        mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest result = new mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestedBackend_ = requestedBackend_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientSessionName_ = clientSessionName_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.clientCorrelationId_ = clientCorrelationId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.commandTimeout_ = commandTimeoutBuilder_ == null
              ? commandTimeout_
              : commandTimeoutBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest.getDefaultInstance()) return this;
        if (!other.getRequestedBackend().isEmpty()) {
          requestedBackend_ = other.requestedBackend_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getClientSessionName().isEmpty()) {
          clientSessionName_ = other.clientSessionName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getClientCorrelationId().isEmpty()) {
          clientCorrelationId_ = other.clientCorrelationId_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasCommandTimeout()) {
          mergeCommandTimeout(other.getCommandTimeout());
        }
        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: {
                requestedBackend_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                clientSessionName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                clientCorrelationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    internalGetCommandTimeoutFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 requestedBackend_ = "";
      /**
       * <code>string requested_backend = 1;</code>
       * @return The requestedBackend.
       */
      public java.lang.String getRequestedBackend() {
        java.lang.Object ref = requestedBackend_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          requestedBackend_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string requested_backend = 1;</code>
       * @return The bytes for requestedBackend.
       */
      public com.google.protobuf.ByteString
          getRequestedBackendBytes() {
        java.lang.Object ref = requestedBackend_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          requestedBackend_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string requested_backend = 1;</code>
       * @param value The requestedBackend to set.
       * @return This builder for chaining.
       */
      public Builder setRequestedBackend(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        requestedBackend_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string requested_backend = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestedBackend() {
        requestedBackend_ = getDefaultInstance().getRequestedBackend();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string requested_backend = 1;</code>
       * @param value The bytes for requestedBackend to set.
       * @return This builder for chaining.
       */
      public Builder setRequestedBackendBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        requestedBackend_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object clientSessionName_ = "";
      /**
       * <code>string client_session_name = 2;</code>
       * @return The clientSessionName.
       */
      public java.lang.String getClientSessionName() {
        java.lang.Object ref = clientSessionName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientSessionName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_session_name = 2;</code>
       * @return The bytes for clientSessionName.
       */
      public com.google.protobuf.ByteString
          getClientSessionNameBytes() {
        java.lang.Object ref = clientSessionName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientSessionName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_session_name = 2;</code>
       * @param value The clientSessionName to set.
       * @return This builder for chaining.
       */
      public Builder setClientSessionName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientSessionName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string client_session_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientSessionName() {
        clientSessionName_ = getDefaultInstance().getClientSessionName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string client_session_name = 2;</code>
       * @param value The bytes for clientSessionName to set.
       * @return This builder for chaining.
       */
      public Builder setClientSessionNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientSessionName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object clientCorrelationId_ = "";
      /**
       * <code>string client_correlation_id = 3;</code>
       * @return The clientCorrelationId.
       */
      public java.lang.String getClientCorrelationId() {
        java.lang.Object ref = clientCorrelationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientCorrelationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 3;</code>
       * @return The bytes for clientCorrelationId.
       */
      public com.google.protobuf.ByteString
          getClientCorrelationIdBytes() {
        java.lang.Object ref = clientCorrelationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientCorrelationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 3;</code>
       * @param value The clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientCorrelationId() {
        clientCorrelationId_ = getDefaultInstance().getClientCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 3;</code>
       * @param value The bytes for clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private com.google.protobuf.Duration commandTimeout_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> commandTimeoutBuilder_;
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       * @return Whether the commandTimeout field is set.
       */
      public boolean hasCommandTimeout() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       * @return The commandTimeout.
       */
      public com.google.protobuf.Duration getCommandTimeout() {
        if (commandTimeoutBuilder_ == null) {
          return commandTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : commandTimeout_;
        } else {
          return commandTimeoutBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       */
      public Builder setCommandTimeout(com.google.protobuf.Duration value) {
        if (commandTimeoutBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          commandTimeout_ = value;
        } else {
          commandTimeoutBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       */
      public Builder setCommandTimeout(
          com.google.protobuf.Duration.Builder builderForValue) {
        if (commandTimeoutBuilder_ == null) {
          commandTimeout_ = builderForValue.build();
        } else {
          commandTimeoutBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       */
      public Builder mergeCommandTimeout(com.google.protobuf.Duration value) {
        if (commandTimeoutBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            commandTimeout_ != null &&
            commandTimeout_ != com.google.protobuf.Duration.getDefaultInstance()) {
            getCommandTimeoutBuilder().mergeFrom(value);
          } else {
            commandTimeout_ = value;
          }
        } else {
          commandTimeoutBuilder_.mergeFrom(value);
        }
        if (commandTimeout_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       */
      public Builder clearCommandTimeout() {
        bitField0_ = (bitField0_ & ~0x00000008);
        commandTimeout_ = null;
        if (commandTimeoutBuilder_ != null) {
          commandTimeoutBuilder_.dispose();
          commandTimeoutBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       */
      public com.google.protobuf.Duration.Builder getCommandTimeoutBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetCommandTimeoutFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       */
      public com.google.protobuf.DurationOrBuilder getCommandTimeoutOrBuilder() {
        if (commandTimeoutBuilder_ != null) {
          return commandTimeoutBuilder_.getMessageOrBuilder();
        } else {
          return commandTimeout_ == null ?
              com.google.protobuf.Duration.getDefaultInstance() : commandTimeout_;
        }
      }
      /**
       * <code>.google.protobuf.Duration command_timeout = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> 
          internalGetCommandTimeoutFieldBuilder() {
        if (commandTimeoutBuilder_ == null) {
          commandTimeoutBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
                  getCommandTimeout(),
                  getParentForChildren(),
                  isClean());
          commandTimeout_ = null;
        }
        return commandTimeoutBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OpenSessionRequest)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OpenSessionRequest)
    private static final mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OpenSessionRequest>
        PARSER = new com.google.protobuf.AbstractParser<OpenSessionRequest>() {
      @java.lang.Override
      public OpenSessionRequest 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<OpenSessionRequest> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OpenSessionRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OpenSessionReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OpenSessionReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>string backend_name = 2;</code>
     * @return The backendName.
     */
    java.lang.String getBackendName();
    /**
     * <code>string backend_name = 2;</code>
     * @return The bytes for backendName.
     */
    com.google.protobuf.ByteString
        getBackendNameBytes();

    /**
     * <code>int32 worker_process_id = 3;</code>
     * @return The workerProcessId.
     */
    int getWorkerProcessId();

    /**
     * <code>uint32 worker_protocol_version = 4;</code>
     * @return The workerProtocolVersion.
     */
    int getWorkerProtocolVersion();

    /**
     * <code>repeated string capabilities = 5;</code>
     * @return A list containing the capabilities.
     */
    java.util.List<java.lang.String>
        getCapabilitiesList();
    /**
     * <code>repeated string capabilities = 5;</code>
     * @return The count of capabilities.
     */
    int getCapabilitiesCount();
    /**
     * <code>repeated string capabilities = 5;</code>
     * @param index The index of the element to return.
     * @return The capabilities at the given index.
     */
    java.lang.String getCapabilities(int index);
    /**
     * <code>repeated string capabilities = 5;</code>
     * @param index The index of the value to return.
     * @return The bytes of the capabilities at the given index.
     */
    com.google.protobuf.ByteString
        getCapabilitiesBytes(int index);

    /**
     * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
     * @return Whether the defaultCommandTimeout field is set.
     */
    boolean hasDefaultCommandTimeout();
    /**
     * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
     * @return The defaultCommandTimeout.
     */
    com.google.protobuf.Duration getDefaultCommandTimeout();
    /**
     * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
     */
    com.google.protobuf.DurationOrBuilder getDefaultCommandTimeoutOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
     * @return Whether the protocolStatus field is set.
     */
    boolean hasProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
     * @return The protocolStatus.
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder();

    /**
     * <pre>
     * Public gateway contract version implemented by this endpoint. Clients use
     * this value to reject incompatible generated-code inputs before issuing
     * command-specific MXAccess calls.
     * </pre>
     *
     * <code>uint32 gateway_protocol_version = 8;</code>
     * @return The gatewayProtocolVersion.
     */
    int getGatewayProtocolVersion();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.OpenSessionReply}
   */
  public static final class OpenSessionReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OpenSessionReply)
      OpenSessionReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OpenSessionReply");
    }
    // Use OpenSessionReply.newBuilder() to construct.
    private OpenSessionReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OpenSessionReply() {
      sessionId_ = "";
      backendName_ = "";
      capabilities_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply.class, mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply.Builder.class);
    }

    private int bitField0_;
    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BACKEND_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object backendName_ = "";
    /**
     * <code>string backend_name = 2;</code>
     * @return The backendName.
     */
    @java.lang.Override
    public java.lang.String getBackendName() {
      java.lang.Object ref = backendName_;
      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();
        backendName_ = s;
        return s;
      }
    }
    /**
     * <code>string backend_name = 2;</code>
     * @return The bytes for backendName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBackendNameBytes() {
      java.lang.Object ref = backendName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        backendName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int WORKER_PROCESS_ID_FIELD_NUMBER = 3;
    private int workerProcessId_ = 0;
    /**
     * <code>int32 worker_process_id = 3;</code>
     * @return The workerProcessId.
     */
    @java.lang.Override
    public int getWorkerProcessId() {
      return workerProcessId_;
    }

    public static final int WORKER_PROTOCOL_VERSION_FIELD_NUMBER = 4;
    private int workerProtocolVersion_ = 0;
    /**
     * <code>uint32 worker_protocol_version = 4;</code>
     * @return The workerProtocolVersion.
     */
    @java.lang.Override
    public int getWorkerProtocolVersion() {
      return workerProtocolVersion_;
    }

    public static final int CAPABILITIES_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList capabilities_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string capabilities = 5;</code>
     * @return A list containing the capabilities.
     */
    public com.google.protobuf.ProtocolStringList
        getCapabilitiesList() {
      return capabilities_;
    }
    /**
     * <code>repeated string capabilities = 5;</code>
     * @return The count of capabilities.
     */
    public int getCapabilitiesCount() {
      return capabilities_.size();
    }
    /**
     * <code>repeated string capabilities = 5;</code>
     * @param index The index of the element to return.
     * @return The capabilities at the given index.
     */
    public java.lang.String getCapabilities(int index) {
      return capabilities_.get(index);
    }
    /**
     * <code>repeated string capabilities = 5;</code>
     * @param index The index of the value to return.
     * @return The bytes of the capabilities at the given index.
     */
    public com.google.protobuf.ByteString
        getCapabilitiesBytes(int index) {
      return capabilities_.getByteString(index);
    }

    public static final int DEFAULT_COMMAND_TIMEOUT_FIELD_NUMBER = 6;
    private com.google.protobuf.Duration defaultCommandTimeout_;
    /**
     * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
     * @return Whether the defaultCommandTimeout field is set.
     */
    @java.lang.Override
    public boolean hasDefaultCommandTimeout() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
     * @return The defaultCommandTimeout.
     */
    @java.lang.Override
    public com.google.protobuf.Duration getDefaultCommandTimeout() {
      return defaultCommandTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : defaultCommandTimeout_;
    }
    /**
     * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
     */
    @java.lang.Override
    public com.google.protobuf.DurationOrBuilder getDefaultCommandTimeoutOrBuilder() {
      return defaultCommandTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : defaultCommandTimeout_;
    }

    public static final int PROTOCOL_STATUS_FIELD_NUMBER = 7;
    private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
     * @return Whether the protocolStatus field is set.
     */
    @java.lang.Override
    public boolean hasProtocolStatus() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
     * @return The protocolStatus.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }

    public static final int GATEWAY_PROTOCOL_VERSION_FIELD_NUMBER = 8;
    private int gatewayProtocolVersion_ = 0;
    /**
     * <pre>
     * Public gateway contract version implemented by this endpoint. Clients use
     * this value to reject incompatible generated-code inputs before issuing
     * command-specific MXAccess calls.
     * </pre>
     *
     * <code>uint32 gateway_protocol_version = 8;</code>
     * @return The gatewayProtocolVersion.
     */
    @java.lang.Override
    public int getGatewayProtocolVersion() {
      return gatewayProtocolVersion_;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(backendName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, backendName_);
      }
      if (workerProcessId_ != 0) {
        output.writeInt32(3, workerProcessId_);
      }
      if (workerProtocolVersion_ != 0) {
        output.writeUInt32(4, workerProtocolVersion_);
      }
      for (int i = 0; i < capabilities_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, capabilities_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(6, getDefaultCommandTimeout());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(7, getProtocolStatus());
      }
      if (gatewayProtocolVersion_ != 0) {
        output.writeUInt32(8, gatewayProtocolVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(backendName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, backendName_);
      }
      if (workerProcessId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, workerProcessId_);
      }
      if (workerProtocolVersion_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, workerProtocolVersion_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < capabilities_.size(); i++) {
          dataSize += computeStringSizeNoTag(capabilities_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCapabilitiesList().size();
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getDefaultCommandTimeout());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getProtocolStatus());
      }
      if (gatewayProtocolVersion_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, gatewayProtocolVersion_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply other = (mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (!getBackendName()
          .equals(other.getBackendName())) return false;
      if (getWorkerProcessId()
          != other.getWorkerProcessId()) return false;
      if (getWorkerProtocolVersion()
          != other.getWorkerProtocolVersion()) return false;
      if (!getCapabilitiesList()
          .equals(other.getCapabilitiesList())) return false;
      if (hasDefaultCommandTimeout() != other.hasDefaultCommandTimeout()) return false;
      if (hasDefaultCommandTimeout()) {
        if (!getDefaultCommandTimeout()
            .equals(other.getDefaultCommandTimeout())) return false;
      }
      if (hasProtocolStatus() != other.hasProtocolStatus()) return false;
      if (hasProtocolStatus()) {
        if (!getProtocolStatus()
            .equals(other.getProtocolStatus())) return false;
      }
      if (getGatewayProtocolVersion()
          != other.getGatewayProtocolVersion()) 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();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + BACKEND_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getBackendName().hashCode();
      hash = (37 * hash) + WORKER_PROCESS_ID_FIELD_NUMBER;
      hash = (53 * hash) + getWorkerProcessId();
      hash = (37 * hash) + WORKER_PROTOCOL_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getWorkerProtocolVersion();
      if (getCapabilitiesCount() > 0) {
        hash = (37 * hash) + CAPABILITIES_FIELD_NUMBER;
        hash = (53 * hash) + getCapabilitiesList().hashCode();
      }
      if (hasDefaultCommandTimeout()) {
        hash = (37 * hash) + DEFAULT_COMMAND_TIMEOUT_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultCommandTimeout().hashCode();
      }
      if (hasProtocolStatus()) {
        hash = (37 * hash) + PROTOCOL_STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getProtocolStatus().hashCode();
      }
      hash = (37 * hash) + GATEWAY_PROTOCOL_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getGatewayProtocolVersion();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply 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 mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply 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 mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply 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(mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply 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 mxaccess_gateway.v1.OpenSessionReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OpenSessionReply)
        mxaccess_gateway.v1.MxaccessGateway.OpenSessionReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply.class, mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetDefaultCommandTimeoutFieldBuilder();
          internalGetProtocolStatusFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        backendName_ = "";
        workerProcessId_ = 0;
        workerProtocolVersion_ = 0;
        capabilities_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        defaultCommandTimeout_ = null;
        if (defaultCommandTimeoutBuilder_ != null) {
          defaultCommandTimeoutBuilder_.dispose();
          defaultCommandTimeoutBuilder_ = null;
        }
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        gatewayProtocolVersion_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OpenSessionReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply build() {
        mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply result = new mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.backendName_ = backendName_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.workerProcessId_ = workerProcessId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.workerProtocolVersion_ = workerProtocolVersion_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          capabilities_.makeImmutable();
          result.capabilities_ = capabilities_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.defaultCommandTimeout_ = defaultCommandTimeoutBuilder_ == null
              ? defaultCommandTimeout_
              : defaultCommandTimeoutBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.protocolStatus_ = protocolStatusBuilder_ == null
              ? protocolStatus_
              : protocolStatusBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.gatewayProtocolVersion_ = gatewayProtocolVersion_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getBackendName().isEmpty()) {
          backendName_ = other.backendName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getWorkerProcessId() != 0) {
          setWorkerProcessId(other.getWorkerProcessId());
        }
        if (other.getWorkerProtocolVersion() != 0) {
          setWorkerProtocolVersion(other.getWorkerProtocolVersion());
        }
        if (!other.capabilities_.isEmpty()) {
          if (capabilities_.isEmpty()) {
            capabilities_ = other.capabilities_;
            bitField0_ |= 0x00000010;
          } else {
            ensureCapabilitiesIsMutable();
            capabilities_.addAll(other.capabilities_);
          }
          onChanged();
        }
        if (other.hasDefaultCommandTimeout()) {
          mergeDefaultCommandTimeout(other.getDefaultCommandTimeout());
        }
        if (other.hasProtocolStatus()) {
          mergeProtocolStatus(other.getProtocolStatus());
        }
        if (other.getGatewayProtocolVersion() != 0) {
          setGatewayProtocolVersion(other.getGatewayProtocolVersion());
        }
        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: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                backendName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                workerProcessId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                workerProtocolVersion_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureCapabilitiesIsMutable();
                capabilities_.add(s);
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    internalGetDefaultCommandTimeoutFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    internalGetProtocolStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 64: {
                gatewayProtocolVersion_ = input.readUInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              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 sessionId_ = "";
      /**
       * <code>string session_id = 1;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object backendName_ = "";
      /**
       * <code>string backend_name = 2;</code>
       * @return The backendName.
       */
      public java.lang.String getBackendName() {
        java.lang.Object ref = backendName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          backendName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string backend_name = 2;</code>
       * @return The bytes for backendName.
       */
      public com.google.protobuf.ByteString
          getBackendNameBytes() {
        java.lang.Object ref = backendName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          backendName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string backend_name = 2;</code>
       * @param value The backendName to set.
       * @return This builder for chaining.
       */
      public Builder setBackendName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        backendName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string backend_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBackendName() {
        backendName_ = getDefaultInstance().getBackendName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string backend_name = 2;</code>
       * @param value The bytes for backendName to set.
       * @return This builder for chaining.
       */
      public Builder setBackendNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        backendName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int workerProcessId_ ;
      /**
       * <code>int32 worker_process_id = 3;</code>
       * @return The workerProcessId.
       */
      @java.lang.Override
      public int getWorkerProcessId() {
        return workerProcessId_;
      }
      /**
       * <code>int32 worker_process_id = 3;</code>
       * @param value The workerProcessId to set.
       * @return This builder for chaining.
       */
      public Builder setWorkerProcessId(int value) {

        workerProcessId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 worker_process_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearWorkerProcessId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        workerProcessId_ = 0;
        onChanged();
        return this;
      }

      private int workerProtocolVersion_ ;
      /**
       * <code>uint32 worker_protocol_version = 4;</code>
       * @return The workerProtocolVersion.
       */
      @java.lang.Override
      public int getWorkerProtocolVersion() {
        return workerProtocolVersion_;
      }
      /**
       * <code>uint32 worker_protocol_version = 4;</code>
       * @param value The workerProtocolVersion to set.
       * @return This builder for chaining.
       */
      public Builder setWorkerProtocolVersion(int value) {

        workerProtocolVersion_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 worker_protocol_version = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearWorkerProtocolVersion() {
        bitField0_ = (bitField0_ & ~0x00000008);
        workerProtocolVersion_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList capabilities_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureCapabilitiesIsMutable() {
        if (!capabilities_.isModifiable()) {
          capabilities_ = new com.google.protobuf.LazyStringArrayList(capabilities_);
        }
        bitField0_ |= 0x00000010;
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @return A list containing the capabilities.
       */
      public com.google.protobuf.ProtocolStringList
          getCapabilitiesList() {
        capabilities_.makeImmutable();
        return capabilities_;
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @return The count of capabilities.
       */
      public int getCapabilitiesCount() {
        return capabilities_.size();
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @param index The index of the element to return.
       * @return The capabilities at the given index.
       */
      public java.lang.String getCapabilities(int index) {
        return capabilities_.get(index);
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @param index The index of the value to return.
       * @return The bytes of the capabilities at the given index.
       */
      public com.google.protobuf.ByteString
          getCapabilitiesBytes(int index) {
        return capabilities_.getByteString(index);
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @param index The index to set the value at.
       * @param value The capabilities to set.
       * @return This builder for chaining.
       */
      public Builder setCapabilities(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureCapabilitiesIsMutable();
        capabilities_.set(index, value);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @param value The capabilities to add.
       * @return This builder for chaining.
       */
      public Builder addCapabilities(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureCapabilitiesIsMutable();
        capabilities_.add(value);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @param values The capabilities to add.
       * @return This builder for chaining.
       */
      public Builder addAllCapabilities(
          java.lang.Iterable<java.lang.String> values) {
        ensureCapabilitiesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, capabilities_);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCapabilities() {
        capabilities_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string capabilities = 5;</code>
       * @param value The bytes of the capabilities to add.
       * @return This builder for chaining.
       */
      public Builder addCapabilitiesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureCapabilitiesIsMutable();
        capabilities_.add(value);
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private com.google.protobuf.Duration defaultCommandTimeout_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> defaultCommandTimeoutBuilder_;
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       * @return Whether the defaultCommandTimeout field is set.
       */
      public boolean hasDefaultCommandTimeout() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       * @return The defaultCommandTimeout.
       */
      public com.google.protobuf.Duration getDefaultCommandTimeout() {
        if (defaultCommandTimeoutBuilder_ == null) {
          return defaultCommandTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : defaultCommandTimeout_;
        } else {
          return defaultCommandTimeoutBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       */
      public Builder setDefaultCommandTimeout(com.google.protobuf.Duration value) {
        if (defaultCommandTimeoutBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          defaultCommandTimeout_ = value;
        } else {
          defaultCommandTimeoutBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       */
      public Builder setDefaultCommandTimeout(
          com.google.protobuf.Duration.Builder builderForValue) {
        if (defaultCommandTimeoutBuilder_ == null) {
          defaultCommandTimeout_ = builderForValue.build();
        } else {
          defaultCommandTimeoutBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       */
      public Builder mergeDefaultCommandTimeout(com.google.protobuf.Duration value) {
        if (defaultCommandTimeoutBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            defaultCommandTimeout_ != null &&
            defaultCommandTimeout_ != com.google.protobuf.Duration.getDefaultInstance()) {
            getDefaultCommandTimeoutBuilder().mergeFrom(value);
          } else {
            defaultCommandTimeout_ = value;
          }
        } else {
          defaultCommandTimeoutBuilder_.mergeFrom(value);
        }
        if (defaultCommandTimeout_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       */
      public Builder clearDefaultCommandTimeout() {
        bitField0_ = (bitField0_ & ~0x00000020);
        defaultCommandTimeout_ = null;
        if (defaultCommandTimeoutBuilder_ != null) {
          defaultCommandTimeoutBuilder_.dispose();
          defaultCommandTimeoutBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       */
      public com.google.protobuf.Duration.Builder getDefaultCommandTimeoutBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return internalGetDefaultCommandTimeoutFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       */
      public com.google.protobuf.DurationOrBuilder getDefaultCommandTimeoutOrBuilder() {
        if (defaultCommandTimeoutBuilder_ != null) {
          return defaultCommandTimeoutBuilder_.getMessageOrBuilder();
        } else {
          return defaultCommandTimeout_ == null ?
              com.google.protobuf.Duration.getDefaultInstance() : defaultCommandTimeout_;
        }
      }
      /**
       * <code>.google.protobuf.Duration default_command_timeout = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> 
          internalGetDefaultCommandTimeoutFieldBuilder() {
        if (defaultCommandTimeoutBuilder_ == null) {
          defaultCommandTimeoutBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
                  getDefaultCommandTimeout(),
                  getParentForChildren(),
                  isClean());
          defaultCommandTimeout_ = null;
        }
        return defaultCommandTimeoutBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> protocolStatusBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       * @return Whether the protocolStatus field is set.
       */
      public boolean hasProtocolStatus() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       * @return The protocolStatus.
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
        if (protocolStatusBuilder_ == null) {
          return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        } else {
          return protocolStatusBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       */
      public Builder setProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          protocolStatus_ = value;
        } else {
          protocolStatusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       */
      public Builder setProtocolStatus(
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder builderForValue) {
        if (protocolStatusBuilder_ == null) {
          protocolStatus_ = builderForValue.build();
        } else {
          protocolStatusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       */
      public Builder mergeProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            protocolStatus_ != null &&
            protocolStatus_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance()) {
            getProtocolStatusBuilder().mergeFrom(value);
          } else {
            protocolStatus_ = value;
          }
        } else {
          protocolStatusBuilder_.mergeFrom(value);
        }
        if (protocolStatus_ != null) {
          bitField0_ |= 0x00000040;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       */
      public Builder clearProtocolStatus() {
        bitField0_ = (bitField0_ & ~0x00000040);
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder getProtocolStatusBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return internalGetProtocolStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
        if (protocolStatusBuilder_ != null) {
          return protocolStatusBuilder_.getMessageOrBuilder();
        } else {
          return protocolStatus_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> 
          internalGetProtocolStatusFieldBuilder() {
        if (protocolStatusBuilder_ == null) {
          protocolStatusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder>(
                  getProtocolStatus(),
                  getParentForChildren(),
                  isClean());
          protocolStatus_ = null;
        }
        return protocolStatusBuilder_;
      }

      private int gatewayProtocolVersion_ ;
      /**
       * <pre>
       * Public gateway contract version implemented by this endpoint. Clients use
       * this value to reject incompatible generated-code inputs before issuing
       * command-specific MXAccess calls.
       * </pre>
       *
       * <code>uint32 gateway_protocol_version = 8;</code>
       * @return The gatewayProtocolVersion.
       */
      @java.lang.Override
      public int getGatewayProtocolVersion() {
        return gatewayProtocolVersion_;
      }
      /**
       * <pre>
       * Public gateway contract version implemented by this endpoint. Clients use
       * this value to reject incompatible generated-code inputs before issuing
       * command-specific MXAccess calls.
       * </pre>
       *
       * <code>uint32 gateway_protocol_version = 8;</code>
       * @param value The gatewayProtocolVersion to set.
       * @return This builder for chaining.
       */
      public Builder setGatewayProtocolVersion(int value) {

        gatewayProtocolVersion_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Public gateway contract version implemented by this endpoint. Clients use
       * this value to reject incompatible generated-code inputs before issuing
       * command-specific MXAccess calls.
       * </pre>
       *
       * <code>uint32 gateway_protocol_version = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearGatewayProtocolVersion() {
        bitField0_ = (bitField0_ & ~0x00000080);
        gatewayProtocolVersion_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OpenSessionReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OpenSessionReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OpenSessionReply>
        PARSER = new com.google.protobuf.AbstractParser<OpenSessionReply>() {
      @java.lang.Override
      public OpenSessionReply 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<OpenSessionReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OpenSessionReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CloseSessionRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.CloseSessionRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    java.lang.String getClientCorrelationId();
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    com.google.protobuf.ByteString
        getClientCorrelationIdBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.CloseSessionRequest}
   */
  public static final class CloseSessionRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.CloseSessionRequest)
      CloseSessionRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "CloseSessionRequest");
    }
    // Use CloseSessionRequest.newBuilder() to construct.
    private CloseSessionRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private CloseSessionRequest() {
      sessionId_ = "";
      clientCorrelationId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest.class, mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest.Builder.class);
    }

    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENT_CORRELATION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientCorrelationId_ = "";
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    @java.lang.Override
    public java.lang.String getClientCorrelationId() {
      java.lang.Object ref = clientCorrelationId_;
      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();
        clientCorrelationId_ = s;
        return s;
      }
    }
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientCorrelationIdBytes() {
      java.lang.Object ref = clientCorrelationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientCorrelationId_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, clientCorrelationId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, clientCorrelationId_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest other = (mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (!getClientCorrelationId()
          .equals(other.getClientCorrelationId())) 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();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + CLIENT_CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClientCorrelationId().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest 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 mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest 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 mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest 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(mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest 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 mxaccess_gateway.v1.CloseSessionRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.CloseSessionRequest)
        mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest.class, mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        clientCorrelationId_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionRequest_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest build() {
        mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest result = new mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientCorrelationId_ = clientCorrelationId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getClientCorrelationId().isEmpty()) {
          clientCorrelationId_ = other.clientCorrelationId_;
          bitField0_ |= 0x00000002;
          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: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                clientCorrelationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 sessionId_ = "";
      /**
       * <code>string session_id = 1;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object clientCorrelationId_ = "";
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The clientCorrelationId.
       */
      public java.lang.String getClientCorrelationId() {
        java.lang.Object ref = clientCorrelationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientCorrelationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The bytes for clientCorrelationId.
       */
      public com.google.protobuf.ByteString
          getClientCorrelationIdBytes() {
        java.lang.Object ref = clientCorrelationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientCorrelationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientCorrelationId() {
        clientCorrelationId_ = getDefaultInstance().getClientCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The bytes for clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.CloseSessionRequest)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.CloseSessionRequest)
    private static final mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CloseSessionRequest>
        PARSER = new com.google.protobuf.AbstractParser<CloseSessionRequest>() {
      @java.lang.Override
      public CloseSessionRequest 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<CloseSessionRequest> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.CloseSessionRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CloseSessionReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.CloseSessionReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
     * @return The enum numeric value on the wire for finalState.
     */
    int getFinalStateValue();
    /**
     * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
     * @return The finalState.
     */
    mxaccess_gateway.v1.MxaccessGateway.SessionState getFinalState();

    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return Whether the protocolStatus field is set.
     */
    boolean hasProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return The protocolStatus.
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.CloseSessionReply}
   */
  public static final class CloseSessionReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.CloseSessionReply)
      CloseSessionReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "CloseSessionReply");
    }
    // Use CloseSessionReply.newBuilder() to construct.
    private CloseSessionReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private CloseSessionReply() {
      sessionId_ = "";
      finalState_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply.class, mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply.Builder.class);
    }

    private int bitField0_;
    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FINAL_STATE_FIELD_NUMBER = 2;
    private int finalState_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
     * @return The enum numeric value on the wire for finalState.
     */
    @java.lang.Override public int getFinalStateValue() {
      return finalState_;
    }
    /**
     * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
     * @return The finalState.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.SessionState getFinalState() {
      mxaccess_gateway.v1.MxaccessGateway.SessionState result = mxaccess_gateway.v1.MxaccessGateway.SessionState.forNumber(finalState_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.SessionState.UNRECOGNIZED : result;
    }

    public static final int PROTOCOL_STATUS_FIELD_NUMBER = 3;
    private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return Whether the protocolStatus field is set.
     */
    @java.lang.Override
    public boolean hasProtocolStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return The protocolStatus.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_);
      }
      if (finalState_ != mxaccess_gateway.v1.MxaccessGateway.SessionState.SESSION_STATE_UNSPECIFIED.getNumber()) {
        output.writeEnum(2, finalState_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getProtocolStatus());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_);
      }
      if (finalState_ != mxaccess_gateway.v1.MxaccessGateway.SessionState.SESSION_STATE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, finalState_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getProtocolStatus());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply other = (mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (finalState_ != other.finalState_) return false;
      if (hasProtocolStatus() != other.hasProtocolStatus()) return false;
      if (hasProtocolStatus()) {
        if (!getProtocolStatus()
            .equals(other.getProtocolStatus())) 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();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + FINAL_STATE_FIELD_NUMBER;
      hash = (53 * hash) + finalState_;
      if (hasProtocolStatus()) {
        hash = (37 * hash) + PROTOCOL_STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getProtocolStatus().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply 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 mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply 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 mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply 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(mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply 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 mxaccess_gateway.v1.CloseSessionReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.CloseSessionReply)
        mxaccess_gateway.v1.MxaccessGateway.CloseSessionReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply.class, mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetProtocolStatusFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        finalState_ = 0;
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_CloseSessionReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply build() {
        mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply result = new mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.finalState_ = finalState_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.protocolStatus_ = protocolStatusBuilder_ == null
              ? protocolStatus_
              : protocolStatusBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.finalState_ != 0) {
          setFinalStateValue(other.getFinalStateValue());
        }
        if (other.hasProtocolStatus()) {
          mergeProtocolStatus(other.getProtocolStatus());
        }
        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: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                finalState_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    internalGetProtocolStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              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 sessionId_ = "";
      /**
       * <code>string session_id = 1;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int finalState_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
       * @return The enum numeric value on the wire for finalState.
       */
      @java.lang.Override public int getFinalStateValue() {
        return finalState_;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
       * @param value The enum numeric value on the wire for finalState to set.
       * @return This builder for chaining.
       */
      public Builder setFinalStateValue(int value) {
        finalState_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
       * @return The finalState.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SessionState getFinalState() {
        mxaccess_gateway.v1.MxaccessGateway.SessionState result = mxaccess_gateway.v1.MxaccessGateway.SessionState.forNumber(finalState_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.SessionState.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
       * @param value The finalState to set.
       * @return This builder for chaining.
       */
      public Builder setFinalState(mxaccess_gateway.v1.MxaccessGateway.SessionState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        finalState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState final_state = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFinalState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        finalState_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> protocolStatusBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       * @return Whether the protocolStatus field is set.
       */
      public boolean hasProtocolStatus() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       * @return The protocolStatus.
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
        if (protocolStatusBuilder_ == null) {
          return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        } else {
          return protocolStatusBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder setProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          protocolStatus_ = value;
        } else {
          protocolStatusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder setProtocolStatus(
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder builderForValue) {
        if (protocolStatusBuilder_ == null) {
          protocolStatus_ = builderForValue.build();
        } else {
          protocolStatusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder mergeProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            protocolStatus_ != null &&
            protocolStatus_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance()) {
            getProtocolStatusBuilder().mergeFrom(value);
          } else {
            protocolStatus_ = value;
          }
        } else {
          protocolStatusBuilder_.mergeFrom(value);
        }
        if (protocolStatus_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder clearProtocolStatus() {
        bitField0_ = (bitField0_ & ~0x00000004);
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder getProtocolStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetProtocolStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
        if (protocolStatusBuilder_ != null) {
          return protocolStatusBuilder_.getMessageOrBuilder();
        } else {
          return protocolStatus_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> 
          internalGetProtocolStatusFieldBuilder() {
        if (protocolStatusBuilder_ == null) {
          protocolStatusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder>(
                  getProtocolStatus(),
                  getParentForChildren(),
                  isClean());
          protocolStatus_ = null;
        }
        return protocolStatusBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.CloseSessionReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.CloseSessionReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<CloseSessionReply>
        PARSER = new com.google.protobuf.AbstractParser<CloseSessionReply>() {
      @java.lang.Override
      public CloseSessionReply 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<CloseSessionReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.CloseSessionReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StreamEventsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.StreamEventsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>uint64 after_worker_sequence = 2;</code>
     * @return The afterWorkerSequence.
     */
    long getAfterWorkerSequence();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.StreamEventsRequest}
   */
  public static final class StreamEventsRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.StreamEventsRequest)
      StreamEventsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "StreamEventsRequest");
    }
    // Use StreamEventsRequest.newBuilder() to construct.
    private StreamEventsRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private StreamEventsRequest() {
      sessionId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamEventsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamEventsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest.class, mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest.Builder.class);
    }

    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AFTER_WORKER_SEQUENCE_FIELD_NUMBER = 2;
    private long afterWorkerSequence_ = 0L;
    /**
     * <code>uint64 after_worker_sequence = 2;</code>
     * @return The afterWorkerSequence.
     */
    @java.lang.Override
    public long getAfterWorkerSequence() {
      return afterWorkerSequence_;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_);
      }
      if (afterWorkerSequence_ != 0L) {
        output.writeUInt64(2, afterWorkerSequence_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_);
      }
      if (afterWorkerSequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, afterWorkerSequence_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest other = (mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (getAfterWorkerSequence()
          != other.getAfterWorkerSequence()) 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();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + AFTER_WORKER_SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getAfterWorkerSequence());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest 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 mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest 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 mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest 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(mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest 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 mxaccess_gateway.v1.StreamEventsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.StreamEventsRequest)
        mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamEventsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamEventsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest.class, mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        afterWorkerSequence_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamEventsRequest_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest build() {
        mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest result = new mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.afterWorkerSequence_ = afterWorkerSequence_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getAfterWorkerSequence() != 0L) {
          setAfterWorkerSequence(other.getAfterWorkerSequence());
        }
        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: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                afterWorkerSequence_ = input.readUInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 sessionId_ = "";
      /**
       * <code>string session_id = 1;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private long afterWorkerSequence_ ;
      /**
       * <code>uint64 after_worker_sequence = 2;</code>
       * @return The afterWorkerSequence.
       */
      @java.lang.Override
      public long getAfterWorkerSequence() {
        return afterWorkerSequence_;
      }
      /**
       * <code>uint64 after_worker_sequence = 2;</code>
       * @param value The afterWorkerSequence to set.
       * @return This builder for chaining.
       */
      public Builder setAfterWorkerSequence(long value) {

        afterWorkerSequence_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 after_worker_sequence = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAfterWorkerSequence() {
        bitField0_ = (bitField0_ & ~0x00000002);
        afterWorkerSequence_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.StreamEventsRequest)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.StreamEventsRequest)
    private static final mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StreamEventsRequest>
        PARSER = new com.google.protobuf.AbstractParser<StreamEventsRequest>() {
      @java.lang.Override
      public StreamEventsRequest 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<StreamEventsRequest> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.StreamEventsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxCommandRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxCommandRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    java.lang.String getClientCorrelationId();
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    com.google.protobuf.ByteString
        getClientCorrelationIdBytes();

    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
     * @return Whether the command field is set.
     */
    boolean hasCommand();
    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
     * @return The command.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommand getCommand();
    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder getCommandOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxCommandRequest}
   */
  public static final class MxCommandRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxCommandRequest)
      MxCommandRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxCommandRequest");
    }
    // Use MxCommandRequest.newBuilder() to construct.
    private MxCommandRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxCommandRequest() {
      sessionId_ = "";
      clientCorrelationId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest.class, mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest.Builder.class);
    }

    private int bitField0_;
    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENT_CORRELATION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientCorrelationId_ = "";
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    @java.lang.Override
    public java.lang.String getClientCorrelationId() {
      java.lang.Object ref = clientCorrelationId_;
      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();
        clientCorrelationId_ = s;
        return s;
      }
    }
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientCorrelationIdBytes() {
      java.lang.Object ref = clientCorrelationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientCorrelationId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMAND_FIELD_NUMBER = 3;
    private mxaccess_gateway.v1.MxaccessGateway.MxCommand command_;
    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
     * @return Whether the command field is set.
     */
    @java.lang.Override
    public boolean hasCommand() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
     * @return The command.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxCommand getCommand() {
      return command_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance() : command_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder getCommandOrBuilder() {
      return command_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance() : command_;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, clientCorrelationId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getCommand());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, clientCorrelationId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getCommand());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest other = (mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (!getClientCorrelationId()
          .equals(other.getClientCorrelationId())) return false;
      if (hasCommand() != other.hasCommand()) return false;
      if (hasCommand()) {
        if (!getCommand()
            .equals(other.getCommand())) 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();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + CLIENT_CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClientCorrelationId().hashCode();
      if (hasCommand()) {
        hash = (37 * hash) + COMMAND_FIELD_NUMBER;
        hash = (53 * hash) + getCommand().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest 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 mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest 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 mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest 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(mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest 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 mxaccess_gateway.v1.MxCommandRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxCommandRequest)
        mxaccess_gateway.v1.MxaccessGateway.MxCommandRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest.class, mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetCommandFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        clientCorrelationId_ = "";
        command_ = null;
        if (commandBuilder_ != null) {
          commandBuilder_.dispose();
          commandBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandRequest_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest build() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest result = new mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.clientCorrelationId_ = clientCorrelationId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.command_ = commandBuilder_ == null
              ? command_
              : commandBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getClientCorrelationId().isEmpty()) {
          clientCorrelationId_ = other.clientCorrelationId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasCommand()) {
          mergeCommand(other.getCommand());
        }
        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: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                clientCorrelationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    internalGetCommandFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              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 sessionId_ = "";
      /**
       * <code>string session_id = 1;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object clientCorrelationId_ = "";
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The clientCorrelationId.
       */
      public java.lang.String getClientCorrelationId() {
        java.lang.Object ref = clientCorrelationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientCorrelationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The bytes for clientCorrelationId.
       */
      public com.google.protobuf.ByteString
          getClientCorrelationIdBytes() {
        java.lang.Object ref = clientCorrelationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientCorrelationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientCorrelationId() {
        clientCorrelationId_ = getDefaultInstance().getClientCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The bytes for clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxCommand command_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxCommand, mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder> commandBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       * @return Whether the command field is set.
       */
      public boolean hasCommand() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       * @return The command.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxCommand getCommand() {
        if (commandBuilder_ == null) {
          return command_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance() : command_;
        } else {
          return commandBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       */
      public Builder setCommand(mxaccess_gateway.v1.MxaccessGateway.MxCommand value) {
        if (commandBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          command_ = value;
        } else {
          commandBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       */
      public Builder setCommand(
          mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder builderForValue) {
        if (commandBuilder_ == null) {
          command_ = builderForValue.build();
        } else {
          commandBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       */
      public Builder mergeCommand(mxaccess_gateway.v1.MxaccessGateway.MxCommand value) {
        if (commandBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            command_ != null &&
            command_ != mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance()) {
            getCommandBuilder().mergeFrom(value);
          } else {
            command_ = value;
          }
        } else {
          commandBuilder_.mergeFrom(value);
        }
        if (command_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       */
      public Builder clearCommand() {
        bitField0_ = (bitField0_ & ~0x00000004);
        command_ = null;
        if (commandBuilder_ != null) {
          commandBuilder_.dispose();
          commandBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder getCommandBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetCommandFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder getCommandOrBuilder() {
        if (commandBuilder_ != null) {
          return commandBuilder_.getMessageOrBuilder();
        } else {
          return command_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance() : command_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxCommand, mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder> 
          internalGetCommandFieldBuilder() {
        if (commandBuilder_ == null) {
          commandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxCommand, mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder>(
                  getCommand(),
                  getParentForChildren(),
                  isClean());
          command_ = null;
        }
        return commandBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxCommandRequest)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxCommandRequest)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxCommandRequest>
        PARSER = new com.google.protobuf.AbstractParser<MxCommandRequest>() {
      @java.lang.Override
      public MxCommandRequest 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<MxCommandRequest> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxCommandRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
     * @return The enum numeric value on the wire for kind.
     */
    int getKindValue();
    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
     * @return The kind.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommandKind getKind();

    /**
     * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
     * @return Whether the register field is set.
     */
    boolean hasRegister();
    /**
     * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
     * @return The register.
     */
    mxaccess_gateway.v1.MxaccessGateway.RegisterCommand getRegister();
    /**
     * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.RegisterCommandOrBuilder getRegisterOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
     * @return Whether the unregister field is set.
     */
    boolean hasUnregister();
    /**
     * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
     * @return The unregister.
     */
    mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand getUnregister();
    /**
     * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.UnregisterCommandOrBuilder getUnregisterOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
     * @return Whether the addItem field is set.
     */
    boolean hasAddItem();
    /**
     * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
     * @return The addItem.
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItemCommand getAddItem();
    /**
     * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItemCommandOrBuilder getAddItemOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
     * @return Whether the addItem2 field is set.
     */
    boolean hasAddItem2();
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
     * @return The addItem2.
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItem2Command getAddItem2();
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItem2CommandOrBuilder getAddItem2OrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
     * @return Whether the removeItem field is set.
     */
    boolean hasRemoveItem();
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
     * @return The removeItem.
     */
    mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand getRemoveItem();
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommandOrBuilder getRemoveItemOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
     * @return Whether the advise field is set.
     */
    boolean hasAdvise();
    /**
     * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
     * @return The advise.
     */
    mxaccess_gateway.v1.MxaccessGateway.AdviseCommand getAdvise();
    /**
     * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AdviseCommandOrBuilder getAdviseOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
     * @return Whether the unAdvise field is set.
     */
    boolean hasUnAdvise();
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
     * @return The unAdvise.
     */
    mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand getUnAdvise();
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommandOrBuilder getUnAdviseOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
     * @return Whether the adviseSupervisory field is set.
     */
    boolean hasAdviseSupervisory();
    /**
     * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
     * @return The adviseSupervisory.
     */
    mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand getAdviseSupervisory();
    /**
     * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommandOrBuilder getAdviseSupervisoryOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
     * @return Whether the addBufferedItem field is set.
     */
    boolean hasAddBufferedItem();
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
     * @return The addBufferedItem.
     */
    mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand getAddBufferedItem();
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommandOrBuilder getAddBufferedItemOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
     * @return Whether the setBufferedUpdateInterval field is set.
     */
    boolean hasSetBufferedUpdateInterval();
    /**
     * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
     * @return The setBufferedUpdateInterval.
     */
    mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand getSetBufferedUpdateInterval();
    /**
     * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommandOrBuilder getSetBufferedUpdateIntervalOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
     * @return Whether the suspend field is set.
     */
    boolean hasSuspend();
    /**
     * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
     * @return The suspend.
     */
    mxaccess_gateway.v1.MxaccessGateway.SuspendCommand getSuspend();
    /**
     * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SuspendCommandOrBuilder getSuspendOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
     * @return Whether the activate field is set.
     */
    boolean hasActivate();
    /**
     * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
     * @return The activate.
     */
    mxaccess_gateway.v1.MxaccessGateway.ActivateCommand getActivate();
    /**
     * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ActivateCommandOrBuilder getActivateOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
     * @return Whether the write field is set.
     */
    boolean hasWrite();
    /**
     * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
     * @return The write.
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteCommand getWrite();
    /**
     * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteCommandOrBuilder getWriteOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
     * @return Whether the write2 field is set.
     */
    boolean hasWrite2();
    /**
     * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
     * @return The write2.
     */
    mxaccess_gateway.v1.MxaccessGateway.Write2Command getWrite2();
    /**
     * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.Write2CommandOrBuilder getWrite2OrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
     * @return Whether the writeSecured field is set.
     */
    boolean hasWriteSecured();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
     * @return The writeSecured.
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand getWriteSecured();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommandOrBuilder getWriteSecuredOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
     * @return Whether the writeSecured2 field is set.
     */
    boolean hasWriteSecured2();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
     * @return The writeSecured2.
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command getWriteSecured2();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecured2CommandOrBuilder getWriteSecured2OrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
     * @return Whether the authenticateUser field is set.
     */
    boolean hasAuthenticateUser();
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
     * @return The authenticateUser.
     */
    mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand getAuthenticateUser();
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommandOrBuilder getAuthenticateUserOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
     * @return Whether the archestraUserToId field is set.
     */
    boolean hasArchestraUserToId();
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
     * @return The archestraUserToId.
     */
    mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand getArchestraUserToId();
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommandOrBuilder getArchestraUserToIdOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
     * @return Whether the addItemBulk field is set.
     */
    boolean hasAddItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
     * @return The addItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand getAddItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommandOrBuilder getAddItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
     * @return Whether the adviseItemBulk field is set.
     */
    boolean hasAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
     * @return The adviseItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand getAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommandOrBuilder getAdviseItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
     * @return Whether the removeItemBulk field is set.
     */
    boolean hasRemoveItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
     * @return The removeItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand getRemoveItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommandOrBuilder getRemoveItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
     * @return Whether the unAdviseItemBulk field is set.
     */
    boolean hasUnAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
     * @return The unAdviseItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand getUnAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommandOrBuilder getUnAdviseItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
     * @return Whether the subscribeBulk field is set.
     */
    boolean hasSubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
     * @return The subscribeBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand getSubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommandOrBuilder getSubscribeBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
     * @return Whether the unsubscribeBulk field is set.
     */
    boolean hasUnsubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
     * @return The unsubscribeBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand getUnsubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommandOrBuilder getUnsubscribeBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
     * @return Whether the subscribeAlarms field is set.
     */
    boolean hasSubscribeAlarms();
    /**
     * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
     * @return The subscribeAlarms.
     */
    mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand getSubscribeAlarms();
    /**
     * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommandOrBuilder getSubscribeAlarmsOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
     * @return Whether the unsubscribeAlarms field is set.
     */
    boolean hasUnsubscribeAlarms();
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
     * @return The unsubscribeAlarms.
     */
    mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand getUnsubscribeAlarms();
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommandOrBuilder getUnsubscribeAlarmsOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
     * @return Whether the acknowledgeAlarmCommand field is set.
     */
    boolean hasAcknowledgeAlarmCommand();
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
     * @return The acknowledgeAlarmCommand.
     */
    mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand getAcknowledgeAlarmCommand();
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommandOrBuilder getAcknowledgeAlarmCommandOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
     * @return Whether the queryActiveAlarmsCommand field is set.
     */
    boolean hasQueryActiveAlarmsCommand();
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
     * @return The queryActiveAlarmsCommand.
     */
    mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand getQueryActiveAlarmsCommand();
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommandOrBuilder getQueryActiveAlarmsCommandOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
     * @return Whether the acknowledgeAlarmByNameCommand field is set.
     */
    boolean hasAcknowledgeAlarmByNameCommand();
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
     * @return The acknowledgeAlarmByNameCommand.
     */
    mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand getAcknowledgeAlarmByNameCommand();
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommandOrBuilder getAcknowledgeAlarmByNameCommandOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
     * @return Whether the writeBulk field is set.
     */
    boolean hasWriteBulk();
    /**
     * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
     * @return The writeBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand getWriteBulk();
    /**
     * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommandOrBuilder getWriteBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
     * @return Whether the write2Bulk field is set.
     */
    boolean hasWrite2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
     * @return The write2Bulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand getWrite2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommandOrBuilder getWrite2BulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
     * @return Whether the writeSecuredBulk field is set.
     */
    boolean hasWriteSecuredBulk();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
     * @return The writeSecuredBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand getWriteSecuredBulk();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommandOrBuilder getWriteSecuredBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
     * @return Whether the writeSecured2Bulk field is set.
     */
    boolean hasWriteSecured2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
     * @return The writeSecured2Bulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand getWriteSecured2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommandOrBuilder getWriteSecured2BulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
     * @return Whether the readBulk field is set.
     */
    boolean hasReadBulk();
    /**
     * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
     * @return The readBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand getReadBulk();
    /**
     * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommandOrBuilder getReadBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
     * @return Whether the ping field is set.
     */
    boolean hasPing();
    /**
     * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
     * @return The ping.
     */
    mxaccess_gateway.v1.MxaccessGateway.PingCommand getPing();
    /**
     * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.PingCommandOrBuilder getPingOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
     * @return Whether the getSessionState field is set.
     */
    boolean hasGetSessionState();
    /**
     * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
     * @return The getSessionState.
     */
    mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand getGetSessionState();
    /**
     * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommandOrBuilder getGetSessionStateOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
     * @return Whether the getWorkerInfo field is set.
     */
    boolean hasGetWorkerInfo();
    /**
     * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
     * @return The getWorkerInfo.
     */
    mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand getGetWorkerInfo();
    /**
     * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommandOrBuilder getGetWorkerInfoOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
     * @return Whether the drainEvents field is set.
     */
    boolean hasDrainEvents();
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
     * @return The drainEvents.
     */
    mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand getDrainEvents();
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommandOrBuilder getDrainEventsOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
     * @return Whether the shutdownWorker field is set.
     */
    boolean hasShutdownWorker();
    /**
     * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
     * @return The shutdownWorker.
     */
    mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand getShutdownWorker();
    /**
     * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommandOrBuilder getShutdownWorkerOrBuilder();

    mxaccess_gateway.v1.MxaccessGateway.MxCommand.PayloadCase getPayloadCase();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxCommand}
   */
  public static final class MxCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxCommand)
      MxCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxCommand");
    }
    // Use MxCommand.newBuilder() to construct.
    private MxCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxCommand() {
      kind_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxCommand.class, mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder.class);
    }

    private int payloadCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object payload_;
    public enum PayloadCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      REGISTER(10),
      UNREGISTER(11),
      ADD_ITEM(12),
      ADD_ITEM2(13),
      REMOVE_ITEM(14),
      ADVISE(15),
      UN_ADVISE(16),
      ADVISE_SUPERVISORY(17),
      ADD_BUFFERED_ITEM(18),
      SET_BUFFERED_UPDATE_INTERVAL(19),
      SUSPEND(20),
      ACTIVATE(21),
      WRITE(22),
      WRITE2(23),
      WRITE_SECURED(24),
      WRITE_SECURED2(25),
      AUTHENTICATE_USER(26),
      ARCHESTRA_USER_TO_ID(27),
      ADD_ITEM_BULK(28),
      ADVISE_ITEM_BULK(29),
      REMOVE_ITEM_BULK(30),
      UN_ADVISE_ITEM_BULK(31),
      SUBSCRIBE_BULK(32),
      UNSUBSCRIBE_BULK(33),
      SUBSCRIBE_ALARMS(34),
      UNSUBSCRIBE_ALARMS(35),
      ACKNOWLEDGE_ALARM_COMMAND(36),
      QUERY_ACTIVE_ALARMS_COMMAND(37),
      ACKNOWLEDGE_ALARM_BY_NAME_COMMAND(38),
      WRITE_BULK(39),
      WRITE2_BULK(40),
      WRITE_SECURED_BULK(41),
      WRITE_SECURED2_BULK(42),
      READ_BULK(43),
      PING(100),
      GET_SESSION_STATE(101),
      GET_WORKER_INFO(102),
      DRAIN_EVENTS(103),
      SHUTDOWN_WORKER(104),
      PAYLOAD_NOT_SET(0);
      private final int value;
      private PayloadCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PayloadCase valueOf(int value) {
        return forNumber(value);
      }

      public static PayloadCase forNumber(int value) {
        switch (value) {
          case 10: return REGISTER;
          case 11: return UNREGISTER;
          case 12: return ADD_ITEM;
          case 13: return ADD_ITEM2;
          case 14: return REMOVE_ITEM;
          case 15: return ADVISE;
          case 16: return UN_ADVISE;
          case 17: return ADVISE_SUPERVISORY;
          case 18: return ADD_BUFFERED_ITEM;
          case 19: return SET_BUFFERED_UPDATE_INTERVAL;
          case 20: return SUSPEND;
          case 21: return ACTIVATE;
          case 22: return WRITE;
          case 23: return WRITE2;
          case 24: return WRITE_SECURED;
          case 25: return WRITE_SECURED2;
          case 26: return AUTHENTICATE_USER;
          case 27: return ARCHESTRA_USER_TO_ID;
          case 28: return ADD_ITEM_BULK;
          case 29: return ADVISE_ITEM_BULK;
          case 30: return REMOVE_ITEM_BULK;
          case 31: return UN_ADVISE_ITEM_BULK;
          case 32: return SUBSCRIBE_BULK;
          case 33: return UNSUBSCRIBE_BULK;
          case 34: return SUBSCRIBE_ALARMS;
          case 35: return UNSUBSCRIBE_ALARMS;
          case 36: return ACKNOWLEDGE_ALARM_COMMAND;
          case 37: return QUERY_ACTIVE_ALARMS_COMMAND;
          case 38: return ACKNOWLEDGE_ALARM_BY_NAME_COMMAND;
          case 39: return WRITE_BULK;
          case 40: return WRITE2_BULK;
          case 41: return WRITE_SECURED_BULK;
          case 42: return WRITE_SECURED2_BULK;
          case 43: return READ_BULK;
          case 100: return PING;
          case 101: return GET_SESSION_STATE;
          case 102: return GET_WORKER_INFO;
          case 103: return DRAIN_EVENTS;
          case 104: return SHUTDOWN_WORKER;
          case 0: return PAYLOAD_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public PayloadCase
    getPayloadCase() {
      return PayloadCase.forNumber(
          payloadCase_);
    }

    public static final int KIND_FIELD_NUMBER = 1;
    private int kind_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
     * @return The enum numeric value on the wire for kind.
     */
    @java.lang.Override public int getKindValue() {
      return kind_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
     * @return The kind.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxCommandKind getKind() {
      mxaccess_gateway.v1.MxaccessGateway.MxCommandKind result = mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.forNumber(kind_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.UNRECOGNIZED : result;
    }

    public static final int REGISTER_FIELD_NUMBER = 10;
    /**
     * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
     * @return Whether the register field is set.
     */
    @java.lang.Override
    public boolean hasRegister() {
      return payloadCase_ == 10;
    }
    /**
     * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
     * @return The register.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RegisterCommand getRegister() {
      if (payloadCase_ == 10) {
         return (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RegisterCommandOrBuilder getRegisterOrBuilder() {
      if (payloadCase_ == 10) {
         return (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance();
    }

    public static final int UNREGISTER_FIELD_NUMBER = 11;
    /**
     * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
     * @return Whether the unregister field is set.
     */
    @java.lang.Override
    public boolean hasUnregister() {
      return payloadCase_ == 11;
    }
    /**
     * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
     * @return The unregister.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand getUnregister() {
      if (payloadCase_ == 11) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommandOrBuilder getUnregisterOrBuilder() {
      if (payloadCase_ == 11) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance();
    }

    public static final int ADD_ITEM_FIELD_NUMBER = 12;
    /**
     * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
     * @return Whether the addItem field is set.
     */
    @java.lang.Override
    public boolean hasAddItem() {
      return payloadCase_ == 12;
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
     * @return The addItem.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemCommand getAddItem() {
      if (payloadCase_ == 12) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemCommandOrBuilder getAddItemOrBuilder() {
      if (payloadCase_ == 12) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance();
    }

    public static final int ADD_ITEM2_FIELD_NUMBER = 13;
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
     * @return Whether the addItem2 field is set.
     */
    @java.lang.Override
    public boolean hasAddItem2() {
      return payloadCase_ == 13;
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
     * @return The addItem2.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItem2Command getAddItem2() {
      if (payloadCase_ == 13) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItem2CommandOrBuilder getAddItem2OrBuilder() {
      if (payloadCase_ == 13) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance();
    }

    public static final int REMOVE_ITEM_FIELD_NUMBER = 14;
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
     * @return Whether the removeItem field is set.
     */
    @java.lang.Override
    public boolean hasRemoveItem() {
      return payloadCase_ == 14;
    }
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
     * @return The removeItem.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand getRemoveItem() {
      if (payloadCase_ == 14) {
         return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommandOrBuilder getRemoveItemOrBuilder() {
      if (payloadCase_ == 14) {
         return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance();
    }

    public static final int ADVISE_FIELD_NUMBER = 15;
    /**
     * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
     * @return Whether the advise field is set.
     */
    @java.lang.Override
    public boolean hasAdvise() {
      return payloadCase_ == 15;
    }
    /**
     * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
     * @return The advise.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseCommand getAdvise() {
      if (payloadCase_ == 15) {
         return (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseCommandOrBuilder getAdviseOrBuilder() {
      if (payloadCase_ == 15) {
         return (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance();
    }

    public static final int UN_ADVISE_FIELD_NUMBER = 16;
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
     * @return Whether the unAdvise field is set.
     */
    @java.lang.Override
    public boolean hasUnAdvise() {
      return payloadCase_ == 16;
    }
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
     * @return The unAdvise.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand getUnAdvise() {
      if (payloadCase_ == 16) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommandOrBuilder getUnAdviseOrBuilder() {
      if (payloadCase_ == 16) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance();
    }

    public static final int ADVISE_SUPERVISORY_FIELD_NUMBER = 17;
    /**
     * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
     * @return Whether the adviseSupervisory field is set.
     */
    @java.lang.Override
    public boolean hasAdviseSupervisory() {
      return payloadCase_ == 17;
    }
    /**
     * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
     * @return The adviseSupervisory.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand getAdviseSupervisory() {
      if (payloadCase_ == 17) {
         return (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommandOrBuilder getAdviseSupervisoryOrBuilder() {
      if (payloadCase_ == 17) {
         return (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance();
    }

    public static final int ADD_BUFFERED_ITEM_FIELD_NUMBER = 18;
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
     * @return Whether the addBufferedItem field is set.
     */
    @java.lang.Override
    public boolean hasAddBufferedItem() {
      return payloadCase_ == 18;
    }
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
     * @return The addBufferedItem.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand getAddBufferedItem() {
      if (payloadCase_ == 18) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommandOrBuilder getAddBufferedItemOrBuilder() {
      if (payloadCase_ == 18) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance();
    }

    public static final int SET_BUFFERED_UPDATE_INTERVAL_FIELD_NUMBER = 19;
    /**
     * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
     * @return Whether the setBufferedUpdateInterval field is set.
     */
    @java.lang.Override
    public boolean hasSetBufferedUpdateInterval() {
      return payloadCase_ == 19;
    }
    /**
     * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
     * @return The setBufferedUpdateInterval.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand getSetBufferedUpdateInterval() {
      if (payloadCase_ == 19) {
         return (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommandOrBuilder getSetBufferedUpdateIntervalOrBuilder() {
      if (payloadCase_ == 19) {
         return (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance();
    }

    public static final int SUSPEND_FIELD_NUMBER = 20;
    /**
     * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
     * @return Whether the suspend field is set.
     */
    @java.lang.Override
    public boolean hasSuspend() {
      return payloadCase_ == 20;
    }
    /**
     * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
     * @return The suspend.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SuspendCommand getSuspend() {
      if (payloadCase_ == 20) {
         return (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SuspendCommandOrBuilder getSuspendOrBuilder() {
      if (payloadCase_ == 20) {
         return (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance();
    }

    public static final int ACTIVATE_FIELD_NUMBER = 21;
    /**
     * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
     * @return Whether the activate field is set.
     */
    @java.lang.Override
    public boolean hasActivate() {
      return payloadCase_ == 21;
    }
    /**
     * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
     * @return The activate.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActivateCommand getActivate() {
      if (payloadCase_ == 21) {
         return (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActivateCommandOrBuilder getActivateOrBuilder() {
      if (payloadCase_ == 21) {
         return (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance();
    }

    public static final int WRITE_FIELD_NUMBER = 22;
    /**
     * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
     * @return Whether the write field is set.
     */
    @java.lang.Override
    public boolean hasWrite() {
      return payloadCase_ == 22;
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
     * @return The write.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteCommand getWrite() {
      if (payloadCase_ == 22) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteCommandOrBuilder getWriteOrBuilder() {
      if (payloadCase_ == 22) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance();
    }

    public static final int WRITE2_FIELD_NUMBER = 23;
    /**
     * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
     * @return Whether the write2 field is set.
     */
    @java.lang.Override
    public boolean hasWrite2() {
      return payloadCase_ == 23;
    }
    /**
     * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
     * @return The write2.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2Command getWrite2() {
      if (payloadCase_ == 23) {
         return (mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2CommandOrBuilder getWrite2OrBuilder() {
      if (payloadCase_ == 23) {
         return (mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance();
    }

    public static final int WRITE_SECURED_FIELD_NUMBER = 24;
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
     * @return Whether the writeSecured field is set.
     */
    @java.lang.Override
    public boolean hasWriteSecured() {
      return payloadCase_ == 24;
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
     * @return The writeSecured.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand getWriteSecured() {
      if (payloadCase_ == 24) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommandOrBuilder getWriteSecuredOrBuilder() {
      if (payloadCase_ == 24) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance();
    }

    public static final int WRITE_SECURED2_FIELD_NUMBER = 25;
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
     * @return Whether the writeSecured2 field is set.
     */
    @java.lang.Override
    public boolean hasWriteSecured2() {
      return payloadCase_ == 25;
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
     * @return The writeSecured2.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command getWriteSecured2() {
      if (payloadCase_ == 25) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2CommandOrBuilder getWriteSecured2OrBuilder() {
      if (payloadCase_ == 25) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance();
    }

    public static final int AUTHENTICATE_USER_FIELD_NUMBER = 26;
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
     * @return Whether the authenticateUser field is set.
     */
    @java.lang.Override
    public boolean hasAuthenticateUser() {
      return payloadCase_ == 26;
    }
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
     * @return The authenticateUser.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand getAuthenticateUser() {
      if (payloadCase_ == 26) {
         return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommandOrBuilder getAuthenticateUserOrBuilder() {
      if (payloadCase_ == 26) {
         return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance();
    }

    public static final int ARCHESTRA_USER_TO_ID_FIELD_NUMBER = 27;
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
     * @return Whether the archestraUserToId field is set.
     */
    @java.lang.Override
    public boolean hasArchestraUserToId() {
      return payloadCase_ == 27;
    }
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
     * @return The archestraUserToId.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand getArchestraUserToId() {
      if (payloadCase_ == 27) {
         return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommandOrBuilder getArchestraUserToIdOrBuilder() {
      if (payloadCase_ == 27) {
         return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance();
    }

    public static final int ADD_ITEM_BULK_FIELD_NUMBER = 28;
    /**
     * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
     * @return Whether the addItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasAddItemBulk() {
      return payloadCase_ == 28;
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
     * @return The addItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand getAddItemBulk() {
      if (payloadCase_ == 28) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommandOrBuilder getAddItemBulkOrBuilder() {
      if (payloadCase_ == 28) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance();
    }

    public static final int ADVISE_ITEM_BULK_FIELD_NUMBER = 29;
    /**
     * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
     * @return Whether the adviseItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasAdviseItemBulk() {
      return payloadCase_ == 29;
    }
    /**
     * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
     * @return The adviseItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand getAdviseItemBulk() {
      if (payloadCase_ == 29) {
         return (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommandOrBuilder getAdviseItemBulkOrBuilder() {
      if (payloadCase_ == 29) {
         return (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance();
    }

    public static final int REMOVE_ITEM_BULK_FIELD_NUMBER = 30;
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
     * @return Whether the removeItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasRemoveItemBulk() {
      return payloadCase_ == 30;
    }
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
     * @return The removeItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand getRemoveItemBulk() {
      if (payloadCase_ == 30) {
         return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommandOrBuilder getRemoveItemBulkOrBuilder() {
      if (payloadCase_ == 30) {
         return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance();
    }

    public static final int UN_ADVISE_ITEM_BULK_FIELD_NUMBER = 31;
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
     * @return Whether the unAdviseItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasUnAdviseItemBulk() {
      return payloadCase_ == 31;
    }
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
     * @return The unAdviseItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand getUnAdviseItemBulk() {
      if (payloadCase_ == 31) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommandOrBuilder getUnAdviseItemBulkOrBuilder() {
      if (payloadCase_ == 31) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance();
    }

    public static final int SUBSCRIBE_BULK_FIELD_NUMBER = 32;
    /**
     * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
     * @return Whether the subscribeBulk field is set.
     */
    @java.lang.Override
    public boolean hasSubscribeBulk() {
      return payloadCase_ == 32;
    }
    /**
     * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
     * @return The subscribeBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand getSubscribeBulk() {
      if (payloadCase_ == 32) {
         return (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommandOrBuilder getSubscribeBulkOrBuilder() {
      if (payloadCase_ == 32) {
         return (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance();
    }

    public static final int UNSUBSCRIBE_BULK_FIELD_NUMBER = 33;
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
     * @return Whether the unsubscribeBulk field is set.
     */
    @java.lang.Override
    public boolean hasUnsubscribeBulk() {
      return payloadCase_ == 33;
    }
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
     * @return The unsubscribeBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand getUnsubscribeBulk() {
      if (payloadCase_ == 33) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommandOrBuilder getUnsubscribeBulkOrBuilder() {
      if (payloadCase_ == 33) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance();
    }

    public static final int SUBSCRIBE_ALARMS_FIELD_NUMBER = 34;
    /**
     * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
     * @return Whether the subscribeAlarms field is set.
     */
    @java.lang.Override
    public boolean hasSubscribeAlarms() {
      return payloadCase_ == 34;
    }
    /**
     * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
     * @return The subscribeAlarms.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand getSubscribeAlarms() {
      if (payloadCase_ == 34) {
         return (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommandOrBuilder getSubscribeAlarmsOrBuilder() {
      if (payloadCase_ == 34) {
         return (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance();
    }

    public static final int UNSUBSCRIBE_ALARMS_FIELD_NUMBER = 35;
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
     * @return Whether the unsubscribeAlarms field is set.
     */
    @java.lang.Override
    public boolean hasUnsubscribeAlarms() {
      return payloadCase_ == 35;
    }
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
     * @return The unsubscribeAlarms.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand getUnsubscribeAlarms() {
      if (payloadCase_ == 35) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommandOrBuilder getUnsubscribeAlarmsOrBuilder() {
      if (payloadCase_ == 35) {
         return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance();
    }

    public static final int ACKNOWLEDGE_ALARM_COMMAND_FIELD_NUMBER = 36;
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
     * @return Whether the acknowledgeAlarmCommand field is set.
     */
    @java.lang.Override
    public boolean hasAcknowledgeAlarmCommand() {
      return payloadCase_ == 36;
    }
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
     * @return The acknowledgeAlarmCommand.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand getAcknowledgeAlarmCommand() {
      if (payloadCase_ == 36) {
         return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommandOrBuilder getAcknowledgeAlarmCommandOrBuilder() {
      if (payloadCase_ == 36) {
         return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance();
    }

    public static final int QUERY_ACTIVE_ALARMS_COMMAND_FIELD_NUMBER = 37;
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
     * @return Whether the queryActiveAlarmsCommand field is set.
     */
    @java.lang.Override
    public boolean hasQueryActiveAlarmsCommand() {
      return payloadCase_ == 37;
    }
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
     * @return The queryActiveAlarmsCommand.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand getQueryActiveAlarmsCommand() {
      if (payloadCase_ == 37) {
         return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommandOrBuilder getQueryActiveAlarmsCommandOrBuilder() {
      if (payloadCase_ == 37) {
         return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance();
    }

    public static final int ACKNOWLEDGE_ALARM_BY_NAME_COMMAND_FIELD_NUMBER = 38;
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
     * @return Whether the acknowledgeAlarmByNameCommand field is set.
     */
    @java.lang.Override
    public boolean hasAcknowledgeAlarmByNameCommand() {
      return payloadCase_ == 38;
    }
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
     * @return The acknowledgeAlarmByNameCommand.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand getAcknowledgeAlarmByNameCommand() {
      if (payloadCase_ == 38) {
         return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommandOrBuilder getAcknowledgeAlarmByNameCommandOrBuilder() {
      if (payloadCase_ == 38) {
         return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance();
    }

    public static final int WRITE_BULK_FIELD_NUMBER = 39;
    /**
     * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
     * @return Whether the writeBulk field is set.
     */
    @java.lang.Override
    public boolean hasWriteBulk() {
      return payloadCase_ == 39;
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
     * @return The writeBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand getWriteBulk() {
      if (payloadCase_ == 39) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommandOrBuilder getWriteBulkOrBuilder() {
      if (payloadCase_ == 39) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance();
    }

    public static final int WRITE2_BULK_FIELD_NUMBER = 40;
    /**
     * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
     * @return Whether the write2Bulk field is set.
     */
    @java.lang.Override
    public boolean hasWrite2Bulk() {
      return payloadCase_ == 40;
    }
    /**
     * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
     * @return The write2Bulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand getWrite2Bulk() {
      if (payloadCase_ == 40) {
         return (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommandOrBuilder getWrite2BulkOrBuilder() {
      if (payloadCase_ == 40) {
         return (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance();
    }

    public static final int WRITE_SECURED_BULK_FIELD_NUMBER = 41;
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
     * @return Whether the writeSecuredBulk field is set.
     */
    @java.lang.Override
    public boolean hasWriteSecuredBulk() {
      return payloadCase_ == 41;
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
     * @return The writeSecuredBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand getWriteSecuredBulk() {
      if (payloadCase_ == 41) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommandOrBuilder getWriteSecuredBulkOrBuilder() {
      if (payloadCase_ == 41) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance();
    }

    public static final int WRITE_SECURED2_BULK_FIELD_NUMBER = 42;
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
     * @return Whether the writeSecured2Bulk field is set.
     */
    @java.lang.Override
    public boolean hasWriteSecured2Bulk() {
      return payloadCase_ == 42;
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
     * @return The writeSecured2Bulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand getWriteSecured2Bulk() {
      if (payloadCase_ == 42) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommandOrBuilder getWriteSecured2BulkOrBuilder() {
      if (payloadCase_ == 42) {
         return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance();
    }

    public static final int READ_BULK_FIELD_NUMBER = 43;
    /**
     * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
     * @return Whether the readBulk field is set.
     */
    @java.lang.Override
    public boolean hasReadBulk() {
      return payloadCase_ == 43;
    }
    /**
     * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
     * @return The readBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand getReadBulk() {
      if (payloadCase_ == 43) {
         return (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommandOrBuilder getReadBulkOrBuilder() {
      if (payloadCase_ == 43) {
         return (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance();
    }

    public static final int PING_FIELD_NUMBER = 100;
    /**
     * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
     * @return Whether the ping field is set.
     */
    @java.lang.Override
    public boolean hasPing() {
      return payloadCase_ == 100;
    }
    /**
     * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
     * @return The ping.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.PingCommand getPing() {
      if (payloadCase_ == 100) {
         return (mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.PingCommandOrBuilder getPingOrBuilder() {
      if (payloadCase_ == 100) {
         return (mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance();
    }

    public static final int GET_SESSION_STATE_FIELD_NUMBER = 101;
    /**
     * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
     * @return Whether the getSessionState field is set.
     */
    @java.lang.Override
    public boolean hasGetSessionState() {
      return payloadCase_ == 101;
    }
    /**
     * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
     * @return The getSessionState.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand getGetSessionState() {
      if (payloadCase_ == 101) {
         return (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommandOrBuilder getGetSessionStateOrBuilder() {
      if (payloadCase_ == 101) {
         return (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance();
    }

    public static final int GET_WORKER_INFO_FIELD_NUMBER = 102;
    /**
     * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
     * @return Whether the getWorkerInfo field is set.
     */
    @java.lang.Override
    public boolean hasGetWorkerInfo() {
      return payloadCase_ == 102;
    }
    /**
     * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
     * @return The getWorkerInfo.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand getGetWorkerInfo() {
      if (payloadCase_ == 102) {
         return (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommandOrBuilder getGetWorkerInfoOrBuilder() {
      if (payloadCase_ == 102) {
         return (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance();
    }

    public static final int DRAIN_EVENTS_FIELD_NUMBER = 103;
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
     * @return Whether the drainEvents field is set.
     */
    @java.lang.Override
    public boolean hasDrainEvents() {
      return payloadCase_ == 103;
    }
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
     * @return The drainEvents.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand getDrainEvents() {
      if (payloadCase_ == 103) {
         return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommandOrBuilder getDrainEventsOrBuilder() {
      if (payloadCase_ == 103) {
         return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance();
    }

    public static final int SHUTDOWN_WORKER_FIELD_NUMBER = 104;
    /**
     * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
     * @return Whether the shutdownWorker field is set.
     */
    @java.lang.Override
    public boolean hasShutdownWorker() {
      return payloadCase_ == 104;
    }
    /**
     * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
     * @return The shutdownWorker.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand getShutdownWorker() {
      if (payloadCase_ == 104) {
         return (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommandOrBuilder getShutdownWorkerOrBuilder() {
      if (payloadCase_ == 104) {
         return (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance();
    }

    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 (kind_ != mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.MX_COMMAND_KIND_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, kind_);
      }
      if (payloadCase_ == 10) {
        output.writeMessage(10, (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_);
      }
      if (payloadCase_ == 11) {
        output.writeMessage(11, (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_);
      }
      if (payloadCase_ == 12) {
        output.writeMessage(12, (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_);
      }
      if (payloadCase_ == 13) {
        output.writeMessage(13, (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_);
      }
      if (payloadCase_ == 14) {
        output.writeMessage(14, (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_);
      }
      if (payloadCase_ == 15) {
        output.writeMessage(15, (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_);
      }
      if (payloadCase_ == 16) {
        output.writeMessage(16, (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_);
      }
      if (payloadCase_ == 17) {
        output.writeMessage(17, (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_);
      }
      if (payloadCase_ == 18) {
        output.writeMessage(18, (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_);
      }
      if (payloadCase_ == 19) {
        output.writeMessage(19, (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_);
      }
      if (payloadCase_ == 20) {
        output.writeMessage(20, (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_);
      }
      if (payloadCase_ == 21) {
        output.writeMessage(21, (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_);
      }
      if (payloadCase_ == 22) {
        output.writeMessage(22, (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_);
      }
      if (payloadCase_ == 23) {
        output.writeMessage(23, (mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_);
      }
      if (payloadCase_ == 24) {
        output.writeMessage(24, (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_);
      }
      if (payloadCase_ == 25) {
        output.writeMessage(25, (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_);
      }
      if (payloadCase_ == 26) {
        output.writeMessage(26, (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_);
      }
      if (payloadCase_ == 27) {
        output.writeMessage(27, (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_);
      }
      if (payloadCase_ == 28) {
        output.writeMessage(28, (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_);
      }
      if (payloadCase_ == 29) {
        output.writeMessage(29, (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_);
      }
      if (payloadCase_ == 30) {
        output.writeMessage(30, (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_);
      }
      if (payloadCase_ == 31) {
        output.writeMessage(31, (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_);
      }
      if (payloadCase_ == 32) {
        output.writeMessage(32, (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_);
      }
      if (payloadCase_ == 33) {
        output.writeMessage(33, (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_);
      }
      if (payloadCase_ == 34) {
        output.writeMessage(34, (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_);
      }
      if (payloadCase_ == 35) {
        output.writeMessage(35, (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_);
      }
      if (payloadCase_ == 36) {
        output.writeMessage(36, (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_);
      }
      if (payloadCase_ == 37) {
        output.writeMessage(37, (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_);
      }
      if (payloadCase_ == 38) {
        output.writeMessage(38, (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_);
      }
      if (payloadCase_ == 39) {
        output.writeMessage(39, (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_);
      }
      if (payloadCase_ == 40) {
        output.writeMessage(40, (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_);
      }
      if (payloadCase_ == 41) {
        output.writeMessage(41, (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_);
      }
      if (payloadCase_ == 42) {
        output.writeMessage(42, (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_);
      }
      if (payloadCase_ == 43) {
        output.writeMessage(43, (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_);
      }
      if (payloadCase_ == 100) {
        output.writeMessage(100, (mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_);
      }
      if (payloadCase_ == 101) {
        output.writeMessage(101, (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_);
      }
      if (payloadCase_ == 102) {
        output.writeMessage(102, (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_);
      }
      if (payloadCase_ == 103) {
        output.writeMessage(103, (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_);
      }
      if (payloadCase_ == 104) {
        output.writeMessage(104, (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (kind_ != mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.MX_COMMAND_KIND_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, kind_);
      }
      if (payloadCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_);
      }
      if (payloadCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_);
      }
      if (payloadCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_);
      }
      if (payloadCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_);
      }
      if (payloadCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_);
      }
      if (payloadCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_);
      }
      if (payloadCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_);
      }
      if (payloadCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_);
      }
      if (payloadCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_);
      }
      if (payloadCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_);
      }
      if (payloadCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_);
      }
      if (payloadCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_);
      }
      if (payloadCase_ == 22) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_);
      }
      if (payloadCase_ == 23) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, (mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_);
      }
      if (payloadCase_ == 24) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_);
      }
      if (payloadCase_ == 25) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(25, (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_);
      }
      if (payloadCase_ == 26) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(26, (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_);
      }
      if (payloadCase_ == 27) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_);
      }
      if (payloadCase_ == 28) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_);
      }
      if (payloadCase_ == 29) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_);
      }
      if (payloadCase_ == 30) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(30, (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_);
      }
      if (payloadCase_ == 31) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_);
      }
      if (payloadCase_ == 32) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(32, (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_);
      }
      if (payloadCase_ == 33) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(33, (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_);
      }
      if (payloadCase_ == 34) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(34, (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_);
      }
      if (payloadCase_ == 35) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_);
      }
      if (payloadCase_ == 36) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(36, (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_);
      }
      if (payloadCase_ == 37) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(37, (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_);
      }
      if (payloadCase_ == 38) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(38, (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_);
      }
      if (payloadCase_ == 39) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(39, (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_);
      }
      if (payloadCase_ == 40) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(40, (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_);
      }
      if (payloadCase_ == 41) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(41, (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_);
      }
      if (payloadCase_ == 42) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(42, (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_);
      }
      if (payloadCase_ == 43) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(43, (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_);
      }
      if (payloadCase_ == 100) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(100, (mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_);
      }
      if (payloadCase_ == 101) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(101, (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_);
      }
      if (payloadCase_ == 102) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(102, (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_);
      }
      if (payloadCase_ == 103) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(103, (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_);
      }
      if (payloadCase_ == 104) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(104, (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxCommand other = (mxaccess_gateway.v1.MxaccessGateway.MxCommand) obj;

      if (kind_ != other.kind_) return false;
      if (!getPayloadCase().equals(other.getPayloadCase())) return false;
      switch (payloadCase_) {
        case 10:
          if (!getRegister()
              .equals(other.getRegister())) return false;
          break;
        case 11:
          if (!getUnregister()
              .equals(other.getUnregister())) return false;
          break;
        case 12:
          if (!getAddItem()
              .equals(other.getAddItem())) return false;
          break;
        case 13:
          if (!getAddItem2()
              .equals(other.getAddItem2())) return false;
          break;
        case 14:
          if (!getRemoveItem()
              .equals(other.getRemoveItem())) return false;
          break;
        case 15:
          if (!getAdvise()
              .equals(other.getAdvise())) return false;
          break;
        case 16:
          if (!getUnAdvise()
              .equals(other.getUnAdvise())) return false;
          break;
        case 17:
          if (!getAdviseSupervisory()
              .equals(other.getAdviseSupervisory())) return false;
          break;
        case 18:
          if (!getAddBufferedItem()
              .equals(other.getAddBufferedItem())) return false;
          break;
        case 19:
          if (!getSetBufferedUpdateInterval()
              .equals(other.getSetBufferedUpdateInterval())) return false;
          break;
        case 20:
          if (!getSuspend()
              .equals(other.getSuspend())) return false;
          break;
        case 21:
          if (!getActivate()
              .equals(other.getActivate())) return false;
          break;
        case 22:
          if (!getWrite()
              .equals(other.getWrite())) return false;
          break;
        case 23:
          if (!getWrite2()
              .equals(other.getWrite2())) return false;
          break;
        case 24:
          if (!getWriteSecured()
              .equals(other.getWriteSecured())) return false;
          break;
        case 25:
          if (!getWriteSecured2()
              .equals(other.getWriteSecured2())) return false;
          break;
        case 26:
          if (!getAuthenticateUser()
              .equals(other.getAuthenticateUser())) return false;
          break;
        case 27:
          if (!getArchestraUserToId()
              .equals(other.getArchestraUserToId())) return false;
          break;
        case 28:
          if (!getAddItemBulk()
              .equals(other.getAddItemBulk())) return false;
          break;
        case 29:
          if (!getAdviseItemBulk()
              .equals(other.getAdviseItemBulk())) return false;
          break;
        case 30:
          if (!getRemoveItemBulk()
              .equals(other.getRemoveItemBulk())) return false;
          break;
        case 31:
          if (!getUnAdviseItemBulk()
              .equals(other.getUnAdviseItemBulk())) return false;
          break;
        case 32:
          if (!getSubscribeBulk()
              .equals(other.getSubscribeBulk())) return false;
          break;
        case 33:
          if (!getUnsubscribeBulk()
              .equals(other.getUnsubscribeBulk())) return false;
          break;
        case 34:
          if (!getSubscribeAlarms()
              .equals(other.getSubscribeAlarms())) return false;
          break;
        case 35:
          if (!getUnsubscribeAlarms()
              .equals(other.getUnsubscribeAlarms())) return false;
          break;
        case 36:
          if (!getAcknowledgeAlarmCommand()
              .equals(other.getAcknowledgeAlarmCommand())) return false;
          break;
        case 37:
          if (!getQueryActiveAlarmsCommand()
              .equals(other.getQueryActiveAlarmsCommand())) return false;
          break;
        case 38:
          if (!getAcknowledgeAlarmByNameCommand()
              .equals(other.getAcknowledgeAlarmByNameCommand())) return false;
          break;
        case 39:
          if (!getWriteBulk()
              .equals(other.getWriteBulk())) return false;
          break;
        case 40:
          if (!getWrite2Bulk()
              .equals(other.getWrite2Bulk())) return false;
          break;
        case 41:
          if (!getWriteSecuredBulk()
              .equals(other.getWriteSecuredBulk())) return false;
          break;
        case 42:
          if (!getWriteSecured2Bulk()
              .equals(other.getWriteSecured2Bulk())) return false;
          break;
        case 43:
          if (!getReadBulk()
              .equals(other.getReadBulk())) return false;
          break;
        case 100:
          if (!getPing()
              .equals(other.getPing())) return false;
          break;
        case 101:
          if (!getGetSessionState()
              .equals(other.getGetSessionState())) return false;
          break;
        case 102:
          if (!getGetWorkerInfo()
              .equals(other.getGetWorkerInfo())) return false;
          break;
        case 103:
          if (!getDrainEvents()
              .equals(other.getDrainEvents())) return false;
          break;
        case 104:
          if (!getShutdownWorker()
              .equals(other.getShutdownWorker())) return false;
          break;
        case 0:
        default:
      }
      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();
      hash = (37 * hash) + KIND_FIELD_NUMBER;
      hash = (53 * hash) + kind_;
      switch (payloadCase_) {
        case 10:
          hash = (37 * hash) + REGISTER_FIELD_NUMBER;
          hash = (53 * hash) + getRegister().hashCode();
          break;
        case 11:
          hash = (37 * hash) + UNREGISTER_FIELD_NUMBER;
          hash = (53 * hash) + getUnregister().hashCode();
          break;
        case 12:
          hash = (37 * hash) + ADD_ITEM_FIELD_NUMBER;
          hash = (53 * hash) + getAddItem().hashCode();
          break;
        case 13:
          hash = (37 * hash) + ADD_ITEM2_FIELD_NUMBER;
          hash = (53 * hash) + getAddItem2().hashCode();
          break;
        case 14:
          hash = (37 * hash) + REMOVE_ITEM_FIELD_NUMBER;
          hash = (53 * hash) + getRemoveItem().hashCode();
          break;
        case 15:
          hash = (37 * hash) + ADVISE_FIELD_NUMBER;
          hash = (53 * hash) + getAdvise().hashCode();
          break;
        case 16:
          hash = (37 * hash) + UN_ADVISE_FIELD_NUMBER;
          hash = (53 * hash) + getUnAdvise().hashCode();
          break;
        case 17:
          hash = (37 * hash) + ADVISE_SUPERVISORY_FIELD_NUMBER;
          hash = (53 * hash) + getAdviseSupervisory().hashCode();
          break;
        case 18:
          hash = (37 * hash) + ADD_BUFFERED_ITEM_FIELD_NUMBER;
          hash = (53 * hash) + getAddBufferedItem().hashCode();
          break;
        case 19:
          hash = (37 * hash) + SET_BUFFERED_UPDATE_INTERVAL_FIELD_NUMBER;
          hash = (53 * hash) + getSetBufferedUpdateInterval().hashCode();
          break;
        case 20:
          hash = (37 * hash) + SUSPEND_FIELD_NUMBER;
          hash = (53 * hash) + getSuspend().hashCode();
          break;
        case 21:
          hash = (37 * hash) + ACTIVATE_FIELD_NUMBER;
          hash = (53 * hash) + getActivate().hashCode();
          break;
        case 22:
          hash = (37 * hash) + WRITE_FIELD_NUMBER;
          hash = (53 * hash) + getWrite().hashCode();
          break;
        case 23:
          hash = (37 * hash) + WRITE2_FIELD_NUMBER;
          hash = (53 * hash) + getWrite2().hashCode();
          break;
        case 24:
          hash = (37 * hash) + WRITE_SECURED_FIELD_NUMBER;
          hash = (53 * hash) + getWriteSecured().hashCode();
          break;
        case 25:
          hash = (37 * hash) + WRITE_SECURED2_FIELD_NUMBER;
          hash = (53 * hash) + getWriteSecured2().hashCode();
          break;
        case 26:
          hash = (37 * hash) + AUTHENTICATE_USER_FIELD_NUMBER;
          hash = (53 * hash) + getAuthenticateUser().hashCode();
          break;
        case 27:
          hash = (37 * hash) + ARCHESTRA_USER_TO_ID_FIELD_NUMBER;
          hash = (53 * hash) + getArchestraUserToId().hashCode();
          break;
        case 28:
          hash = (37 * hash) + ADD_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getAddItemBulk().hashCode();
          break;
        case 29:
          hash = (37 * hash) + ADVISE_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getAdviseItemBulk().hashCode();
          break;
        case 30:
          hash = (37 * hash) + REMOVE_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getRemoveItemBulk().hashCode();
          break;
        case 31:
          hash = (37 * hash) + UN_ADVISE_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getUnAdviseItemBulk().hashCode();
          break;
        case 32:
          hash = (37 * hash) + SUBSCRIBE_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getSubscribeBulk().hashCode();
          break;
        case 33:
          hash = (37 * hash) + UNSUBSCRIBE_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getUnsubscribeBulk().hashCode();
          break;
        case 34:
          hash = (37 * hash) + SUBSCRIBE_ALARMS_FIELD_NUMBER;
          hash = (53 * hash) + getSubscribeAlarms().hashCode();
          break;
        case 35:
          hash = (37 * hash) + UNSUBSCRIBE_ALARMS_FIELD_NUMBER;
          hash = (53 * hash) + getUnsubscribeAlarms().hashCode();
          break;
        case 36:
          hash = (37 * hash) + ACKNOWLEDGE_ALARM_COMMAND_FIELD_NUMBER;
          hash = (53 * hash) + getAcknowledgeAlarmCommand().hashCode();
          break;
        case 37:
          hash = (37 * hash) + QUERY_ACTIVE_ALARMS_COMMAND_FIELD_NUMBER;
          hash = (53 * hash) + getQueryActiveAlarmsCommand().hashCode();
          break;
        case 38:
          hash = (37 * hash) + ACKNOWLEDGE_ALARM_BY_NAME_COMMAND_FIELD_NUMBER;
          hash = (53 * hash) + getAcknowledgeAlarmByNameCommand().hashCode();
          break;
        case 39:
          hash = (37 * hash) + WRITE_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWriteBulk().hashCode();
          break;
        case 40:
          hash = (37 * hash) + WRITE2_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWrite2Bulk().hashCode();
          break;
        case 41:
          hash = (37 * hash) + WRITE_SECURED_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWriteSecuredBulk().hashCode();
          break;
        case 42:
          hash = (37 * hash) + WRITE_SECURED2_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWriteSecured2Bulk().hashCode();
          break;
        case 43:
          hash = (37 * hash) + READ_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getReadBulk().hashCode();
          break;
        case 100:
          hash = (37 * hash) + PING_FIELD_NUMBER;
          hash = (53 * hash) + getPing().hashCode();
          break;
        case 101:
          hash = (37 * hash) + GET_SESSION_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getGetSessionState().hashCode();
          break;
        case 102:
          hash = (37 * hash) + GET_WORKER_INFO_FIELD_NUMBER;
          hash = (53 * hash) + getGetWorkerInfo().hashCode();
          break;
        case 103:
          hash = (37 * hash) + DRAIN_EVENTS_FIELD_NUMBER;
          hash = (53 * hash) + getDrainEvents().hashCode();
          break;
        case 104:
          hash = (37 * hash) + SHUTDOWN_WORKER_FIELD_NUMBER;
          hash = (53 * hash) + getShutdownWorker().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand 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 mxaccess_gateway.v1.MxaccessGateway.MxCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand 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 mxaccess_gateway.v1.MxaccessGateway.MxCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand 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(mxaccess_gateway.v1.MxaccessGateway.MxCommand 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 mxaccess_gateway.v1.MxCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxCommand)
        mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxCommand.class, mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        kind_ = 0;
        if (registerBuilder_ != null) {
          registerBuilder_.clear();
        }
        if (unregisterBuilder_ != null) {
          unregisterBuilder_.clear();
        }
        if (addItemBuilder_ != null) {
          addItemBuilder_.clear();
        }
        if (addItem2Builder_ != null) {
          addItem2Builder_.clear();
        }
        if (removeItemBuilder_ != null) {
          removeItemBuilder_.clear();
        }
        if (adviseBuilder_ != null) {
          adviseBuilder_.clear();
        }
        if (unAdviseBuilder_ != null) {
          unAdviseBuilder_.clear();
        }
        if (adviseSupervisoryBuilder_ != null) {
          adviseSupervisoryBuilder_.clear();
        }
        if (addBufferedItemBuilder_ != null) {
          addBufferedItemBuilder_.clear();
        }
        if (setBufferedUpdateIntervalBuilder_ != null) {
          setBufferedUpdateIntervalBuilder_.clear();
        }
        if (suspendBuilder_ != null) {
          suspendBuilder_.clear();
        }
        if (activateBuilder_ != null) {
          activateBuilder_.clear();
        }
        if (writeBuilder_ != null) {
          writeBuilder_.clear();
        }
        if (write2Builder_ != null) {
          write2Builder_.clear();
        }
        if (writeSecuredBuilder_ != null) {
          writeSecuredBuilder_.clear();
        }
        if (writeSecured2Builder_ != null) {
          writeSecured2Builder_.clear();
        }
        if (authenticateUserBuilder_ != null) {
          authenticateUserBuilder_.clear();
        }
        if (archestraUserToIdBuilder_ != null) {
          archestraUserToIdBuilder_.clear();
        }
        if (addItemBulkBuilder_ != null) {
          addItemBulkBuilder_.clear();
        }
        if (adviseItemBulkBuilder_ != null) {
          adviseItemBulkBuilder_.clear();
        }
        if (removeItemBulkBuilder_ != null) {
          removeItemBulkBuilder_.clear();
        }
        if (unAdviseItemBulkBuilder_ != null) {
          unAdviseItemBulkBuilder_.clear();
        }
        if (subscribeBulkBuilder_ != null) {
          subscribeBulkBuilder_.clear();
        }
        if (unsubscribeBulkBuilder_ != null) {
          unsubscribeBulkBuilder_.clear();
        }
        if (subscribeAlarmsBuilder_ != null) {
          subscribeAlarmsBuilder_.clear();
        }
        if (unsubscribeAlarmsBuilder_ != null) {
          unsubscribeAlarmsBuilder_.clear();
        }
        if (acknowledgeAlarmCommandBuilder_ != null) {
          acknowledgeAlarmCommandBuilder_.clear();
        }
        if (queryActiveAlarmsCommandBuilder_ != null) {
          queryActiveAlarmsCommandBuilder_.clear();
        }
        if (acknowledgeAlarmByNameCommandBuilder_ != null) {
          acknowledgeAlarmByNameCommandBuilder_.clear();
        }
        if (writeBulkBuilder_ != null) {
          writeBulkBuilder_.clear();
        }
        if (write2BulkBuilder_ != null) {
          write2BulkBuilder_.clear();
        }
        if (writeSecuredBulkBuilder_ != null) {
          writeSecuredBulkBuilder_.clear();
        }
        if (writeSecured2BulkBuilder_ != null) {
          writeSecured2BulkBuilder_.clear();
        }
        if (readBulkBuilder_ != null) {
          readBulkBuilder_.clear();
        }
        if (pingBuilder_ != null) {
          pingBuilder_.clear();
        }
        if (getSessionStateBuilder_ != null) {
          getSessionStateBuilder_.clear();
        }
        if (getWorkerInfoBuilder_ != null) {
          getWorkerInfoBuilder_.clear();
        }
        if (drainEventsBuilder_ != null) {
          drainEventsBuilder_.clear();
        }
        if (shutdownWorkerBuilder_ != null) {
          shutdownWorkerBuilder_.clear();
        }
        payloadCase_ = 0;
        payload_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommand result = new mxaccess_gateway.v1.MxaccessGateway.MxCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        if (bitField1_ != 0) { buildPartial1(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.kind_ = kind_;
        }
      }

      private void buildPartial1(mxaccess_gateway.v1.MxaccessGateway.MxCommand result) {
        int from_bitField1_ = bitField1_;
      }

      private void buildPartialOneofs(mxaccess_gateway.v1.MxaccessGateway.MxCommand result) {
        result.payloadCase_ = payloadCase_;
        result.payload_ = this.payload_;
        if (payloadCase_ == 10 &&
            registerBuilder_ != null) {
          result.payload_ = registerBuilder_.build();
        }
        if (payloadCase_ == 11 &&
            unregisterBuilder_ != null) {
          result.payload_ = unregisterBuilder_.build();
        }
        if (payloadCase_ == 12 &&
            addItemBuilder_ != null) {
          result.payload_ = addItemBuilder_.build();
        }
        if (payloadCase_ == 13 &&
            addItem2Builder_ != null) {
          result.payload_ = addItem2Builder_.build();
        }
        if (payloadCase_ == 14 &&
            removeItemBuilder_ != null) {
          result.payload_ = removeItemBuilder_.build();
        }
        if (payloadCase_ == 15 &&
            adviseBuilder_ != null) {
          result.payload_ = adviseBuilder_.build();
        }
        if (payloadCase_ == 16 &&
            unAdviseBuilder_ != null) {
          result.payload_ = unAdviseBuilder_.build();
        }
        if (payloadCase_ == 17 &&
            adviseSupervisoryBuilder_ != null) {
          result.payload_ = adviseSupervisoryBuilder_.build();
        }
        if (payloadCase_ == 18 &&
            addBufferedItemBuilder_ != null) {
          result.payload_ = addBufferedItemBuilder_.build();
        }
        if (payloadCase_ == 19 &&
            setBufferedUpdateIntervalBuilder_ != null) {
          result.payload_ = setBufferedUpdateIntervalBuilder_.build();
        }
        if (payloadCase_ == 20 &&
            suspendBuilder_ != null) {
          result.payload_ = suspendBuilder_.build();
        }
        if (payloadCase_ == 21 &&
            activateBuilder_ != null) {
          result.payload_ = activateBuilder_.build();
        }
        if (payloadCase_ == 22 &&
            writeBuilder_ != null) {
          result.payload_ = writeBuilder_.build();
        }
        if (payloadCase_ == 23 &&
            write2Builder_ != null) {
          result.payload_ = write2Builder_.build();
        }
        if (payloadCase_ == 24 &&
            writeSecuredBuilder_ != null) {
          result.payload_ = writeSecuredBuilder_.build();
        }
        if (payloadCase_ == 25 &&
            writeSecured2Builder_ != null) {
          result.payload_ = writeSecured2Builder_.build();
        }
        if (payloadCase_ == 26 &&
            authenticateUserBuilder_ != null) {
          result.payload_ = authenticateUserBuilder_.build();
        }
        if (payloadCase_ == 27 &&
            archestraUserToIdBuilder_ != null) {
          result.payload_ = archestraUserToIdBuilder_.build();
        }
        if (payloadCase_ == 28 &&
            addItemBulkBuilder_ != null) {
          result.payload_ = addItemBulkBuilder_.build();
        }
        if (payloadCase_ == 29 &&
            adviseItemBulkBuilder_ != null) {
          result.payload_ = adviseItemBulkBuilder_.build();
        }
        if (payloadCase_ == 30 &&
            removeItemBulkBuilder_ != null) {
          result.payload_ = removeItemBulkBuilder_.build();
        }
        if (payloadCase_ == 31 &&
            unAdviseItemBulkBuilder_ != null) {
          result.payload_ = unAdviseItemBulkBuilder_.build();
        }
        if (payloadCase_ == 32 &&
            subscribeBulkBuilder_ != null) {
          result.payload_ = subscribeBulkBuilder_.build();
        }
        if (payloadCase_ == 33 &&
            unsubscribeBulkBuilder_ != null) {
          result.payload_ = unsubscribeBulkBuilder_.build();
        }
        if (payloadCase_ == 34 &&
            subscribeAlarmsBuilder_ != null) {
          result.payload_ = subscribeAlarmsBuilder_.build();
        }
        if (payloadCase_ == 35 &&
            unsubscribeAlarmsBuilder_ != null) {
          result.payload_ = unsubscribeAlarmsBuilder_.build();
        }
        if (payloadCase_ == 36 &&
            acknowledgeAlarmCommandBuilder_ != null) {
          result.payload_ = acknowledgeAlarmCommandBuilder_.build();
        }
        if (payloadCase_ == 37 &&
            queryActiveAlarmsCommandBuilder_ != null) {
          result.payload_ = queryActiveAlarmsCommandBuilder_.build();
        }
        if (payloadCase_ == 38 &&
            acknowledgeAlarmByNameCommandBuilder_ != null) {
          result.payload_ = acknowledgeAlarmByNameCommandBuilder_.build();
        }
        if (payloadCase_ == 39 &&
            writeBulkBuilder_ != null) {
          result.payload_ = writeBulkBuilder_.build();
        }
        if (payloadCase_ == 40 &&
            write2BulkBuilder_ != null) {
          result.payload_ = write2BulkBuilder_.build();
        }
        if (payloadCase_ == 41 &&
            writeSecuredBulkBuilder_ != null) {
          result.payload_ = writeSecuredBulkBuilder_.build();
        }
        if (payloadCase_ == 42 &&
            writeSecured2BulkBuilder_ != null) {
          result.payload_ = writeSecured2BulkBuilder_.build();
        }
        if (payloadCase_ == 43 &&
            readBulkBuilder_ != null) {
          result.payload_ = readBulkBuilder_.build();
        }
        if (payloadCase_ == 100 &&
            pingBuilder_ != null) {
          result.payload_ = pingBuilder_.build();
        }
        if (payloadCase_ == 101 &&
            getSessionStateBuilder_ != null) {
          result.payload_ = getSessionStateBuilder_.build();
        }
        if (payloadCase_ == 102 &&
            getWorkerInfoBuilder_ != null) {
          result.payload_ = getWorkerInfoBuilder_.build();
        }
        if (payloadCase_ == 103 &&
            drainEventsBuilder_ != null) {
          result.payload_ = drainEventsBuilder_.build();
        }
        if (payloadCase_ == 104 &&
            shutdownWorkerBuilder_ != null) {
          result.payload_ = shutdownWorkerBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance()) return this;
        if (other.kind_ != 0) {
          setKindValue(other.getKindValue());
        }
        switch (other.getPayloadCase()) {
          case REGISTER: {
            mergeRegister(other.getRegister());
            break;
          }
          case UNREGISTER: {
            mergeUnregister(other.getUnregister());
            break;
          }
          case ADD_ITEM: {
            mergeAddItem(other.getAddItem());
            break;
          }
          case ADD_ITEM2: {
            mergeAddItem2(other.getAddItem2());
            break;
          }
          case REMOVE_ITEM: {
            mergeRemoveItem(other.getRemoveItem());
            break;
          }
          case ADVISE: {
            mergeAdvise(other.getAdvise());
            break;
          }
          case UN_ADVISE: {
            mergeUnAdvise(other.getUnAdvise());
            break;
          }
          case ADVISE_SUPERVISORY: {
            mergeAdviseSupervisory(other.getAdviseSupervisory());
            break;
          }
          case ADD_BUFFERED_ITEM: {
            mergeAddBufferedItem(other.getAddBufferedItem());
            break;
          }
          case SET_BUFFERED_UPDATE_INTERVAL: {
            mergeSetBufferedUpdateInterval(other.getSetBufferedUpdateInterval());
            break;
          }
          case SUSPEND: {
            mergeSuspend(other.getSuspend());
            break;
          }
          case ACTIVATE: {
            mergeActivate(other.getActivate());
            break;
          }
          case WRITE: {
            mergeWrite(other.getWrite());
            break;
          }
          case WRITE2: {
            mergeWrite2(other.getWrite2());
            break;
          }
          case WRITE_SECURED: {
            mergeWriteSecured(other.getWriteSecured());
            break;
          }
          case WRITE_SECURED2: {
            mergeWriteSecured2(other.getWriteSecured2());
            break;
          }
          case AUTHENTICATE_USER: {
            mergeAuthenticateUser(other.getAuthenticateUser());
            break;
          }
          case ARCHESTRA_USER_TO_ID: {
            mergeArchestraUserToId(other.getArchestraUserToId());
            break;
          }
          case ADD_ITEM_BULK: {
            mergeAddItemBulk(other.getAddItemBulk());
            break;
          }
          case ADVISE_ITEM_BULK: {
            mergeAdviseItemBulk(other.getAdviseItemBulk());
            break;
          }
          case REMOVE_ITEM_BULK: {
            mergeRemoveItemBulk(other.getRemoveItemBulk());
            break;
          }
          case UN_ADVISE_ITEM_BULK: {
            mergeUnAdviseItemBulk(other.getUnAdviseItemBulk());
            break;
          }
          case SUBSCRIBE_BULK: {
            mergeSubscribeBulk(other.getSubscribeBulk());
            break;
          }
          case UNSUBSCRIBE_BULK: {
            mergeUnsubscribeBulk(other.getUnsubscribeBulk());
            break;
          }
          case SUBSCRIBE_ALARMS: {
            mergeSubscribeAlarms(other.getSubscribeAlarms());
            break;
          }
          case UNSUBSCRIBE_ALARMS: {
            mergeUnsubscribeAlarms(other.getUnsubscribeAlarms());
            break;
          }
          case ACKNOWLEDGE_ALARM_COMMAND: {
            mergeAcknowledgeAlarmCommand(other.getAcknowledgeAlarmCommand());
            break;
          }
          case QUERY_ACTIVE_ALARMS_COMMAND: {
            mergeQueryActiveAlarmsCommand(other.getQueryActiveAlarmsCommand());
            break;
          }
          case ACKNOWLEDGE_ALARM_BY_NAME_COMMAND: {
            mergeAcknowledgeAlarmByNameCommand(other.getAcknowledgeAlarmByNameCommand());
            break;
          }
          case WRITE_BULK: {
            mergeWriteBulk(other.getWriteBulk());
            break;
          }
          case WRITE2_BULK: {
            mergeWrite2Bulk(other.getWrite2Bulk());
            break;
          }
          case WRITE_SECURED_BULK: {
            mergeWriteSecuredBulk(other.getWriteSecuredBulk());
            break;
          }
          case WRITE_SECURED2_BULK: {
            mergeWriteSecured2Bulk(other.getWriteSecured2Bulk());
            break;
          }
          case READ_BULK: {
            mergeReadBulk(other.getReadBulk());
            break;
          }
          case PING: {
            mergePing(other.getPing());
            break;
          }
          case GET_SESSION_STATE: {
            mergeGetSessionState(other.getGetSessionState());
            break;
          }
          case GET_WORKER_INFO: {
            mergeGetWorkerInfo(other.getGetWorkerInfo());
            break;
          }
          case DRAIN_EVENTS: {
            mergeDrainEvents(other.getDrainEvents());
            break;
          }
          case SHUTDOWN_WORKER: {
            mergeShutdownWorker(other.getShutdownWorker());
            break;
          }
          case PAYLOAD_NOT_SET: {
            break;
          }
        }
        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 8: {
                kind_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 82: {
                input.readMessage(
                    internalGetRegisterFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 10;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    internalGetUnregisterFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 11;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    internalGetAddItemFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 12;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    internalGetAddItem2FieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 13;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    internalGetRemoveItemFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 14;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    internalGetAdviseFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 15;
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    internalGetUnAdviseFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 16;
                break;
              } // case 130
              case 138: {
                input.readMessage(
                    internalGetAdviseSupervisoryFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 17;
                break;
              } // case 138
              case 146: {
                input.readMessage(
                    internalGetAddBufferedItemFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 18;
                break;
              } // case 146
              case 154: {
                input.readMessage(
                    internalGetSetBufferedUpdateIntervalFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 19;
                break;
              } // case 154
              case 162: {
                input.readMessage(
                    internalGetSuspendFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 20;
                break;
              } // case 162
              case 170: {
                input.readMessage(
                    internalGetActivateFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 21;
                break;
              } // case 170
              case 178: {
                input.readMessage(
                    internalGetWriteFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 22;
                break;
              } // case 178
              case 186: {
                input.readMessage(
                    internalGetWrite2FieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 23;
                break;
              } // case 186
              case 194: {
                input.readMessage(
                    internalGetWriteSecuredFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 24;
                break;
              } // case 194
              case 202: {
                input.readMessage(
                    internalGetWriteSecured2FieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 25;
                break;
              } // case 202
              case 210: {
                input.readMessage(
                    internalGetAuthenticateUserFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 26;
                break;
              } // case 210
              case 218: {
                input.readMessage(
                    internalGetArchestraUserToIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 27;
                break;
              } // case 218
              case 226: {
                input.readMessage(
                    internalGetAddItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 28;
                break;
              } // case 226
              case 234: {
                input.readMessage(
                    internalGetAdviseItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 29;
                break;
              } // case 234
              case 242: {
                input.readMessage(
                    internalGetRemoveItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 30;
                break;
              } // case 242
              case 250: {
                input.readMessage(
                    internalGetUnAdviseItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 31;
                break;
              } // case 250
              case 258: {
                input.readMessage(
                    internalGetSubscribeBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 32;
                break;
              } // case 258
              case 266: {
                input.readMessage(
                    internalGetUnsubscribeBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 33;
                break;
              } // case 266
              case 274: {
                input.readMessage(
                    internalGetSubscribeAlarmsFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 34;
                break;
              } // case 274
              case 282: {
                input.readMessage(
                    internalGetUnsubscribeAlarmsFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 35;
                break;
              } // case 282
              case 290: {
                input.readMessage(
                    internalGetAcknowledgeAlarmCommandFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 36;
                break;
              } // case 290
              case 298: {
                input.readMessage(
                    internalGetQueryActiveAlarmsCommandFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 37;
                break;
              } // case 298
              case 306: {
                input.readMessage(
                    internalGetAcknowledgeAlarmByNameCommandFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 38;
                break;
              } // case 306
              case 314: {
                input.readMessage(
                    internalGetWriteBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 39;
                break;
              } // case 314
              case 322: {
                input.readMessage(
                    internalGetWrite2BulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 40;
                break;
              } // case 322
              case 330: {
                input.readMessage(
                    internalGetWriteSecuredBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 41;
                break;
              } // case 330
              case 338: {
                input.readMessage(
                    internalGetWriteSecured2BulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 42;
                break;
              } // case 338
              case 346: {
                input.readMessage(
                    internalGetReadBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 43;
                break;
              } // case 346
              case 802: {
                input.readMessage(
                    internalGetPingFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 100;
                break;
              } // case 802
              case 810: {
                input.readMessage(
                    internalGetGetSessionStateFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 101;
                break;
              } // case 810
              case 818: {
                input.readMessage(
                    internalGetGetWorkerInfoFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 102;
                break;
              } // case 818
              case 826: {
                input.readMessage(
                    internalGetDrainEventsFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 103;
                break;
              } // case 826
              case 834: {
                input.readMessage(
                    internalGetShutdownWorkerFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 104;
                break;
              } // case 834
              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 payloadCase_ = 0;
      private java.lang.Object payload_;
      public PayloadCase
          getPayloadCase() {
        return PayloadCase.forNumber(
            payloadCase_);
      }

      public Builder clearPayload() {
        payloadCase_ = 0;
        payload_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;
      private int bitField1_;

      private int kind_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
       * @return The enum numeric value on the wire for kind.
       */
      @java.lang.Override public int getKindValue() {
        return kind_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
       * @param value The enum numeric value on the wire for kind to set.
       * @return This builder for chaining.
       */
      public Builder setKindValue(int value) {
        kind_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
       * @return The kind.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandKind getKind() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommandKind result = mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.forNumber(kind_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
       * @param value The kind to set.
       * @return This builder for chaining.
       */
      public Builder setKind(mxaccess_gateway.v1.MxaccessGateway.MxCommandKind value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        kind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000001);
        kind_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RegisterCommand, mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RegisterCommandOrBuilder> registerBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       * @return Whether the register field is set.
       */
      @java.lang.Override
      public boolean hasRegister() {
        return payloadCase_ == 10;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       * @return The register.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterCommand getRegister() {
        if (registerBuilder_ == null) {
          if (payloadCase_ == 10) {
            return (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 10) {
            return registerBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       */
      public Builder setRegister(mxaccess_gateway.v1.MxaccessGateway.RegisterCommand value) {
        if (registerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          registerBuilder_.setMessage(value);
        }
        payloadCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       */
      public Builder setRegister(
          mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.Builder builderForValue) {
        if (registerBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          registerBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       */
      public Builder mergeRegister(mxaccess_gateway.v1.MxaccessGateway.RegisterCommand value) {
        if (registerBuilder_ == null) {
          if (payloadCase_ == 10 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 10) {
            registerBuilder_.mergeFrom(value);
          } else {
            registerBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       */
      public Builder clearRegister() {
        if (registerBuilder_ == null) {
          if (payloadCase_ == 10) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 10) {
            payloadCase_ = 0;
            payload_ = null;
          }
          registerBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.Builder getRegisterBuilder() {
        return internalGetRegisterFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterCommandOrBuilder getRegisterOrBuilder() {
        if ((payloadCase_ == 10) && (registerBuilder_ != null)) {
          return registerBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 10) {
            return (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterCommand register = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RegisterCommand, mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RegisterCommandOrBuilder> 
          internalGetRegisterFieldBuilder() {
        if (registerBuilder_ == null) {
          if (!(payloadCase_ == 10)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance();
          }
          registerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.RegisterCommand, mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RegisterCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 10;
        onChanged();
        return registerBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommandOrBuilder> unregisterBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       * @return Whether the unregister field is set.
       */
      @java.lang.Override
      public boolean hasUnregister() {
        return payloadCase_ == 11;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       * @return The unregister.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand getUnregister() {
        if (unregisterBuilder_ == null) {
          if (payloadCase_ == 11) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 11) {
            return unregisterBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       */
      public Builder setUnregister(mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand value) {
        if (unregisterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unregisterBuilder_.setMessage(value);
        }
        payloadCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       */
      public Builder setUnregister(
          mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.Builder builderForValue) {
        if (unregisterBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unregisterBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       */
      public Builder mergeUnregister(mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand value) {
        if (unregisterBuilder_ == null) {
          if (payloadCase_ == 11 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 11) {
            unregisterBuilder_.mergeFrom(value);
          } else {
            unregisterBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       */
      public Builder clearUnregister() {
        if (unregisterBuilder_ == null) {
          if (payloadCase_ == 11) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 11) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unregisterBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.Builder getUnregisterBuilder() {
        return internalGetUnregisterFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommandOrBuilder getUnregisterOrBuilder() {
        if ((payloadCase_ == 11) && (unregisterBuilder_ != null)) {
          return unregisterBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 11) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnregisterCommand unregister = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommandOrBuilder> 
          internalGetUnregisterFieldBuilder() {
        if (unregisterBuilder_ == null) {
          if (!(payloadCase_ == 11)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance();
          }
          unregisterBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 11;
        onChanged();
        return unregisterBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItemCommand, mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemCommandOrBuilder> addItemBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       * @return Whether the addItem field is set.
       */
      @java.lang.Override
      public boolean hasAddItem() {
        return payloadCase_ == 12;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       * @return The addItem.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemCommand getAddItem() {
        if (addItemBuilder_ == null) {
          if (payloadCase_ == 12) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 12) {
            return addItemBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       */
      public Builder setAddItem(mxaccess_gateway.v1.MxaccessGateway.AddItemCommand value) {
        if (addItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addItemBuilder_.setMessage(value);
        }
        payloadCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       */
      public Builder setAddItem(
          mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.Builder builderForValue) {
        if (addItemBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addItemBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       */
      public Builder mergeAddItem(mxaccess_gateway.v1.MxaccessGateway.AddItemCommand value) {
        if (addItemBuilder_ == null) {
          if (payloadCase_ == 12 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 12) {
            addItemBuilder_.mergeFrom(value);
          } else {
            addItemBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       */
      public Builder clearAddItem() {
        if (addItemBuilder_ == null) {
          if (payloadCase_ == 12) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 12) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addItemBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.Builder getAddItemBuilder() {
        return internalGetAddItemFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemCommandOrBuilder getAddItemOrBuilder() {
        if ((payloadCase_ == 12) && (addItemBuilder_ != null)) {
          return addItemBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 12) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemCommand add_item = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItemCommand, mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemCommandOrBuilder> 
          internalGetAddItemFieldBuilder() {
        if (addItemBuilder_ == null) {
          if (!(payloadCase_ == 12)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance();
          }
          addItemBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AddItemCommand, mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 12;
        onChanged();
        return addItemBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItem2Command, mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItem2CommandOrBuilder> addItem2Builder_;
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       * @return Whether the addItem2 field is set.
       */
      @java.lang.Override
      public boolean hasAddItem2() {
        return payloadCase_ == 13;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       * @return The addItem2.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Command getAddItem2() {
        if (addItem2Builder_ == null) {
          if (payloadCase_ == 13) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance();
        } else {
          if (payloadCase_ == 13) {
            return addItem2Builder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       */
      public Builder setAddItem2(mxaccess_gateway.v1.MxaccessGateway.AddItem2Command value) {
        if (addItem2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addItem2Builder_.setMessage(value);
        }
        payloadCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       */
      public Builder setAddItem2(
          mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.Builder builderForValue) {
        if (addItem2Builder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addItem2Builder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       */
      public Builder mergeAddItem2(mxaccess_gateway.v1.MxaccessGateway.AddItem2Command value) {
        if (addItem2Builder_ == null) {
          if (payloadCase_ == 13 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 13) {
            addItem2Builder_.mergeFrom(value);
          } else {
            addItem2Builder_.setMessage(value);
          }
        }
        payloadCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       */
      public Builder clearAddItem2() {
        if (addItem2Builder_ == null) {
          if (payloadCase_ == 13) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 13) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addItem2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.Builder getAddItem2Builder() {
        return internalGetAddItem2FieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2CommandOrBuilder getAddItem2OrBuilder() {
        if ((payloadCase_ == 13) && (addItem2Builder_ != null)) {
          return addItem2Builder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 13) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Command add_item2 = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItem2Command, mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItem2CommandOrBuilder> 
          internalGetAddItem2FieldBuilder() {
        if (addItem2Builder_ == null) {
          if (!(payloadCase_ == 13)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance();
          }
          addItem2Builder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AddItem2Command, mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItem2CommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 13;
        onChanged();
        return addItem2Builder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommandOrBuilder> removeItemBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       * @return Whether the removeItem field is set.
       */
      @java.lang.Override
      public boolean hasRemoveItem() {
        return payloadCase_ == 14;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       * @return The removeItem.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand getRemoveItem() {
        if (removeItemBuilder_ == null) {
          if (payloadCase_ == 14) {
            return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 14) {
            return removeItemBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       */
      public Builder setRemoveItem(mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand value) {
        if (removeItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          removeItemBuilder_.setMessage(value);
        }
        payloadCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       */
      public Builder setRemoveItem(
          mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.Builder builderForValue) {
        if (removeItemBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          removeItemBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       */
      public Builder mergeRemoveItem(mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand value) {
        if (removeItemBuilder_ == null) {
          if (payloadCase_ == 14 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 14) {
            removeItemBuilder_.mergeFrom(value);
          } else {
            removeItemBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       */
      public Builder clearRemoveItem() {
        if (removeItemBuilder_ == null) {
          if (payloadCase_ == 14) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 14) {
            payloadCase_ = 0;
            payload_ = null;
          }
          removeItemBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.Builder getRemoveItemBuilder() {
        return internalGetRemoveItemFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommandOrBuilder getRemoveItemOrBuilder() {
        if ((payloadCase_ == 14) && (removeItemBuilder_ != null)) {
          return removeItemBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 14) {
            return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemCommand remove_item = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommandOrBuilder> 
          internalGetRemoveItemFieldBuilder() {
        if (removeItemBuilder_ == null) {
          if (!(payloadCase_ == 14)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance();
          }
          removeItemBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 14;
        onChanged();
        return removeItemBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AdviseCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseCommandOrBuilder> adviseBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       * @return Whether the advise field is set.
       */
      @java.lang.Override
      public boolean hasAdvise() {
        return payloadCase_ == 15;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       * @return The advise.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseCommand getAdvise() {
        if (adviseBuilder_ == null) {
          if (payloadCase_ == 15) {
            return (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 15) {
            return adviseBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       */
      public Builder setAdvise(mxaccess_gateway.v1.MxaccessGateway.AdviseCommand value) {
        if (adviseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          adviseBuilder_.setMessage(value);
        }
        payloadCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       */
      public Builder setAdvise(
          mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.Builder builderForValue) {
        if (adviseBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          adviseBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       */
      public Builder mergeAdvise(mxaccess_gateway.v1.MxaccessGateway.AdviseCommand value) {
        if (adviseBuilder_ == null) {
          if (payloadCase_ == 15 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 15) {
            adviseBuilder_.mergeFrom(value);
          } else {
            adviseBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       */
      public Builder clearAdvise() {
        if (adviseBuilder_ == null) {
          if (payloadCase_ == 15) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 15) {
            payloadCase_ = 0;
            payload_ = null;
          }
          adviseBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.Builder getAdviseBuilder() {
        return internalGetAdviseFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseCommandOrBuilder getAdviseOrBuilder() {
        if ((payloadCase_ == 15) && (adviseBuilder_ != null)) {
          return adviseBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 15) {
            return (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseCommand advise = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AdviseCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseCommandOrBuilder> 
          internalGetAdviseFieldBuilder() {
        if (adviseBuilder_ == null) {
          if (!(payloadCase_ == 15)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance();
          }
          adviseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AdviseCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 15;
        onChanged();
        return adviseBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommandOrBuilder> unAdviseBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       * @return Whether the unAdvise field is set.
       */
      @java.lang.Override
      public boolean hasUnAdvise() {
        return payloadCase_ == 16;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       * @return The unAdvise.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand getUnAdvise() {
        if (unAdviseBuilder_ == null) {
          if (payloadCase_ == 16) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 16) {
            return unAdviseBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       */
      public Builder setUnAdvise(mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand value) {
        if (unAdviseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unAdviseBuilder_.setMessage(value);
        }
        payloadCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       */
      public Builder setUnAdvise(
          mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.Builder builderForValue) {
        if (unAdviseBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unAdviseBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       */
      public Builder mergeUnAdvise(mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand value) {
        if (unAdviseBuilder_ == null) {
          if (payloadCase_ == 16 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 16) {
            unAdviseBuilder_.mergeFrom(value);
          } else {
            unAdviseBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       */
      public Builder clearUnAdvise() {
        if (unAdviseBuilder_ == null) {
          if (payloadCase_ == 16) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 16) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unAdviseBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.Builder getUnAdviseBuilder() {
        return internalGetUnAdviseFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommandOrBuilder getUnAdviseOrBuilder() {
        if ((payloadCase_ == 16) && (unAdviseBuilder_ != null)) {
          return unAdviseBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 16) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseCommand un_advise = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommandOrBuilder> 
          internalGetUnAdviseFieldBuilder() {
        if (unAdviseBuilder_ == null) {
          if (!(payloadCase_ == 16)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance();
          }
          unAdviseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 16;
        onChanged();
        return unAdviseBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommandOrBuilder> adviseSupervisoryBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       * @return Whether the adviseSupervisory field is set.
       */
      @java.lang.Override
      public boolean hasAdviseSupervisory() {
        return payloadCase_ == 17;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       * @return The adviseSupervisory.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand getAdviseSupervisory() {
        if (adviseSupervisoryBuilder_ == null) {
          if (payloadCase_ == 17) {
            return (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 17) {
            return adviseSupervisoryBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       */
      public Builder setAdviseSupervisory(mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand value) {
        if (adviseSupervisoryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          adviseSupervisoryBuilder_.setMessage(value);
        }
        payloadCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       */
      public Builder setAdviseSupervisory(
          mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.Builder builderForValue) {
        if (adviseSupervisoryBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          adviseSupervisoryBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       */
      public Builder mergeAdviseSupervisory(mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand value) {
        if (adviseSupervisoryBuilder_ == null) {
          if (payloadCase_ == 17 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 17) {
            adviseSupervisoryBuilder_.mergeFrom(value);
          } else {
            adviseSupervisoryBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       */
      public Builder clearAdviseSupervisory() {
        if (adviseSupervisoryBuilder_ == null) {
          if (payloadCase_ == 17) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 17) {
            payloadCase_ = 0;
            payload_ = null;
          }
          adviseSupervisoryBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.Builder getAdviseSupervisoryBuilder() {
        return internalGetAdviseSupervisoryFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommandOrBuilder getAdviseSupervisoryOrBuilder() {
        if ((payloadCase_ == 17) && (adviseSupervisoryBuilder_ != null)) {
          return adviseSupervisoryBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 17) {
            return (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseSupervisoryCommand advise_supervisory = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommandOrBuilder> 
          internalGetAdviseSupervisoryFieldBuilder() {
        if (adviseSupervisoryBuilder_ == null) {
          if (!(payloadCase_ == 17)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance();
          }
          adviseSupervisoryBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 17;
        onChanged();
        return adviseSupervisoryBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommandOrBuilder> addBufferedItemBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       * @return Whether the addBufferedItem field is set.
       */
      @java.lang.Override
      public boolean hasAddBufferedItem() {
        return payloadCase_ == 18;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       * @return The addBufferedItem.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand getAddBufferedItem() {
        if (addBufferedItemBuilder_ == null) {
          if (payloadCase_ == 18) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 18) {
            return addBufferedItemBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       */
      public Builder setAddBufferedItem(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand value) {
        if (addBufferedItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addBufferedItemBuilder_.setMessage(value);
        }
        payloadCase_ = 18;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       */
      public Builder setAddBufferedItem(
          mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.Builder builderForValue) {
        if (addBufferedItemBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addBufferedItemBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 18;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       */
      public Builder mergeAddBufferedItem(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand value) {
        if (addBufferedItemBuilder_ == null) {
          if (payloadCase_ == 18 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 18) {
            addBufferedItemBuilder_.mergeFrom(value);
          } else {
            addBufferedItemBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 18;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       */
      public Builder clearAddBufferedItem() {
        if (addBufferedItemBuilder_ == null) {
          if (payloadCase_ == 18) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 18) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addBufferedItemBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.Builder getAddBufferedItemBuilder() {
        return internalGetAddBufferedItemFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommandOrBuilder getAddBufferedItemOrBuilder() {
        if ((payloadCase_ == 18) && (addBufferedItemBuilder_ != null)) {
          return addBufferedItemBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 18) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemCommand add_buffered_item = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommandOrBuilder> 
          internalGetAddBufferedItemFieldBuilder() {
        if (addBufferedItemBuilder_ == null) {
          if (!(payloadCase_ == 18)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance();
          }
          addBufferedItemBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 18;
        onChanged();
        return addBufferedItemBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommandOrBuilder> setBufferedUpdateIntervalBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       * @return Whether the setBufferedUpdateInterval field is set.
       */
      @java.lang.Override
      public boolean hasSetBufferedUpdateInterval() {
        return payloadCase_ == 19;
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       * @return The setBufferedUpdateInterval.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand getSetBufferedUpdateInterval() {
        if (setBufferedUpdateIntervalBuilder_ == null) {
          if (payloadCase_ == 19) {
            return (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 19) {
            return setBufferedUpdateIntervalBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       */
      public Builder setSetBufferedUpdateInterval(mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand value) {
        if (setBufferedUpdateIntervalBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          setBufferedUpdateIntervalBuilder_.setMessage(value);
        }
        payloadCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       */
      public Builder setSetBufferedUpdateInterval(
          mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.Builder builderForValue) {
        if (setBufferedUpdateIntervalBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          setBufferedUpdateIntervalBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       */
      public Builder mergeSetBufferedUpdateInterval(mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand value) {
        if (setBufferedUpdateIntervalBuilder_ == null) {
          if (payloadCase_ == 19 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 19) {
            setBufferedUpdateIntervalBuilder_.mergeFrom(value);
          } else {
            setBufferedUpdateIntervalBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       */
      public Builder clearSetBufferedUpdateInterval() {
        if (setBufferedUpdateIntervalBuilder_ == null) {
          if (payloadCase_ == 19) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 19) {
            payloadCase_ = 0;
            payload_ = null;
          }
          setBufferedUpdateIntervalBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.Builder getSetBufferedUpdateIntervalBuilder() {
        return internalGetSetBufferedUpdateIntervalFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommandOrBuilder getSetBufferedUpdateIntervalOrBuilder() {
        if ((payloadCase_ == 19) && (setBufferedUpdateIntervalBuilder_ != null)) {
          return setBufferedUpdateIntervalBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 19) {
            return (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand set_buffered_update_interval = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommandOrBuilder> 
          internalGetSetBufferedUpdateIntervalFieldBuilder() {
        if (setBufferedUpdateIntervalBuilder_ == null) {
          if (!(payloadCase_ == 19)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance();
          }
          setBufferedUpdateIntervalBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 19;
        onChanged();
        return setBufferedUpdateIntervalBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SuspendCommand, mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SuspendCommandOrBuilder> suspendBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       * @return Whether the suspend field is set.
       */
      @java.lang.Override
      public boolean hasSuspend() {
        return payloadCase_ == 20;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       * @return The suspend.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendCommand getSuspend() {
        if (suspendBuilder_ == null) {
          if (payloadCase_ == 20) {
            return (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 20) {
            return suspendBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       */
      public Builder setSuspend(mxaccess_gateway.v1.MxaccessGateway.SuspendCommand value) {
        if (suspendBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          suspendBuilder_.setMessage(value);
        }
        payloadCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       */
      public Builder setSuspend(
          mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.Builder builderForValue) {
        if (suspendBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          suspendBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       */
      public Builder mergeSuspend(mxaccess_gateway.v1.MxaccessGateway.SuspendCommand value) {
        if (suspendBuilder_ == null) {
          if (payloadCase_ == 20 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 20) {
            suspendBuilder_.mergeFrom(value);
          } else {
            suspendBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       */
      public Builder clearSuspend() {
        if (suspendBuilder_ == null) {
          if (payloadCase_ == 20) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 20) {
            payloadCase_ = 0;
            payload_ = null;
          }
          suspendBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.Builder getSuspendBuilder() {
        return internalGetSuspendFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendCommandOrBuilder getSuspendOrBuilder() {
        if ((payloadCase_ == 20) && (suspendBuilder_ != null)) {
          return suspendBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 20) {
            return (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendCommand suspend = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SuspendCommand, mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SuspendCommandOrBuilder> 
          internalGetSuspendFieldBuilder() {
        if (suspendBuilder_ == null) {
          if (!(payloadCase_ == 20)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance();
          }
          suspendBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.SuspendCommand, mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SuspendCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 20;
        onChanged();
        return suspendBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActivateCommand, mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ActivateCommandOrBuilder> activateBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       * @return Whether the activate field is set.
       */
      @java.lang.Override
      public boolean hasActivate() {
        return payloadCase_ == 21;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       * @return The activate.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateCommand getActivate() {
        if (activateBuilder_ == null) {
          if (payloadCase_ == 21) {
            return (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 21) {
            return activateBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       */
      public Builder setActivate(mxaccess_gateway.v1.MxaccessGateway.ActivateCommand value) {
        if (activateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          activateBuilder_.setMessage(value);
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       */
      public Builder setActivate(
          mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.Builder builderForValue) {
        if (activateBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          activateBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       */
      public Builder mergeActivate(mxaccess_gateway.v1.MxaccessGateway.ActivateCommand value) {
        if (activateBuilder_ == null) {
          if (payloadCase_ == 21 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 21) {
            activateBuilder_.mergeFrom(value);
          } else {
            activateBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       */
      public Builder clearActivate() {
        if (activateBuilder_ == null) {
          if (payloadCase_ == 21) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 21) {
            payloadCase_ = 0;
            payload_ = null;
          }
          activateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.Builder getActivateBuilder() {
        return internalGetActivateFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateCommandOrBuilder getActivateOrBuilder() {
        if ((payloadCase_ == 21) && (activateBuilder_ != null)) {
          return activateBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 21) {
            return (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateCommand activate = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActivateCommand, mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ActivateCommandOrBuilder> 
          internalGetActivateFieldBuilder() {
        if (activateBuilder_ == null) {
          if (!(payloadCase_ == 21)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance();
          }
          activateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ActivateCommand, mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ActivateCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 21;
        onChanged();
        return activateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteCommand, mxaccess_gateway.v1.MxaccessGateway.WriteCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteCommandOrBuilder> writeBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       * @return Whether the write field is set.
       */
      @java.lang.Override
      public boolean hasWrite() {
        return payloadCase_ == 22;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       * @return The write.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteCommand getWrite() {
        if (writeBuilder_ == null) {
          if (payloadCase_ == 22) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 22) {
            return writeBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       */
      public Builder setWrite(mxaccess_gateway.v1.MxaccessGateway.WriteCommand value) {
        if (writeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeBuilder_.setMessage(value);
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       */
      public Builder setWrite(
          mxaccess_gateway.v1.MxaccessGateway.WriteCommand.Builder builderForValue) {
        if (writeBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       */
      public Builder mergeWrite(mxaccess_gateway.v1.MxaccessGateway.WriteCommand value) {
        if (writeBuilder_ == null) {
          if (payloadCase_ == 22 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 22) {
            writeBuilder_.mergeFrom(value);
          } else {
            writeBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       */
      public Builder clearWrite() {
        if (writeBuilder_ == null) {
          if (payloadCase_ == 22) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 22) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteCommand.Builder getWriteBuilder() {
        return internalGetWriteFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteCommandOrBuilder getWriteOrBuilder() {
        if ((payloadCase_ == 22) && (writeBuilder_ != null)) {
          return writeBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 22) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteCommand write = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteCommand, mxaccess_gateway.v1.MxaccessGateway.WriteCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteCommandOrBuilder> 
          internalGetWriteFieldBuilder() {
        if (writeBuilder_ == null) {
          if (!(payloadCase_ == 22)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance();
          }
          writeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteCommand, mxaccess_gateway.v1.MxaccessGateway.WriteCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 22;
        onChanged();
        return writeBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Write2Command, mxaccess_gateway.v1.MxaccessGateway.Write2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2CommandOrBuilder> write2Builder_;
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       * @return Whether the write2 field is set.
       */
      @java.lang.Override
      public boolean hasWrite2() {
        return payloadCase_ == 23;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       * @return The write2.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2Command getWrite2() {
        if (write2Builder_ == null) {
          if (payloadCase_ == 23) {
            return (mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance();
        } else {
          if (payloadCase_ == 23) {
            return write2Builder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       */
      public Builder setWrite2(mxaccess_gateway.v1.MxaccessGateway.Write2Command value) {
        if (write2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          write2Builder_.setMessage(value);
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       */
      public Builder setWrite2(
          mxaccess_gateway.v1.MxaccessGateway.Write2Command.Builder builderForValue) {
        if (write2Builder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          write2Builder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       */
      public Builder mergeWrite2(mxaccess_gateway.v1.MxaccessGateway.Write2Command value) {
        if (write2Builder_ == null) {
          if (payloadCase_ == 23 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.Write2Command.newBuilder((mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 23) {
            write2Builder_.mergeFrom(value);
          } else {
            write2Builder_.setMessage(value);
          }
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       */
      public Builder clearWrite2() {
        if (write2Builder_ == null) {
          if (payloadCase_ == 23) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 23) {
            payloadCase_ = 0;
            payload_ = null;
          }
          write2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Write2Command.Builder getWrite2Builder() {
        return internalGetWrite2FieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2CommandOrBuilder getWrite2OrBuilder() {
        if ((payloadCase_ == 23) && (write2Builder_ != null)) {
          return write2Builder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 23) {
            return (mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2Command write2 = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Write2Command, mxaccess_gateway.v1.MxaccessGateway.Write2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2CommandOrBuilder> 
          internalGetWrite2FieldBuilder() {
        if (write2Builder_ == null) {
          if (!(payloadCase_ == 23)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance();
          }
          write2Builder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.Write2Command, mxaccess_gateway.v1.MxaccessGateway.Write2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2CommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.Write2Command) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 23;
        onChanged();
        return write2Builder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommandOrBuilder> writeSecuredBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       * @return Whether the writeSecured field is set.
       */
      @java.lang.Override
      public boolean hasWriteSecured() {
        return payloadCase_ == 24;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       * @return The writeSecured.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand getWriteSecured() {
        if (writeSecuredBuilder_ == null) {
          if (payloadCase_ == 24) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 24) {
            return writeSecuredBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       */
      public Builder setWriteSecured(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand value) {
        if (writeSecuredBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeSecuredBuilder_.setMessage(value);
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       */
      public Builder setWriteSecured(
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.Builder builderForValue) {
        if (writeSecuredBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeSecuredBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       */
      public Builder mergeWriteSecured(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand value) {
        if (writeSecuredBuilder_ == null) {
          if (payloadCase_ == 24 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 24) {
            writeSecuredBuilder_.mergeFrom(value);
          } else {
            writeSecuredBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       */
      public Builder clearWriteSecured() {
        if (writeSecuredBuilder_ == null) {
          if (payloadCase_ == 24) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 24) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeSecuredBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.Builder getWriteSecuredBuilder() {
        return internalGetWriteSecuredFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommandOrBuilder getWriteSecuredOrBuilder() {
        if ((payloadCase_ == 24) && (writeSecuredBuilder_ != null)) {
          return writeSecuredBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 24) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredCommand write_secured = 24;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommandOrBuilder> 
          internalGetWriteSecuredFieldBuilder() {
        if (writeSecuredBuilder_ == null) {
          if (!(payloadCase_ == 24)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance();
          }
          writeSecuredBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 24;
        onChanged();
        return writeSecuredBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2CommandOrBuilder> writeSecured2Builder_;
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       * @return Whether the writeSecured2 field is set.
       */
      @java.lang.Override
      public boolean hasWriteSecured2() {
        return payloadCase_ == 25;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       * @return The writeSecured2.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command getWriteSecured2() {
        if (writeSecured2Builder_ == null) {
          if (payloadCase_ == 25) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance();
        } else {
          if (payloadCase_ == 25) {
            return writeSecured2Builder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       */
      public Builder setWriteSecured2(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command value) {
        if (writeSecured2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeSecured2Builder_.setMessage(value);
        }
        payloadCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       */
      public Builder setWriteSecured2(
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.Builder builderForValue) {
        if (writeSecured2Builder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeSecured2Builder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       */
      public Builder mergeWriteSecured2(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command value) {
        if (writeSecured2Builder_ == null) {
          if (payloadCase_ == 25 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.newBuilder((mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 25) {
            writeSecured2Builder_.mergeFrom(value);
          } else {
            writeSecured2Builder_.setMessage(value);
          }
        }
        payloadCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       */
      public Builder clearWriteSecured2() {
        if (writeSecured2Builder_ == null) {
          if (payloadCase_ == 25) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 25) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeSecured2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.Builder getWriteSecured2Builder() {
        return internalGetWriteSecured2FieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2CommandOrBuilder getWriteSecured2OrBuilder() {
        if ((payloadCase_ == 25) && (writeSecured2Builder_ != null)) {
          return writeSecured2Builder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 25) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2Command write_secured2 = 25;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2CommandOrBuilder> 
          internalGetWriteSecured2FieldBuilder() {
        if (writeSecured2Builder_ == null) {
          if (!(payloadCase_ == 25)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance();
          }
          writeSecured2Builder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2CommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 25;
        onChanged();
        return writeSecured2Builder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommandOrBuilder> authenticateUserBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       * @return Whether the authenticateUser field is set.
       */
      @java.lang.Override
      public boolean hasAuthenticateUser() {
        return payloadCase_ == 26;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       * @return The authenticateUser.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand getAuthenticateUser() {
        if (authenticateUserBuilder_ == null) {
          if (payloadCase_ == 26) {
            return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 26) {
            return authenticateUserBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       */
      public Builder setAuthenticateUser(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand value) {
        if (authenticateUserBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          authenticateUserBuilder_.setMessage(value);
        }
        payloadCase_ = 26;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       */
      public Builder setAuthenticateUser(
          mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.Builder builderForValue) {
        if (authenticateUserBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          authenticateUserBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 26;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       */
      public Builder mergeAuthenticateUser(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand value) {
        if (authenticateUserBuilder_ == null) {
          if (payloadCase_ == 26 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 26) {
            authenticateUserBuilder_.mergeFrom(value);
          } else {
            authenticateUserBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 26;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       */
      public Builder clearAuthenticateUser() {
        if (authenticateUserBuilder_ == null) {
          if (payloadCase_ == 26) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 26) {
            payloadCase_ = 0;
            payload_ = null;
          }
          authenticateUserBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.Builder getAuthenticateUserBuilder() {
        return internalGetAuthenticateUserFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommandOrBuilder getAuthenticateUserOrBuilder() {
        if ((payloadCase_ == 26) && (authenticateUserBuilder_ != null)) {
          return authenticateUserBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 26) {
            return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserCommand authenticate_user = 26;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommandOrBuilder> 
          internalGetAuthenticateUserFieldBuilder() {
        if (authenticateUserBuilder_ == null) {
          if (!(payloadCase_ == 26)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance();
          }
          authenticateUserBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 26;
        onChanged();
        return authenticateUserBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommandOrBuilder> archestraUserToIdBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       * @return Whether the archestraUserToId field is set.
       */
      @java.lang.Override
      public boolean hasArchestraUserToId() {
        return payloadCase_ == 27;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       * @return The archestraUserToId.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand getArchestraUserToId() {
        if (archestraUserToIdBuilder_ == null) {
          if (payloadCase_ == 27) {
            return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 27) {
            return archestraUserToIdBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       */
      public Builder setArchestraUserToId(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand value) {
        if (archestraUserToIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          archestraUserToIdBuilder_.setMessage(value);
        }
        payloadCase_ = 27;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       */
      public Builder setArchestraUserToId(
          mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.Builder builderForValue) {
        if (archestraUserToIdBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          archestraUserToIdBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 27;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       */
      public Builder mergeArchestraUserToId(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand value) {
        if (archestraUserToIdBuilder_ == null) {
          if (payloadCase_ == 27 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 27) {
            archestraUserToIdBuilder_.mergeFrom(value);
          } else {
            archestraUserToIdBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 27;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       */
      public Builder clearArchestraUserToId() {
        if (archestraUserToIdBuilder_ == null) {
          if (payloadCase_ == 27) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 27) {
            payloadCase_ = 0;
            payload_ = null;
          }
          archestraUserToIdBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.Builder getArchestraUserToIdBuilder() {
        return internalGetArchestraUserToIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommandOrBuilder getArchestraUserToIdOrBuilder() {
        if ((payloadCase_ == 27) && (archestraUserToIdBuilder_ != null)) {
          return archestraUserToIdBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 27) {
            return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdCommand archestra_user_to_id = 27;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommandOrBuilder> 
          internalGetArchestraUserToIdFieldBuilder() {
        if (archestraUserToIdBuilder_ == null) {
          if (!(payloadCase_ == 27)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance();
          }
          archestraUserToIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 27;
        onChanged();
        return archestraUserToIdBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommandOrBuilder> addItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       * @return Whether the addItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasAddItemBulk() {
        return payloadCase_ == 28;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       * @return The addItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand getAddItemBulk() {
        if (addItemBulkBuilder_ == null) {
          if (payloadCase_ == 28) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 28) {
            return addItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       */
      public Builder setAddItemBulk(mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand value) {
        if (addItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 28;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       */
      public Builder setAddItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.Builder builderForValue) {
        if (addItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 28;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       */
      public Builder mergeAddItemBulk(mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand value) {
        if (addItemBulkBuilder_ == null) {
          if (payloadCase_ == 28 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 28) {
            addItemBulkBuilder_.mergeFrom(value);
          } else {
            addItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 28;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       */
      public Builder clearAddItemBulk() {
        if (addItemBulkBuilder_ == null) {
          if (payloadCase_ == 28) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 28) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.Builder getAddItemBulkBuilder() {
        return internalGetAddItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommandOrBuilder getAddItemBulkOrBuilder() {
        if ((payloadCase_ == 28) && (addItemBulkBuilder_ != null)) {
          return addItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 28) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemBulkCommand add_item_bulk = 28;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommandOrBuilder> 
          internalGetAddItemBulkFieldBuilder() {
        if (addItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 28)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance();
          }
          addItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 28;
        onChanged();
        return addItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommandOrBuilder> adviseItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       * @return Whether the adviseItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasAdviseItemBulk() {
        return payloadCase_ == 29;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       * @return The adviseItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand getAdviseItemBulk() {
        if (adviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 29) {
            return (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 29) {
            return adviseItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       */
      public Builder setAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand value) {
        if (adviseItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          adviseItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 29;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       */
      public Builder setAdviseItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.Builder builderForValue) {
        if (adviseItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          adviseItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 29;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       */
      public Builder mergeAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand value) {
        if (adviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 29 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 29) {
            adviseItemBulkBuilder_.mergeFrom(value);
          } else {
            adviseItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 29;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       */
      public Builder clearAdviseItemBulk() {
        if (adviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 29) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 29) {
            payloadCase_ = 0;
            payload_ = null;
          }
          adviseItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.Builder getAdviseItemBulkBuilder() {
        return internalGetAdviseItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommandOrBuilder getAdviseItemBulkOrBuilder() {
        if ((payloadCase_ == 29) && (adviseItemBulkBuilder_ != null)) {
          return adviseItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 29) {
            return (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AdviseItemBulkCommand advise_item_bulk = 29;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommandOrBuilder> 
          internalGetAdviseItemBulkFieldBuilder() {
        if (adviseItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 29)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance();
          }
          adviseItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 29;
        onChanged();
        return adviseItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommandOrBuilder> removeItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       * @return Whether the removeItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasRemoveItemBulk() {
        return payloadCase_ == 30;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       * @return The removeItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand getRemoveItemBulk() {
        if (removeItemBulkBuilder_ == null) {
          if (payloadCase_ == 30) {
            return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 30) {
            return removeItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       */
      public Builder setRemoveItemBulk(mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand value) {
        if (removeItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          removeItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 30;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       */
      public Builder setRemoveItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.Builder builderForValue) {
        if (removeItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          removeItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 30;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       */
      public Builder mergeRemoveItemBulk(mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand value) {
        if (removeItemBulkBuilder_ == null) {
          if (payloadCase_ == 30 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 30) {
            removeItemBulkBuilder_.mergeFrom(value);
          } else {
            removeItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 30;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       */
      public Builder clearRemoveItemBulk() {
        if (removeItemBulkBuilder_ == null) {
          if (payloadCase_ == 30) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 30) {
            payloadCase_ = 0;
            payload_ = null;
          }
          removeItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.Builder getRemoveItemBulkBuilder() {
        return internalGetRemoveItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommandOrBuilder getRemoveItemBulkOrBuilder() {
        if ((payloadCase_ == 30) && (removeItemBulkBuilder_ != null)) {
          return removeItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 30) {
            return (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RemoveItemBulkCommand remove_item_bulk = 30;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommandOrBuilder> 
          internalGetRemoveItemBulkFieldBuilder() {
        if (removeItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 30)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance();
          }
          removeItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 30;
        onChanged();
        return removeItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommandOrBuilder> unAdviseItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       * @return Whether the unAdviseItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasUnAdviseItemBulk() {
        return payloadCase_ == 31;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       * @return The unAdviseItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand getUnAdviseItemBulk() {
        if (unAdviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 31) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 31) {
            return unAdviseItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       */
      public Builder setUnAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand value) {
        if (unAdviseItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unAdviseItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 31;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       */
      public Builder setUnAdviseItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.Builder builderForValue) {
        if (unAdviseItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unAdviseItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 31;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       */
      public Builder mergeUnAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand value) {
        if (unAdviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 31 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 31) {
            unAdviseItemBulkBuilder_.mergeFrom(value);
          } else {
            unAdviseItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 31;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       */
      public Builder clearUnAdviseItemBulk() {
        if (unAdviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 31) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 31) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unAdviseItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.Builder getUnAdviseItemBulkBuilder() {
        return internalGetUnAdviseItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommandOrBuilder getUnAdviseItemBulkOrBuilder() {
        if ((payloadCase_ == 31) && (unAdviseItemBulkBuilder_ != null)) {
          return unAdviseItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 31) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnAdviseItemBulkCommand un_advise_item_bulk = 31;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommandOrBuilder> 
          internalGetUnAdviseItemBulkFieldBuilder() {
        if (unAdviseItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 31)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance();
          }
          unAdviseItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 31;
        onChanged();
        return unAdviseItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommandOrBuilder> subscribeBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       * @return Whether the subscribeBulk field is set.
       */
      @java.lang.Override
      public boolean hasSubscribeBulk() {
        return payloadCase_ == 32;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       * @return The subscribeBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand getSubscribeBulk() {
        if (subscribeBulkBuilder_ == null) {
          if (payloadCase_ == 32) {
            return (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 32) {
            return subscribeBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       */
      public Builder setSubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand value) {
        if (subscribeBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          subscribeBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 32;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       */
      public Builder setSubscribeBulk(
          mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.Builder builderForValue) {
        if (subscribeBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          subscribeBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 32;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       */
      public Builder mergeSubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand value) {
        if (subscribeBulkBuilder_ == null) {
          if (payloadCase_ == 32 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 32) {
            subscribeBulkBuilder_.mergeFrom(value);
          } else {
            subscribeBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 32;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       */
      public Builder clearSubscribeBulk() {
        if (subscribeBulkBuilder_ == null) {
          if (payloadCase_ == 32) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 32) {
            payloadCase_ = 0;
            payload_ = null;
          }
          subscribeBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.Builder getSubscribeBulkBuilder() {
        return internalGetSubscribeBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommandOrBuilder getSubscribeBulkOrBuilder() {
        if ((payloadCase_ == 32) && (subscribeBulkBuilder_ != null)) {
          return subscribeBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 32) {
            return (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeBulkCommand subscribe_bulk = 32;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommandOrBuilder> 
          internalGetSubscribeBulkFieldBuilder() {
        if (subscribeBulkBuilder_ == null) {
          if (!(payloadCase_ == 32)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance();
          }
          subscribeBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 32;
        onChanged();
        return subscribeBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommandOrBuilder> unsubscribeBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       * @return Whether the unsubscribeBulk field is set.
       */
      @java.lang.Override
      public boolean hasUnsubscribeBulk() {
        return payloadCase_ == 33;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       * @return The unsubscribeBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand getUnsubscribeBulk() {
        if (unsubscribeBulkBuilder_ == null) {
          if (payloadCase_ == 33) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 33) {
            return unsubscribeBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       */
      public Builder setUnsubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand value) {
        if (unsubscribeBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unsubscribeBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 33;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       */
      public Builder setUnsubscribeBulk(
          mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.Builder builderForValue) {
        if (unsubscribeBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unsubscribeBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 33;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       */
      public Builder mergeUnsubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand value) {
        if (unsubscribeBulkBuilder_ == null) {
          if (payloadCase_ == 33 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 33) {
            unsubscribeBulkBuilder_.mergeFrom(value);
          } else {
            unsubscribeBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 33;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       */
      public Builder clearUnsubscribeBulk() {
        if (unsubscribeBulkBuilder_ == null) {
          if (payloadCase_ == 33) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 33) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unsubscribeBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.Builder getUnsubscribeBulkBuilder() {
        return internalGetUnsubscribeBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommandOrBuilder getUnsubscribeBulkOrBuilder() {
        if ((payloadCase_ == 33) && (unsubscribeBulkBuilder_ != null)) {
          return unsubscribeBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 33) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeBulkCommand unsubscribe_bulk = 33;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommandOrBuilder> 
          internalGetUnsubscribeBulkFieldBuilder() {
        if (unsubscribeBulkBuilder_ == null) {
          if (!(payloadCase_ == 33)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance();
          }
          unsubscribeBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 33;
        onChanged();
        return unsubscribeBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommandOrBuilder> subscribeAlarmsBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       * @return Whether the subscribeAlarms field is set.
       */
      @java.lang.Override
      public boolean hasSubscribeAlarms() {
        return payloadCase_ == 34;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       * @return The subscribeAlarms.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand getSubscribeAlarms() {
        if (subscribeAlarmsBuilder_ == null) {
          if (payloadCase_ == 34) {
            return (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 34) {
            return subscribeAlarmsBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       */
      public Builder setSubscribeAlarms(mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand value) {
        if (subscribeAlarmsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          subscribeAlarmsBuilder_.setMessage(value);
        }
        payloadCase_ = 34;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       */
      public Builder setSubscribeAlarms(
          mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.Builder builderForValue) {
        if (subscribeAlarmsBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          subscribeAlarmsBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 34;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       */
      public Builder mergeSubscribeAlarms(mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand value) {
        if (subscribeAlarmsBuilder_ == null) {
          if (payloadCase_ == 34 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 34) {
            subscribeAlarmsBuilder_.mergeFrom(value);
          } else {
            subscribeAlarmsBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 34;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       */
      public Builder clearSubscribeAlarms() {
        if (subscribeAlarmsBuilder_ == null) {
          if (payloadCase_ == 34) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 34) {
            payloadCase_ = 0;
            payload_ = null;
          }
          subscribeAlarmsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.Builder getSubscribeAlarmsBuilder() {
        return internalGetSubscribeAlarmsFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommandOrBuilder getSubscribeAlarmsOrBuilder() {
        if ((payloadCase_ == 34) && (subscribeAlarmsBuilder_ != null)) {
          return subscribeAlarmsBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 34) {
            return (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SubscribeAlarmsCommand subscribe_alarms = 34;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommandOrBuilder> 
          internalGetSubscribeAlarmsFieldBuilder() {
        if (subscribeAlarmsBuilder_ == null) {
          if (!(payloadCase_ == 34)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance();
          }
          subscribeAlarmsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 34;
        onChanged();
        return subscribeAlarmsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommandOrBuilder> unsubscribeAlarmsBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       * @return Whether the unsubscribeAlarms field is set.
       */
      @java.lang.Override
      public boolean hasUnsubscribeAlarms() {
        return payloadCase_ == 35;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       * @return The unsubscribeAlarms.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand getUnsubscribeAlarms() {
        if (unsubscribeAlarmsBuilder_ == null) {
          if (payloadCase_ == 35) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 35) {
            return unsubscribeAlarmsBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       */
      public Builder setUnsubscribeAlarms(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand value) {
        if (unsubscribeAlarmsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unsubscribeAlarmsBuilder_.setMessage(value);
        }
        payloadCase_ = 35;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       */
      public Builder setUnsubscribeAlarms(
          mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.Builder builderForValue) {
        if (unsubscribeAlarmsBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unsubscribeAlarmsBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 35;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       */
      public Builder mergeUnsubscribeAlarms(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand value) {
        if (unsubscribeAlarmsBuilder_ == null) {
          if (payloadCase_ == 35 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 35) {
            unsubscribeAlarmsBuilder_.mergeFrom(value);
          } else {
            unsubscribeAlarmsBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 35;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       */
      public Builder clearUnsubscribeAlarms() {
        if (unsubscribeAlarmsBuilder_ == null) {
          if (payloadCase_ == 35) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 35) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unsubscribeAlarmsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.Builder getUnsubscribeAlarmsBuilder() {
        return internalGetUnsubscribeAlarmsFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommandOrBuilder getUnsubscribeAlarmsOrBuilder() {
        if ((payloadCase_ == 35) && (unsubscribeAlarmsBuilder_ != null)) {
          return unsubscribeAlarmsBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 35) {
            return (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.UnsubscribeAlarmsCommand unsubscribe_alarms = 35;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommandOrBuilder> 
          internalGetUnsubscribeAlarmsFieldBuilder() {
        if (unsubscribeAlarmsBuilder_ == null) {
          if (!(payloadCase_ == 35)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance();
          }
          unsubscribeAlarmsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 35;
        onChanged();
        return unsubscribeAlarmsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommandOrBuilder> acknowledgeAlarmCommandBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       * @return Whether the acknowledgeAlarmCommand field is set.
       */
      @java.lang.Override
      public boolean hasAcknowledgeAlarmCommand() {
        return payloadCase_ == 36;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       * @return The acknowledgeAlarmCommand.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand getAcknowledgeAlarmCommand() {
        if (acknowledgeAlarmCommandBuilder_ == null) {
          if (payloadCase_ == 36) {
            return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 36) {
            return acknowledgeAlarmCommandBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       */
      public Builder setAcknowledgeAlarmCommand(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand value) {
        if (acknowledgeAlarmCommandBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          acknowledgeAlarmCommandBuilder_.setMessage(value);
        }
        payloadCase_ = 36;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       */
      public Builder setAcknowledgeAlarmCommand(
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.Builder builderForValue) {
        if (acknowledgeAlarmCommandBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          acknowledgeAlarmCommandBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 36;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       */
      public Builder mergeAcknowledgeAlarmCommand(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand value) {
        if (acknowledgeAlarmCommandBuilder_ == null) {
          if (payloadCase_ == 36 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 36) {
            acknowledgeAlarmCommandBuilder_.mergeFrom(value);
          } else {
            acknowledgeAlarmCommandBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 36;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       */
      public Builder clearAcknowledgeAlarmCommand() {
        if (acknowledgeAlarmCommandBuilder_ == null) {
          if (payloadCase_ == 36) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 36) {
            payloadCase_ = 0;
            payload_ = null;
          }
          acknowledgeAlarmCommandBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.Builder getAcknowledgeAlarmCommandBuilder() {
        return internalGetAcknowledgeAlarmCommandFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommandOrBuilder getAcknowledgeAlarmCommandOrBuilder() {
        if ((payloadCase_ == 36) && (acknowledgeAlarmCommandBuilder_ != null)) {
          return acknowledgeAlarmCommandBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 36) {
            return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmCommand acknowledge_alarm_command = 36;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommandOrBuilder> 
          internalGetAcknowledgeAlarmCommandFieldBuilder() {
        if (acknowledgeAlarmCommandBuilder_ == null) {
          if (!(payloadCase_ == 36)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance();
          }
          acknowledgeAlarmCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 36;
        onChanged();
        return acknowledgeAlarmCommandBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommandOrBuilder> queryActiveAlarmsCommandBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       * @return Whether the queryActiveAlarmsCommand field is set.
       */
      @java.lang.Override
      public boolean hasQueryActiveAlarmsCommand() {
        return payloadCase_ == 37;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       * @return The queryActiveAlarmsCommand.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand getQueryActiveAlarmsCommand() {
        if (queryActiveAlarmsCommandBuilder_ == null) {
          if (payloadCase_ == 37) {
            return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 37) {
            return queryActiveAlarmsCommandBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       */
      public Builder setQueryActiveAlarmsCommand(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand value) {
        if (queryActiveAlarmsCommandBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          queryActiveAlarmsCommandBuilder_.setMessage(value);
        }
        payloadCase_ = 37;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       */
      public Builder setQueryActiveAlarmsCommand(
          mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.Builder builderForValue) {
        if (queryActiveAlarmsCommandBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          queryActiveAlarmsCommandBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 37;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       */
      public Builder mergeQueryActiveAlarmsCommand(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand value) {
        if (queryActiveAlarmsCommandBuilder_ == null) {
          if (payloadCase_ == 37 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 37) {
            queryActiveAlarmsCommandBuilder_.mergeFrom(value);
          } else {
            queryActiveAlarmsCommandBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 37;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       */
      public Builder clearQueryActiveAlarmsCommand() {
        if (queryActiveAlarmsCommandBuilder_ == null) {
          if (payloadCase_ == 37) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 37) {
            payloadCase_ = 0;
            payload_ = null;
          }
          queryActiveAlarmsCommandBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.Builder getQueryActiveAlarmsCommandBuilder() {
        return internalGetQueryActiveAlarmsCommandFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommandOrBuilder getQueryActiveAlarmsCommandOrBuilder() {
        if ((payloadCase_ == 37) && (queryActiveAlarmsCommandBuilder_ != null)) {
          return queryActiveAlarmsCommandBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 37) {
            return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsCommand query_active_alarms_command = 37;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommandOrBuilder> 
          internalGetQueryActiveAlarmsCommandFieldBuilder() {
        if (queryActiveAlarmsCommandBuilder_ == null) {
          if (!(payloadCase_ == 37)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance();
          }
          queryActiveAlarmsCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 37;
        onChanged();
        return queryActiveAlarmsCommandBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommandOrBuilder> acknowledgeAlarmByNameCommandBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       * @return Whether the acknowledgeAlarmByNameCommand field is set.
       */
      @java.lang.Override
      public boolean hasAcknowledgeAlarmByNameCommand() {
        return payloadCase_ == 38;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       * @return The acknowledgeAlarmByNameCommand.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand getAcknowledgeAlarmByNameCommand() {
        if (acknowledgeAlarmByNameCommandBuilder_ == null) {
          if (payloadCase_ == 38) {
            return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 38) {
            return acknowledgeAlarmByNameCommandBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       */
      public Builder setAcknowledgeAlarmByNameCommand(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand value) {
        if (acknowledgeAlarmByNameCommandBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          acknowledgeAlarmByNameCommandBuilder_.setMessage(value);
        }
        payloadCase_ = 38;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       */
      public Builder setAcknowledgeAlarmByNameCommand(
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.Builder builderForValue) {
        if (acknowledgeAlarmByNameCommandBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          acknowledgeAlarmByNameCommandBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 38;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       */
      public Builder mergeAcknowledgeAlarmByNameCommand(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand value) {
        if (acknowledgeAlarmByNameCommandBuilder_ == null) {
          if (payloadCase_ == 38 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 38) {
            acknowledgeAlarmByNameCommandBuilder_.mergeFrom(value);
          } else {
            acknowledgeAlarmByNameCommandBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 38;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       */
      public Builder clearAcknowledgeAlarmByNameCommand() {
        if (acknowledgeAlarmByNameCommandBuilder_ == null) {
          if (payloadCase_ == 38) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 38) {
            payloadCase_ = 0;
            payload_ = null;
          }
          acknowledgeAlarmByNameCommandBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.Builder getAcknowledgeAlarmByNameCommandBuilder() {
        return internalGetAcknowledgeAlarmByNameCommandFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommandOrBuilder getAcknowledgeAlarmByNameCommandOrBuilder() {
        if ((payloadCase_ == 38) && (acknowledgeAlarmByNameCommandBuilder_ != null)) {
          return acknowledgeAlarmByNameCommandBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 38) {
            return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand acknowledge_alarm_by_name_command = 38;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommandOrBuilder> 
          internalGetAcknowledgeAlarmByNameCommandFieldBuilder() {
        if (acknowledgeAlarmByNameCommandBuilder_ == null) {
          if (!(payloadCase_ == 38)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance();
          }
          acknowledgeAlarmByNameCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 38;
        onChanged();
        return acknowledgeAlarmByNameCommandBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommandOrBuilder> writeBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       * @return Whether the writeBulk field is set.
       */
      @java.lang.Override
      public boolean hasWriteBulk() {
        return payloadCase_ == 39;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       * @return The writeBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand getWriteBulk() {
        if (writeBulkBuilder_ == null) {
          if (payloadCase_ == 39) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 39) {
            return writeBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       */
      public Builder setWriteBulk(mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand value) {
        if (writeBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 39;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       */
      public Builder setWriteBulk(
          mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.Builder builderForValue) {
        if (writeBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 39;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       */
      public Builder mergeWriteBulk(mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand value) {
        if (writeBulkBuilder_ == null) {
          if (payloadCase_ == 39 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 39) {
            writeBulkBuilder_.mergeFrom(value);
          } else {
            writeBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 39;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       */
      public Builder clearWriteBulk() {
        if (writeBulkBuilder_ == null) {
          if (payloadCase_ == 39) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 39) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.Builder getWriteBulkBuilder() {
        return internalGetWriteBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommandOrBuilder getWriteBulkOrBuilder() {
        if ((payloadCase_ == 39) && (writeBulkBuilder_ != null)) {
          return writeBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 39) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteBulkCommand write_bulk = 39;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommandOrBuilder> 
          internalGetWriteBulkFieldBuilder() {
        if (writeBulkBuilder_ == null) {
          if (!(payloadCase_ == 39)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance();
          }
          writeBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 39;
        onChanged();
        return writeBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommandOrBuilder> write2BulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       * @return Whether the write2Bulk field is set.
       */
      @java.lang.Override
      public boolean hasWrite2Bulk() {
        return payloadCase_ == 40;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       * @return The write2Bulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand getWrite2Bulk() {
        if (write2BulkBuilder_ == null) {
          if (payloadCase_ == 40) {
            return (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 40) {
            return write2BulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       */
      public Builder setWrite2Bulk(mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand value) {
        if (write2BulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          write2BulkBuilder_.setMessage(value);
        }
        payloadCase_ = 40;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       */
      public Builder setWrite2Bulk(
          mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.Builder builderForValue) {
        if (write2BulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          write2BulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 40;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       */
      public Builder mergeWrite2Bulk(mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand value) {
        if (write2BulkBuilder_ == null) {
          if (payloadCase_ == 40 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 40) {
            write2BulkBuilder_.mergeFrom(value);
          } else {
            write2BulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 40;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       */
      public Builder clearWrite2Bulk() {
        if (write2BulkBuilder_ == null) {
          if (payloadCase_ == 40) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 40) {
            payloadCase_ = 0;
            payload_ = null;
          }
          write2BulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.Builder getWrite2BulkBuilder() {
        return internalGetWrite2BulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommandOrBuilder getWrite2BulkOrBuilder() {
        if ((payloadCase_ == 40) && (write2BulkBuilder_ != null)) {
          return write2BulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 40) {
            return (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Write2BulkCommand write2_bulk = 40;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommandOrBuilder> 
          internalGetWrite2BulkFieldBuilder() {
        if (write2BulkBuilder_ == null) {
          if (!(payloadCase_ == 40)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance();
          }
          write2BulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 40;
        onChanged();
        return write2BulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommandOrBuilder> writeSecuredBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       * @return Whether the writeSecuredBulk field is set.
       */
      @java.lang.Override
      public boolean hasWriteSecuredBulk() {
        return payloadCase_ == 41;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       * @return The writeSecuredBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand getWriteSecuredBulk() {
        if (writeSecuredBulkBuilder_ == null) {
          if (payloadCase_ == 41) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 41) {
            return writeSecuredBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       */
      public Builder setWriteSecuredBulk(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand value) {
        if (writeSecuredBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeSecuredBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 41;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       */
      public Builder setWriteSecuredBulk(
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.Builder builderForValue) {
        if (writeSecuredBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeSecuredBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 41;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       */
      public Builder mergeWriteSecuredBulk(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand value) {
        if (writeSecuredBulkBuilder_ == null) {
          if (payloadCase_ == 41 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 41) {
            writeSecuredBulkBuilder_.mergeFrom(value);
          } else {
            writeSecuredBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 41;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       */
      public Builder clearWriteSecuredBulk() {
        if (writeSecuredBulkBuilder_ == null) {
          if (payloadCase_ == 41) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 41) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeSecuredBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.Builder getWriteSecuredBulkBuilder() {
        return internalGetWriteSecuredBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommandOrBuilder getWriteSecuredBulkOrBuilder() {
        if ((payloadCase_ == 41) && (writeSecuredBulkBuilder_ != null)) {
          return writeSecuredBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 41) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecuredBulkCommand write_secured_bulk = 41;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommandOrBuilder> 
          internalGetWriteSecuredBulkFieldBuilder() {
        if (writeSecuredBulkBuilder_ == null) {
          if (!(payloadCase_ == 41)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance();
          }
          writeSecuredBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 41;
        onChanged();
        return writeSecuredBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommandOrBuilder> writeSecured2BulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       * @return Whether the writeSecured2Bulk field is set.
       */
      @java.lang.Override
      public boolean hasWriteSecured2Bulk() {
        return payloadCase_ == 42;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       * @return The writeSecured2Bulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand getWriteSecured2Bulk() {
        if (writeSecured2BulkBuilder_ == null) {
          if (payloadCase_ == 42) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 42) {
            return writeSecured2BulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       */
      public Builder setWriteSecured2Bulk(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand value) {
        if (writeSecured2BulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeSecured2BulkBuilder_.setMessage(value);
        }
        payloadCase_ = 42;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       */
      public Builder setWriteSecured2Bulk(
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.Builder builderForValue) {
        if (writeSecured2BulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeSecured2BulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 42;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       */
      public Builder mergeWriteSecured2Bulk(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand value) {
        if (writeSecured2BulkBuilder_ == null) {
          if (payloadCase_ == 42 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 42) {
            writeSecured2BulkBuilder_.mergeFrom(value);
          } else {
            writeSecured2BulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 42;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       */
      public Builder clearWriteSecured2Bulk() {
        if (writeSecured2BulkBuilder_ == null) {
          if (payloadCase_ == 42) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 42) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeSecured2BulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.Builder getWriteSecured2BulkBuilder() {
        return internalGetWriteSecured2BulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommandOrBuilder getWriteSecured2BulkOrBuilder() {
        if ((payloadCase_ == 42) && (writeSecured2BulkBuilder_ != null)) {
          return writeSecured2BulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 42) {
            return (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WriteSecured2BulkCommand write_secured2_bulk = 42;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommandOrBuilder> 
          internalGetWriteSecured2BulkFieldBuilder() {
        if (writeSecured2BulkBuilder_ == null) {
          if (!(payloadCase_ == 42)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance();
          }
          writeSecured2BulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 42;
        onChanged();
        return writeSecured2BulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommandOrBuilder> readBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       * @return Whether the readBulk field is set.
       */
      @java.lang.Override
      public boolean hasReadBulk() {
        return payloadCase_ == 43;
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       * @return The readBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand getReadBulk() {
        if (readBulkBuilder_ == null) {
          if (payloadCase_ == 43) {
            return (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 43) {
            return readBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       */
      public Builder setReadBulk(mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand value) {
        if (readBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          readBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 43;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       */
      public Builder setReadBulk(
          mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.Builder builderForValue) {
        if (readBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          readBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 43;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       */
      public Builder mergeReadBulk(mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand value) {
        if (readBulkBuilder_ == null) {
          if (payloadCase_ == 43 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 43) {
            readBulkBuilder_.mergeFrom(value);
          } else {
            readBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 43;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       */
      public Builder clearReadBulk() {
        if (readBulkBuilder_ == null) {
          if (payloadCase_ == 43) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 43) {
            payloadCase_ = 0;
            payload_ = null;
          }
          readBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.Builder getReadBulkBuilder() {
        return internalGetReadBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommandOrBuilder getReadBulkOrBuilder() {
        if ((payloadCase_ == 43) && (readBulkBuilder_ != null)) {
          return readBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 43) {
            return (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ReadBulkCommand read_bulk = 43;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommandOrBuilder> 
          internalGetReadBulkFieldBuilder() {
        if (readBulkBuilder_ == null) {
          if (!(payloadCase_ == 43)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance();
          }
          readBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 43;
        onChanged();
        return readBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.PingCommand, mxaccess_gateway.v1.MxaccessGateway.PingCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.PingCommandOrBuilder> pingBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       * @return Whether the ping field is set.
       */
      @java.lang.Override
      public boolean hasPing() {
        return payloadCase_ == 100;
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       * @return The ping.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.PingCommand getPing() {
        if (pingBuilder_ == null) {
          if (payloadCase_ == 100) {
            return (mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 100) {
            return pingBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       */
      public Builder setPing(mxaccess_gateway.v1.MxaccessGateway.PingCommand value) {
        if (pingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          pingBuilder_.setMessage(value);
        }
        payloadCase_ = 100;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       */
      public Builder setPing(
          mxaccess_gateway.v1.MxaccessGateway.PingCommand.Builder builderForValue) {
        if (pingBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          pingBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 100;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       */
      public Builder mergePing(mxaccess_gateway.v1.MxaccessGateway.PingCommand value) {
        if (pingBuilder_ == null) {
          if (payloadCase_ == 100 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.PingCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 100) {
            pingBuilder_.mergeFrom(value);
          } else {
            pingBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 100;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       */
      public Builder clearPing() {
        if (pingBuilder_ == null) {
          if (payloadCase_ == 100) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 100) {
            payloadCase_ = 0;
            payload_ = null;
          }
          pingBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.PingCommand.Builder getPingBuilder() {
        return internalGetPingFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.PingCommandOrBuilder getPingOrBuilder() {
        if ((payloadCase_ == 100) && (pingBuilder_ != null)) {
          return pingBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 100) {
            return (mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.PingCommand ping = 100;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.PingCommand, mxaccess_gateway.v1.MxaccessGateway.PingCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.PingCommandOrBuilder> 
          internalGetPingFieldBuilder() {
        if (pingBuilder_ == null) {
          if (!(payloadCase_ == 100)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance();
          }
          pingBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.PingCommand, mxaccess_gateway.v1.MxaccessGateway.PingCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.PingCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.PingCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 100;
        onChanged();
        return pingBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommandOrBuilder> getSessionStateBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       * @return Whether the getSessionState field is set.
       */
      @java.lang.Override
      public boolean hasGetSessionState() {
        return payloadCase_ == 101;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       * @return The getSessionState.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand getGetSessionState() {
        if (getSessionStateBuilder_ == null) {
          if (payloadCase_ == 101) {
            return (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 101) {
            return getSessionStateBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       */
      public Builder setGetSessionState(mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand value) {
        if (getSessionStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          getSessionStateBuilder_.setMessage(value);
        }
        payloadCase_ = 101;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       */
      public Builder setGetSessionState(
          mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.Builder builderForValue) {
        if (getSessionStateBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          getSessionStateBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 101;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       */
      public Builder mergeGetSessionState(mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand value) {
        if (getSessionStateBuilder_ == null) {
          if (payloadCase_ == 101 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 101) {
            getSessionStateBuilder_.mergeFrom(value);
          } else {
            getSessionStateBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 101;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       */
      public Builder clearGetSessionState() {
        if (getSessionStateBuilder_ == null) {
          if (payloadCase_ == 101) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 101) {
            payloadCase_ = 0;
            payload_ = null;
          }
          getSessionStateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.Builder getGetSessionStateBuilder() {
        return internalGetGetSessionStateFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommandOrBuilder getGetSessionStateOrBuilder() {
        if ((payloadCase_ == 101) && (getSessionStateBuilder_ != null)) {
          return getSessionStateBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 101) {
            return (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.GetSessionStateCommand get_session_state = 101;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommandOrBuilder> 
          internalGetGetSessionStateFieldBuilder() {
        if (getSessionStateBuilder_ == null) {
          if (!(payloadCase_ == 101)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance();
          }
          getSessionStateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 101;
        onChanged();
        return getSessionStateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommandOrBuilder> getWorkerInfoBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       * @return Whether the getWorkerInfo field is set.
       */
      @java.lang.Override
      public boolean hasGetWorkerInfo() {
        return payloadCase_ == 102;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       * @return The getWorkerInfo.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand getGetWorkerInfo() {
        if (getWorkerInfoBuilder_ == null) {
          if (payloadCase_ == 102) {
            return (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 102) {
            return getWorkerInfoBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       */
      public Builder setGetWorkerInfo(mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand value) {
        if (getWorkerInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          getWorkerInfoBuilder_.setMessage(value);
        }
        payloadCase_ = 102;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       */
      public Builder setGetWorkerInfo(
          mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.Builder builderForValue) {
        if (getWorkerInfoBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          getWorkerInfoBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 102;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       */
      public Builder mergeGetWorkerInfo(mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand value) {
        if (getWorkerInfoBuilder_ == null) {
          if (payloadCase_ == 102 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 102) {
            getWorkerInfoBuilder_.mergeFrom(value);
          } else {
            getWorkerInfoBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 102;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       */
      public Builder clearGetWorkerInfo() {
        if (getWorkerInfoBuilder_ == null) {
          if (payloadCase_ == 102) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 102) {
            payloadCase_ = 0;
            payload_ = null;
          }
          getWorkerInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.Builder getGetWorkerInfoBuilder() {
        return internalGetGetWorkerInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommandOrBuilder getGetWorkerInfoOrBuilder() {
        if ((payloadCase_ == 102) && (getWorkerInfoBuilder_ != null)) {
          return getWorkerInfoBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 102) {
            return (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.GetWorkerInfoCommand get_worker_info = 102;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommandOrBuilder> 
          internalGetGetWorkerInfoFieldBuilder() {
        if (getWorkerInfoBuilder_ == null) {
          if (!(payloadCase_ == 102)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance();
          }
          getWorkerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 102;
        onChanged();
        return getWorkerInfoBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommandOrBuilder> drainEventsBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       * @return Whether the drainEvents field is set.
       */
      @java.lang.Override
      public boolean hasDrainEvents() {
        return payloadCase_ == 103;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       * @return The drainEvents.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand getDrainEvents() {
        if (drainEventsBuilder_ == null) {
          if (payloadCase_ == 103) {
            return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 103) {
            return drainEventsBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       */
      public Builder setDrainEvents(mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand value) {
        if (drainEventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          drainEventsBuilder_.setMessage(value);
        }
        payloadCase_ = 103;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       */
      public Builder setDrainEvents(
          mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.Builder builderForValue) {
        if (drainEventsBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          drainEventsBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 103;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       */
      public Builder mergeDrainEvents(mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand value) {
        if (drainEventsBuilder_ == null) {
          if (payloadCase_ == 103 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 103) {
            drainEventsBuilder_.mergeFrom(value);
          } else {
            drainEventsBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 103;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       */
      public Builder clearDrainEvents() {
        if (drainEventsBuilder_ == null) {
          if (payloadCase_ == 103) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 103) {
            payloadCase_ = 0;
            payload_ = null;
          }
          drainEventsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.Builder getDrainEventsBuilder() {
        return internalGetDrainEventsFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommandOrBuilder getDrainEventsOrBuilder() {
        if ((payloadCase_ == 103) && (drainEventsBuilder_ != null)) {
          return drainEventsBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 103) {
            return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsCommand drain_events = 103;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommandOrBuilder> 
          internalGetDrainEventsFieldBuilder() {
        if (drainEventsBuilder_ == null) {
          if (!(payloadCase_ == 103)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance();
          }
          drainEventsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 103;
        onChanged();
        return drainEventsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommandOrBuilder> shutdownWorkerBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       * @return Whether the shutdownWorker field is set.
       */
      @java.lang.Override
      public boolean hasShutdownWorker() {
        return payloadCase_ == 104;
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       * @return The shutdownWorker.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand getShutdownWorker() {
        if (shutdownWorkerBuilder_ == null) {
          if (payloadCase_ == 104) {
            return (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance();
        } else {
          if (payloadCase_ == 104) {
            return shutdownWorkerBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       */
      public Builder setShutdownWorker(mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand value) {
        if (shutdownWorkerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          shutdownWorkerBuilder_.setMessage(value);
        }
        payloadCase_ = 104;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       */
      public Builder setShutdownWorker(
          mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.Builder builderForValue) {
        if (shutdownWorkerBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          shutdownWorkerBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 104;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       */
      public Builder mergeShutdownWorker(mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand value) {
        if (shutdownWorkerBuilder_ == null) {
          if (payloadCase_ == 104 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.newBuilder((mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 104) {
            shutdownWorkerBuilder_.mergeFrom(value);
          } else {
            shutdownWorkerBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 104;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       */
      public Builder clearShutdownWorker() {
        if (shutdownWorkerBuilder_ == null) {
          if (payloadCase_ == 104) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 104) {
            payloadCase_ = 0;
            payload_ = null;
          }
          shutdownWorkerBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.Builder getShutdownWorkerBuilder() {
        return internalGetShutdownWorkerFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommandOrBuilder getShutdownWorkerOrBuilder() {
        if ((payloadCase_ == 104) && (shutdownWorkerBuilder_ != null)) {
          return shutdownWorkerBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 104) {
            return (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ShutdownWorkerCommand shutdown_worker = 104;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommandOrBuilder> 
          internalGetShutdownWorkerFieldBuilder() {
        if (shutdownWorkerBuilder_ == null) {
          if (!(payloadCase_ == 104)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance();
          }
          shutdownWorkerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.Builder, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommandOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 104;
        onChanged();
        return shutdownWorkerBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxCommand>
        PARSER = new com.google.protobuf.AbstractParser<MxCommand>() {
      @java.lang.Override
      public MxCommand 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<MxCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RegisterCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.RegisterCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string client_name = 1;</code>
     * @return The clientName.
     */
    java.lang.String getClientName();
    /**
     * <code>string client_name = 1;</code>
     * @return The bytes for clientName.
     */
    com.google.protobuf.ByteString
        getClientNameBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.RegisterCommand}
   */
  public static final class RegisterCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.RegisterCommand)
      RegisterCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "RegisterCommand");
    }
    // Use RegisterCommand.newBuilder() to construct.
    private RegisterCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private RegisterCommand() {
      clientName_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.class, mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.Builder.class);
    }

    public static final int CLIENT_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientName_ = "";
    /**
     * <code>string client_name = 1;</code>
     * @return The clientName.
     */
    @java.lang.Override
    public java.lang.String getClientName() {
      java.lang.Object ref = clientName_;
      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();
        clientName_ = s;
        return s;
      }
    }
    /**
     * <code>string client_name = 1;</code>
     * @return The bytes for clientName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientNameBytes() {
      java.lang.Object ref = clientName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientName_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, clientName_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, clientName_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.RegisterCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.RegisterCommand other = (mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) obj;

      if (!getClientName()
          .equals(other.getClientName())) 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();
      hash = (37 * hash) + CLIENT_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getClientName().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand 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 mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand 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 mxaccess_gateway.v1.MxaccessGateway.RegisterCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand 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(mxaccess_gateway.v1.MxaccessGateway.RegisterCommand 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 mxaccess_gateway.v1.RegisterCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.RegisterCommand)
        mxaccess_gateway.v1.MxaccessGateway.RegisterCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.class, mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        clientName_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.RegisterCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.RegisterCommand result = new mxaccess_gateway.v1.MxaccessGateway.RegisterCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.RegisterCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.clientName_ = clientName_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.RegisterCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.RegisterCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.RegisterCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.RegisterCommand.getDefaultInstance()) return this;
        if (!other.getClientName().isEmpty()) {
          clientName_ = other.clientName_;
          bitField0_ |= 0x00000001;
          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: {
                clientName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              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 clientName_ = "";
      /**
       * <code>string client_name = 1;</code>
       * @return The clientName.
       */
      public java.lang.String getClientName() {
        java.lang.Object ref = clientName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_name = 1;</code>
       * @return The bytes for clientName.
       */
      public com.google.protobuf.ByteString
          getClientNameBytes() {
        java.lang.Object ref = clientName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_name = 1;</code>
       * @param value The clientName to set.
       * @return This builder for chaining.
       */
      public Builder setClientName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string client_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientName() {
        clientName_ = getDefaultInstance().getClientName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string client_name = 1;</code>
       * @param value The bytes for clientName to set.
       * @return This builder for chaining.
       */
      public Builder setClientNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.RegisterCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.RegisterCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.RegisterCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.RegisterCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RegisterCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RegisterCommand>
        PARSER = new com.google.protobuf.AbstractParser<RegisterCommand>() {
      @java.lang.Override
      public RegisterCommand 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<RegisterCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RegisterCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UnregisterCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.UnregisterCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.UnregisterCommand}
   */
  public static final class UnregisterCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.UnregisterCommand)
      UnregisterCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "UnregisterCommand");
    }
    // Use UnregisterCommand.newBuilder() to construct.
    private UnregisterCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private UnregisterCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnregisterCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnregisterCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand other = (mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand 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(mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand 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 mxaccess_gateway.v1.UnregisterCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.UnregisterCommand)
        mxaccess_gateway.v1.MxaccessGateway.UnregisterCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnregisterCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnregisterCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnregisterCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand result = new mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.UnregisterCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.UnregisterCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UnregisterCommand>
        PARSER = new com.google.protobuf.AbstractParser<UnregisterCommand>() {
      @java.lang.Override
      public UnregisterCommand 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<UnregisterCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnregisterCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddItemCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AddItemCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>string item_definition = 2;</code>
     * @return The itemDefinition.
     */
    java.lang.String getItemDefinition();
    /**
     * <code>string item_definition = 2;</code>
     * @return The bytes for itemDefinition.
     */
    com.google.protobuf.ByteString
        getItemDefinitionBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AddItemCommand}
   */
  public static final class AddItemCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AddItemCommand)
      AddItemCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AddItemCommand");
    }
    // Use AddItemCommand.newBuilder() to construct.
    private AddItemCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AddItemCommand() {
      itemDefinition_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.class, mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_DEFINITION_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object itemDefinition_ = "";
    /**
     * <code>string item_definition = 2;</code>
     * @return The itemDefinition.
     */
    @java.lang.Override
    public java.lang.String getItemDefinition() {
      java.lang.Object ref = itemDefinition_;
      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();
        itemDefinition_ = s;
        return s;
      }
    }
    /**
     * <code>string item_definition = 2;</code>
     * @return The bytes for itemDefinition.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getItemDefinitionBytes() {
      java.lang.Object ref = itemDefinition_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        itemDefinition_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemDefinition_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, itemDefinition_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemDefinition_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, itemDefinition_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AddItemCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AddItemCommand other = (mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getItemDefinition()
          .equals(other.getItemDefinition())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_DEFINITION_FIELD_NUMBER;
      hash = (53 * hash) + getItemDefinition().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand 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 mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand 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 mxaccess_gateway.v1.MxaccessGateway.AddItemCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand 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(mxaccess_gateway.v1.MxaccessGateway.AddItemCommand 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 mxaccess_gateway.v1.AddItemCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AddItemCommand)
        mxaccess_gateway.v1.MxaccessGateway.AddItemCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.class, mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemDefinition_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AddItemCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AddItemCommand result = new mxaccess_gateway.v1.MxaccessGateway.AddItemCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AddItemCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemDefinition_ = itemDefinition_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AddItemCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AddItemCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AddItemCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AddItemCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.getItemDefinition().isEmpty()) {
          itemDefinition_ = other.itemDefinition_;
          bitField0_ |= 0x00000002;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                itemDefinition_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object itemDefinition_ = "";
      /**
       * <code>string item_definition = 2;</code>
       * @return The itemDefinition.
       */
      public java.lang.String getItemDefinition() {
        java.lang.Object ref = itemDefinition_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          itemDefinition_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string item_definition = 2;</code>
       * @return The bytes for itemDefinition.
       */
      public com.google.protobuf.ByteString
          getItemDefinitionBytes() {
        java.lang.Object ref = itemDefinition_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          itemDefinition_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string item_definition = 2;</code>
       * @param value The itemDefinition to set.
       * @return This builder for chaining.
       */
      public Builder setItemDefinition(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        itemDefinition_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string item_definition = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemDefinition() {
        itemDefinition_ = getDefaultInstance().getItemDefinition();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string item_definition = 2;</code>
       * @param value The bytes for itemDefinition to set.
       * @return This builder for chaining.
       */
      public Builder setItemDefinitionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        itemDefinition_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AddItemCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AddItemCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AddItemCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AddItemCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AddItemCommand>
        PARSER = new com.google.protobuf.AbstractParser<AddItemCommand>() {
      @java.lang.Override
      public AddItemCommand 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<AddItemCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddItem2CommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AddItem2Command)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>string item_definition = 2;</code>
     * @return The itemDefinition.
     */
    java.lang.String getItemDefinition();
    /**
     * <code>string item_definition = 2;</code>
     * @return The bytes for itemDefinition.
     */
    com.google.protobuf.ByteString
        getItemDefinitionBytes();

    /**
     * <code>string item_context = 3;</code>
     * @return The itemContext.
     */
    java.lang.String getItemContext();
    /**
     * <code>string item_context = 3;</code>
     * @return The bytes for itemContext.
     */
    com.google.protobuf.ByteString
        getItemContextBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AddItem2Command}
   */
  public static final class AddItem2Command extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AddItem2Command)
      AddItem2CommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AddItem2Command");
    }
    // Use AddItem2Command.newBuilder() to construct.
    private AddItem2Command(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AddItem2Command() {
      itemDefinition_ = "";
      itemContext_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Command_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Command_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.class, mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_DEFINITION_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object itemDefinition_ = "";
    /**
     * <code>string item_definition = 2;</code>
     * @return The itemDefinition.
     */
    @java.lang.Override
    public java.lang.String getItemDefinition() {
      java.lang.Object ref = itemDefinition_;
      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();
        itemDefinition_ = s;
        return s;
      }
    }
    /**
     * <code>string item_definition = 2;</code>
     * @return The bytes for itemDefinition.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getItemDefinitionBytes() {
      java.lang.Object ref = itemDefinition_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        itemDefinition_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ITEM_CONTEXT_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object itemContext_ = "";
    /**
     * <code>string item_context = 3;</code>
     * @return The itemContext.
     */
    @java.lang.Override
    public java.lang.String getItemContext() {
      java.lang.Object ref = itemContext_;
      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();
        itemContext_ = s;
        return s;
      }
    }
    /**
     * <code>string item_context = 3;</code>
     * @return The bytes for itemContext.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getItemContextBytes() {
      java.lang.Object ref = itemContext_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        itemContext_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemDefinition_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, itemDefinition_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemContext_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, itemContext_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemDefinition_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, itemDefinition_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemContext_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, itemContext_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AddItem2Command)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AddItem2Command other = (mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getItemDefinition()
          .equals(other.getItemDefinition())) return false;
      if (!getItemContext()
          .equals(other.getItemContext())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_DEFINITION_FIELD_NUMBER;
      hash = (53 * hash) + getItemDefinition().hashCode();
      hash = (37 * hash) + ITEM_CONTEXT_FIELD_NUMBER;
      hash = (53 * hash) + getItemContext().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command 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 mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command 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 mxaccess_gateway.v1.MxaccessGateway.AddItem2Command parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command 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(mxaccess_gateway.v1.MxaccessGateway.AddItem2Command 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 mxaccess_gateway.v1.AddItem2Command}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AddItem2Command)
        mxaccess_gateway.v1.MxaccessGateway.AddItem2CommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Command_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Command_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.class, mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemDefinition_ = "";
        itemContext_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Command_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Command getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Command build() {
        mxaccess_gateway.v1.MxaccessGateway.AddItem2Command result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Command buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AddItem2Command result = new mxaccess_gateway.v1.MxaccessGateway.AddItem2Command(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AddItem2Command result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemDefinition_ = itemDefinition_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.itemContext_ = itemContext_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AddItem2Command) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AddItem2Command)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AddItem2Command other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AddItem2Command.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.getItemDefinition().isEmpty()) {
          itemDefinition_ = other.itemDefinition_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getItemContext().isEmpty()) {
          itemContext_ = other.itemContext_;
          bitField0_ |= 0x00000004;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                itemDefinition_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                itemContext_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object itemDefinition_ = "";
      /**
       * <code>string item_definition = 2;</code>
       * @return The itemDefinition.
       */
      public java.lang.String getItemDefinition() {
        java.lang.Object ref = itemDefinition_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          itemDefinition_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string item_definition = 2;</code>
       * @return The bytes for itemDefinition.
       */
      public com.google.protobuf.ByteString
          getItemDefinitionBytes() {
        java.lang.Object ref = itemDefinition_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          itemDefinition_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string item_definition = 2;</code>
       * @param value The itemDefinition to set.
       * @return This builder for chaining.
       */
      public Builder setItemDefinition(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        itemDefinition_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string item_definition = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemDefinition() {
        itemDefinition_ = getDefaultInstance().getItemDefinition();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string item_definition = 2;</code>
       * @param value The bytes for itemDefinition to set.
       * @return This builder for chaining.
       */
      public Builder setItemDefinitionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        itemDefinition_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object itemContext_ = "";
      /**
       * <code>string item_context = 3;</code>
       * @return The itemContext.
       */
      public java.lang.String getItemContext() {
        java.lang.Object ref = itemContext_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          itemContext_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string item_context = 3;</code>
       * @return The bytes for itemContext.
       */
      public com.google.protobuf.ByteString
          getItemContextBytes() {
        java.lang.Object ref = itemContext_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          itemContext_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string item_context = 3;</code>
       * @param value The itemContext to set.
       * @return This builder for chaining.
       */
      public Builder setItemContext(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        itemContext_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string item_context = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemContext() {
        itemContext_ = getDefaultInstance().getItemContext();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string item_context = 3;</code>
       * @param value The bytes for itemContext to set.
       * @return This builder for chaining.
       */
      public Builder setItemContextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        itemContext_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AddItem2Command)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AddItem2Command)
    private static final mxaccess_gateway.v1.MxaccessGateway.AddItem2Command DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AddItem2Command();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Command getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AddItem2Command>
        PARSER = new com.google.protobuf.AbstractParser<AddItem2Command>() {
      @java.lang.Override
      public AddItem2Command 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<AddItem2Command> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItem2Command getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RemoveItemCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.RemoveItemCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.RemoveItemCommand}
   */
  public static final class RemoveItemCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.RemoveItemCommand)
      RemoveItemCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "RemoveItemCommand");
    }
    // Use RemoveItemCommand.newBuilder() to construct.
    private RemoveItemCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private RemoveItemCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.class, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand other = (mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand 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 mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand 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 mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand 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(mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand 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 mxaccess_gateway.v1.RemoveItemCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.RemoveItemCommand)
        mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.class, mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand result = new mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.RemoveItemCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.RemoveItemCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RemoveItemCommand>
        PARSER = new com.google.protobuf.AbstractParser<RemoveItemCommand>() {
      @java.lang.Override
      public RemoveItemCommand 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<RemoveItemCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RemoveItemCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AdviseCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AdviseCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AdviseCommand}
   */
  public static final class AdviseCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AdviseCommand)
      AdviseCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AdviseCommand");
    }
    // Use AdviseCommand.newBuilder() to construct.
    private AdviseCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AdviseCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.class, mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AdviseCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AdviseCommand other = (mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand 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 mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand 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 mxaccess_gateway.v1.MxaccessGateway.AdviseCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand 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(mxaccess_gateway.v1.MxaccessGateway.AdviseCommand 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 mxaccess_gateway.v1.AdviseCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AdviseCommand)
        mxaccess_gateway.v1.MxaccessGateway.AdviseCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.class, mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AdviseCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AdviseCommand result = new mxaccess_gateway.v1.MxaccessGateway.AdviseCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AdviseCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AdviseCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AdviseCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AdviseCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AdviseCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AdviseCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AdviseCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AdviseCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AdviseCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AdviseCommand>
        PARSER = new com.google.protobuf.AbstractParser<AdviseCommand>() {
      @java.lang.Override
      public AdviseCommand 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<AdviseCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UnAdviseCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.UnAdviseCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.UnAdviseCommand}
   */
  public static final class UnAdviseCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.UnAdviseCommand)
      UnAdviseCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "UnAdviseCommand");
    }
    // Use UnAdviseCommand.newBuilder() to construct.
    private UnAdviseCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private UnAdviseCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand other = (mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand 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(mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand 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 mxaccess_gateway.v1.UnAdviseCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.UnAdviseCommand)
        mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand result = new mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.UnAdviseCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.UnAdviseCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UnAdviseCommand>
        PARSER = new com.google.protobuf.AbstractParser<UnAdviseCommand>() {
      @java.lang.Override
      public UnAdviseCommand 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<UnAdviseCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnAdviseCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AdviseSupervisoryCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AdviseSupervisoryCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AdviseSupervisoryCommand}
   */
  public static final class AdviseSupervisoryCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AdviseSupervisoryCommand)
      AdviseSupervisoryCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AdviseSupervisoryCommand");
    }
    // Use AdviseSupervisoryCommand.newBuilder() to construct.
    private AdviseSupervisoryCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AdviseSupervisoryCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.class, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand other = (mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand 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 mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand 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 mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand 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(mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand 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 mxaccess_gateway.v1.AdviseSupervisoryCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AdviseSupervisoryCommand)
        mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.class, mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand result = new mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AdviseSupervisoryCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AdviseSupervisoryCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AdviseSupervisoryCommand>
        PARSER = new com.google.protobuf.AbstractParser<AdviseSupervisoryCommand>() {
      @java.lang.Override
      public AdviseSupervisoryCommand 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<AdviseSupervisoryCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseSupervisoryCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddBufferedItemCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AddBufferedItemCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>string item_definition = 2;</code>
     * @return The itemDefinition.
     */
    java.lang.String getItemDefinition();
    /**
     * <code>string item_definition = 2;</code>
     * @return The bytes for itemDefinition.
     */
    com.google.protobuf.ByteString
        getItemDefinitionBytes();

    /**
     * <code>string item_context = 3;</code>
     * @return The itemContext.
     */
    java.lang.String getItemContext();
    /**
     * <code>string item_context = 3;</code>
     * @return The bytes for itemContext.
     */
    com.google.protobuf.ByteString
        getItemContextBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AddBufferedItemCommand}
   */
  public static final class AddBufferedItemCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AddBufferedItemCommand)
      AddBufferedItemCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AddBufferedItemCommand");
    }
    // Use AddBufferedItemCommand.newBuilder() to construct.
    private AddBufferedItemCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AddBufferedItemCommand() {
      itemDefinition_ = "";
      itemContext_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.class, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_DEFINITION_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object itemDefinition_ = "";
    /**
     * <code>string item_definition = 2;</code>
     * @return The itemDefinition.
     */
    @java.lang.Override
    public java.lang.String getItemDefinition() {
      java.lang.Object ref = itemDefinition_;
      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();
        itemDefinition_ = s;
        return s;
      }
    }
    /**
     * <code>string item_definition = 2;</code>
     * @return The bytes for itemDefinition.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getItemDefinitionBytes() {
      java.lang.Object ref = itemDefinition_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        itemDefinition_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ITEM_CONTEXT_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object itemContext_ = "";
    /**
     * <code>string item_context = 3;</code>
     * @return The itemContext.
     */
    @java.lang.Override
    public java.lang.String getItemContext() {
      java.lang.Object ref = itemContext_;
      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();
        itemContext_ = s;
        return s;
      }
    }
    /**
     * <code>string item_context = 3;</code>
     * @return The bytes for itemContext.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getItemContextBytes() {
      java.lang.Object ref = itemContext_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        itemContext_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemDefinition_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, itemDefinition_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemContext_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, itemContext_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemDefinition_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, itemDefinition_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(itemContext_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, itemContext_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand other = (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getItemDefinition()
          .equals(other.getItemDefinition())) return false;
      if (!getItemContext()
          .equals(other.getItemContext())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_DEFINITION_FIELD_NUMBER;
      hash = (53 * hash) + getItemDefinition().hashCode();
      hash = (37 * hash) + ITEM_CONTEXT_FIELD_NUMBER;
      hash = (53 * hash) + getItemContext().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand 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 mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand 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 mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand 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(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand 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 mxaccess_gateway.v1.AddBufferedItemCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AddBufferedItemCommand)
        mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.class, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemDefinition_ = "";
        itemContext_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand result = new mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemDefinition_ = itemDefinition_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.itemContext_ = itemContext_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.getItemDefinition().isEmpty()) {
          itemDefinition_ = other.itemDefinition_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getItemContext().isEmpty()) {
          itemContext_ = other.itemContext_;
          bitField0_ |= 0x00000004;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                itemDefinition_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                itemContext_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object itemDefinition_ = "";
      /**
       * <code>string item_definition = 2;</code>
       * @return The itemDefinition.
       */
      public java.lang.String getItemDefinition() {
        java.lang.Object ref = itemDefinition_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          itemDefinition_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string item_definition = 2;</code>
       * @return The bytes for itemDefinition.
       */
      public com.google.protobuf.ByteString
          getItemDefinitionBytes() {
        java.lang.Object ref = itemDefinition_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          itemDefinition_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string item_definition = 2;</code>
       * @param value The itemDefinition to set.
       * @return This builder for chaining.
       */
      public Builder setItemDefinition(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        itemDefinition_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string item_definition = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemDefinition() {
        itemDefinition_ = getDefaultInstance().getItemDefinition();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string item_definition = 2;</code>
       * @param value The bytes for itemDefinition to set.
       * @return This builder for chaining.
       */
      public Builder setItemDefinitionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        itemDefinition_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object itemContext_ = "";
      /**
       * <code>string item_context = 3;</code>
       * @return The itemContext.
       */
      public java.lang.String getItemContext() {
        java.lang.Object ref = itemContext_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          itemContext_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string item_context = 3;</code>
       * @return The bytes for itemContext.
       */
      public com.google.protobuf.ByteString
          getItemContextBytes() {
        java.lang.Object ref = itemContext_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          itemContext_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string item_context = 3;</code>
       * @param value The itemContext to set.
       * @return This builder for chaining.
       */
      public Builder setItemContext(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        itemContext_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string item_context = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemContext() {
        itemContext_ = getDefaultInstance().getItemContext();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string item_context = 3;</code>
       * @param value The bytes for itemContext to set.
       * @return This builder for chaining.
       */
      public Builder setItemContextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        itemContext_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AddBufferedItemCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AddBufferedItemCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AddBufferedItemCommand>
        PARSER = new com.google.protobuf.AbstractParser<AddBufferedItemCommand>() {
      @java.lang.Override
      public AddBufferedItemCommand 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<AddBufferedItemCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetBufferedUpdateIntervalCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 update_interval_milliseconds = 2;</code>
     * @return The updateIntervalMilliseconds.
     */
    int getUpdateIntervalMilliseconds();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand}
   */
  public static final class SetBufferedUpdateIntervalCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand)
      SetBufferedUpdateIntervalCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SetBufferedUpdateIntervalCommand");
    }
    // Use SetBufferedUpdateIntervalCommand.newBuilder() to construct.
    private SetBufferedUpdateIntervalCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SetBufferedUpdateIntervalCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.class, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int UPDATE_INTERVAL_MILLISECONDS_FIELD_NUMBER = 2;
    private int updateIntervalMilliseconds_ = 0;
    /**
     * <code>int32 update_interval_milliseconds = 2;</code>
     * @return The updateIntervalMilliseconds.
     */
    @java.lang.Override
    public int getUpdateIntervalMilliseconds() {
      return updateIntervalMilliseconds_;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (updateIntervalMilliseconds_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, updateIntervalMilliseconds_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand other = (mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getUpdateIntervalMilliseconds()
          != other.getUpdateIntervalMilliseconds()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + UPDATE_INTERVAL_MILLISECONDS_FIELD_NUMBER;
      hash = (53 * hash) + getUpdateIntervalMilliseconds();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand 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 mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand 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 mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand 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(mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand 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 mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand)
        mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.class, mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        updateIntervalMilliseconds_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand result = new mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.updateIntervalMilliseconds_ = updateIntervalMilliseconds_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getUpdateIntervalMilliseconds() != 0) {
          setUpdateIntervalMilliseconds(other.getUpdateIntervalMilliseconds());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                updateIntervalMilliseconds_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int updateIntervalMilliseconds_ ;
      /**
       * <code>int32 update_interval_milliseconds = 2;</code>
       * @return The updateIntervalMilliseconds.
       */
      @java.lang.Override
      public int getUpdateIntervalMilliseconds() {
        return updateIntervalMilliseconds_;
      }
      /**
       * <code>int32 update_interval_milliseconds = 2;</code>
       * @param value The updateIntervalMilliseconds to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateIntervalMilliseconds(int value) {

        updateIntervalMilliseconds_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 update_interval_milliseconds = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUpdateIntervalMilliseconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        updateIntervalMilliseconds_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.SetBufferedUpdateIntervalCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SetBufferedUpdateIntervalCommand>
        PARSER = new com.google.protobuf.AbstractParser<SetBufferedUpdateIntervalCommand>() {
      @java.lang.Override
      public SetBufferedUpdateIntervalCommand 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<SetBufferedUpdateIntervalCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SetBufferedUpdateIntervalCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SuspendCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.SuspendCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.SuspendCommand}
   */
  public static final class SuspendCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.SuspendCommand)
      SuspendCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SuspendCommand");
    }
    // Use SuspendCommand.newBuilder() to construct.
    private SuspendCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SuspendCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.class, mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.SuspendCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.SuspendCommand other = (mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand 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 mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand 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 mxaccess_gateway.v1.MxaccessGateway.SuspendCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand 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(mxaccess_gateway.v1.MxaccessGateway.SuspendCommand 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 mxaccess_gateway.v1.SuspendCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.SuspendCommand)
        mxaccess_gateway.v1.MxaccessGateway.SuspendCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.class, mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.SuspendCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.SuspendCommand result = new mxaccess_gateway.v1.MxaccessGateway.SuspendCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.SuspendCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.SuspendCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.SuspendCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.SuspendCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.SuspendCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.SuspendCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.SuspendCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.SuspendCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.SuspendCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SuspendCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SuspendCommand>
        PARSER = new com.google.protobuf.AbstractParser<SuspendCommand>() {
      @java.lang.Override
      public SuspendCommand 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<SuspendCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SuspendCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActivateCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ActivateCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.ActivateCommand}
   */
  public static final class ActivateCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ActivateCommand)
      ActivateCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ActivateCommand");
    }
    // Use ActivateCommand.newBuilder() to construct.
    private ActivateCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ActivateCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.class, mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ActivateCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ActivateCommand other = (mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand 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 mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand 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 mxaccess_gateway.v1.MxaccessGateway.ActivateCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand 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(mxaccess_gateway.v1.MxaccessGateway.ActivateCommand 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 mxaccess_gateway.v1.ActivateCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ActivateCommand)
        mxaccess_gateway.v1.MxaccessGateway.ActivateCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.class, mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.ActivateCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ActivateCommand result = new mxaccess_gateway.v1.MxaccessGateway.ActivateCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ActivateCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ActivateCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ActivateCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ActivateCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ActivateCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ActivateCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ActivateCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.ActivateCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ActivateCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActivateCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ActivateCommand>
        PARSER = new com.google.protobuf.AbstractParser<ActivateCommand>() {
      @java.lang.Override
      public ActivateCommand 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<ActivateCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActivateCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>int32 user_id = 4;</code>
     * @return The userId.
     */
    int getUserId();
  }
  /**
   * <pre>
   * The unary reply's statuses field carries the correlated OnWriteComplete
   * outcome when it arrives within the worker's bounded wait — see
   * MxCommandReply.statuses.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.WriteCommand}
   */
  public static final class WriteCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteCommand)
      WriteCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteCommand");
    }
    // Use WriteCommand.newBuilder() to construct.
    private WriteCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteCommand.Builder.class);
    }

    private int bitField0_;
    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int VALUE_FIELD_NUMBER = 3;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int USER_ID_FIELD_NUMBER = 4;
    private int userId_ = 0;
    /**
     * <code>int32 user_id = 4;</code>
     * @return The userId.
     */
    @java.lang.Override
    public int getUserId() {
      return userId_;
    }

    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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(2, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getValue());
      }
      if (userId_ != 0) {
        output.writeInt32(4, userId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getValue());
      }
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, userId_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteCommand other = (mxaccess_gateway.v1.MxaccessGateway.WriteCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (getUserId()
          != other.getUserId()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (37 * hash) + USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand 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(mxaccess_gateway.v1.MxaccessGateway.WriteCommand 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;
    }
    /**
     * <pre>
     * The unary reply's statuses field carries the correlated OnWriteComplete
     * outcome when it arrives within the worker's bounded wait — see
     * MxCommandReply.statuses.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.WriteCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteCommand)
        mxaccess_gateway.v1.MxaccessGateway.WriteCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteCommand.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        userId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteCommand result = new mxaccess_gateway.v1.MxaccessGateway.WriteCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.userId_ = userId_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                userId_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private int userId_ ;
      /**
       * <code>int32 user_id = 4;</code>
       * @return The userId.
       */
      @java.lang.Override
      public int getUserId() {
        return userId_;
      }
      /**
       * <code>int32 user_id = 4;</code>
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 user_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        userId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteCommand>
        PARSER = new com.google.protobuf.AbstractParser<WriteCommand>() {
      @java.lang.Override
      public WriteCommand 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<WriteCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface Write2CommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.Write2Command)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
     * @return Whether the timestampValue field is set.
     */
    boolean hasTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
     * @return The timestampValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder();

    /**
     * <code>int32 user_id = 5;</code>
     * @return The userId.
     */
    int getUserId();
  }
  /**
   * <pre>
   * Same statuses correlation as WriteCommand.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.Write2Command}
   */
  public static final class Write2Command extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.Write2Command)
      Write2CommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "Write2Command");
    }
    // Use Write2Command.newBuilder() to construct.
    private Write2Command(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Write2Command() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2Command_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2Command_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.Write2Command.class, mxaccess_gateway.v1.MxaccessGateway.Write2Command.Builder.class);
    }

    private int bitField0_;
    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int VALUE_FIELD_NUMBER = 3;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int TIMESTAMP_VALUE_FIELD_NUMBER = 4;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
     * @return Whether the timestampValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
     * @return The timestampValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }

    public static final int USER_ID_FIELD_NUMBER = 5;
    private int userId_ = 0;
    /**
     * <code>int32 user_id = 5;</code>
     * @return The userId.
     */
    @java.lang.Override
    public int getUserId() {
      return userId_;
    }

    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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(2, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(4, getTimestampValue());
      }
      if (userId_ != 0) {
        output.writeInt32(5, userId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getTimestampValue());
      }
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, userId_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.Write2Command)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.Write2Command other = (mxaccess_gateway.v1.MxaccessGateway.Write2Command) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (hasTimestampValue() != other.hasTimestampValue()) return false;
      if (hasTimestampValue()) {
        if (!getTimestampValue()
            .equals(other.getTimestampValue())) return false;
      }
      if (getUserId()
          != other.getUserId()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      if (hasTimestampValue()) {
        hash = (37 * hash) + TIMESTAMP_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getTimestampValue().hashCode();
      }
      hash = (37 * hash) + USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command 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 mxaccess_gateway.v1.MxaccessGateway.Write2Command parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command 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 mxaccess_gateway.v1.MxaccessGateway.Write2Command parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command 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(mxaccess_gateway.v1.MxaccessGateway.Write2Command 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;
    }
    /**
     * <pre>
     * Same statuses correlation as WriteCommand.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.Write2Command}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.Write2Command)
        mxaccess_gateway.v1.MxaccessGateway.Write2CommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2Command_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2Command_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.Write2Command.class, mxaccess_gateway.v1.MxaccessGateway.Write2Command.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.Write2Command.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
          internalGetTimestampValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        userId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2Command_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2Command getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2Command build() {
        mxaccess_gateway.v1.MxaccessGateway.Write2Command result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2Command buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.Write2Command result = new mxaccess_gateway.v1.MxaccessGateway.Write2Command(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.Write2Command result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.timestampValue_ = timestampValueBuilder_ == null
              ? timestampValue_
              : timestampValueBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.userId_ = userId_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.Write2Command) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.Write2Command)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.Write2Command other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.Write2Command.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.hasTimestampValue()) {
          mergeTimestampValue(other.getTimestampValue());
        }
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    internalGetTimestampValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                userId_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> timestampValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       * @return Whether the timestampValue field is set.
       */
      public boolean hasTimestampValue() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       * @return The timestampValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
        if (timestampValueBuilder_ == null) {
          return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        } else {
          return timestampValueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       */
      public Builder setTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timestampValue_ = value;
        } else {
          timestampValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       */
      public Builder setTimestampValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (timestampValueBuilder_ == null) {
          timestampValue_ = builderForValue.build();
        } else {
          timestampValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       */
      public Builder mergeTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            timestampValue_ != null &&
            timestampValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getTimestampValueBuilder().mergeFrom(value);
          } else {
            timestampValue_ = value;
          }
        } else {
          timestampValueBuilder_.mergeFrom(value);
        }
        if (timestampValue_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       */
      public Builder clearTimestampValue() {
        bitField0_ = (bitField0_ & ~0x00000008);
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getTimestampValueBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetTimestampValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
        if (timestampValueBuilder_ != null) {
          return timestampValueBuilder_.getMessageOrBuilder();
        } else {
          return timestampValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetTimestampValueFieldBuilder() {
        if (timestampValueBuilder_ == null) {
          timestampValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getTimestampValue(),
                  getParentForChildren(),
                  isClean());
          timestampValue_ = null;
        }
        return timestampValueBuilder_;
      }

      private int userId_ ;
      /**
       * <code>int32 user_id = 5;</code>
       * @return The userId.
       */
      @java.lang.Override
      public int getUserId() {
        return userId_;
      }
      /**
       * <code>int32 user_id = 5;</code>
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 user_id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        userId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.Write2Command)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.Write2Command)
    private static final mxaccess_gateway.v1.MxaccessGateway.Write2Command DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.Write2Command();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2Command getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Write2Command>
        PARSER = new com.google.protobuf.AbstractParser<Write2Command>() {
      @java.lang.Override
      public Write2Command 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<Write2Command> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2Command getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteSecuredCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteSecuredCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>int32 current_user_id = 3;</code>
     * @return The currentUserId.
     */
    int getCurrentUserId();

    /**
     * <code>int32 verifier_user_id = 4;</code>
     * @return The verifierUserId.
     */
    int getVerifierUserId();

    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();
  }
  /**
   * <pre>
   * The unary reply's statuses field carries the correlated OnWriteComplete
   * outcome when it arrives within the worker's bounded wait — see
   * MxCommandReply.statuses.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.WriteSecuredCommand}
   */
  public static final class WriteSecuredCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteSecuredCommand)
      WriteSecuredCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteSecuredCommand");
    }
    // Use WriteSecuredCommand.newBuilder() to construct.
    private WriteSecuredCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteSecuredCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.Builder.class);
    }

    private int bitField0_;
    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int CURRENT_USER_ID_FIELD_NUMBER = 3;
    private int currentUserId_ = 0;
    /**
     * <code>int32 current_user_id = 3;</code>
     * @return The currentUserId.
     */
    @java.lang.Override
    public int getCurrentUserId() {
      return currentUserId_;
    }

    public static final int VERIFIER_USER_ID_FIELD_NUMBER = 4;
    private int verifierUserId_ = 0;
    /**
     * <code>int32 verifier_user_id = 4;</code>
     * @return The verifierUserId.
     */
    @java.lang.Override
    public int getVerifierUserId() {
      return verifierUserId_;
    }

    public static final int VALUE_FIELD_NUMBER = 5;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(2, itemHandle_);
      }
      if (currentUserId_ != 0) {
        output.writeInt32(3, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        output.writeInt32(4, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(5, getValue());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      if (currentUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getValue());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand other = (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (getCurrentUserId()
          != other.getCurrentUserId()) return false;
      if (getVerifierUserId()
          != other.getVerifierUserId()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (37 * hash) + CURRENT_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentUserId();
      hash = (37 * hash) + VERIFIER_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getVerifierUserId();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand 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(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand 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;
    }
    /**
     * <pre>
     * The unary reply's statuses field carries the correlated OnWriteComplete
     * outcome when it arrives within the worker's bounded wait — see
     * MxCommandReply.statuses.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.WriteSecuredCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteSecuredCommand)
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        currentUserId_ = 0;
        verifierUserId_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand result = new mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.currentUserId_ = currentUserId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.verifierUserId_ = verifierUserId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.getCurrentUserId() != 0) {
          setCurrentUserId(other.getCurrentUserId());
        }
        if (other.getVerifierUserId() != 0) {
          setVerifierUserId(other.getVerifierUserId());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                currentUserId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                verifierUserId_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private int currentUserId_ ;
      /**
       * <code>int32 current_user_id = 3;</code>
       * @return The currentUserId.
       */
      @java.lang.Override
      public int getCurrentUserId() {
        return currentUserId_;
      }
      /**
       * <code>int32 current_user_id = 3;</code>
       * @param value The currentUserId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentUserId(int value) {

        currentUserId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 current_user_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentUserId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        currentUserId_ = 0;
        onChanged();
        return this;
      }

      private int verifierUserId_ ;
      /**
       * <code>int32 verifier_user_id = 4;</code>
       * @return The verifierUserId.
       */
      @java.lang.Override
      public int getVerifierUserId() {
        return verifierUserId_;
      }
      /**
       * <code>int32 verifier_user_id = 4;</code>
       * @param value The verifierUserId to set.
       * @return This builder for chaining.
       */
      public Builder setVerifierUserId(int value) {

        verifierUserId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 verifier_user_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerifierUserId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        verifierUserId_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000010);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteSecuredCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteSecuredCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteSecuredCommand>
        PARSER = new com.google.protobuf.AbstractParser<WriteSecuredCommand>() {
      @java.lang.Override
      public WriteSecuredCommand 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<WriteSecuredCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteSecured2CommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteSecured2Command)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>int32 current_user_id = 3;</code>
     * @return The currentUserId.
     */
    int getCurrentUserId();

    /**
     * <code>int32 verifier_user_id = 4;</code>
     * @return The verifierUserId.
     */
    int getVerifierUserId();

    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
     * @return Whether the timestampValue field is set.
     */
    boolean hasTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
     * @return The timestampValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder();
  }
  /**
   * <pre>
   * The unary reply's statuses field carries the correlated OnWriteComplete
   * outcome when it arrives within the worker's bounded wait — see
   * MxCommandReply.statuses.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.WriteSecured2Command}
   */
  public static final class WriteSecured2Command extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteSecured2Command)
      WriteSecured2CommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteSecured2Command");
    }
    // Use WriteSecured2Command.newBuilder() to construct.
    private WriteSecured2Command(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteSecured2Command() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2Command_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2Command_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.Builder.class);
    }

    private int bitField0_;
    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int CURRENT_USER_ID_FIELD_NUMBER = 3;
    private int currentUserId_ = 0;
    /**
     * <code>int32 current_user_id = 3;</code>
     * @return The currentUserId.
     */
    @java.lang.Override
    public int getCurrentUserId() {
      return currentUserId_;
    }

    public static final int VERIFIER_USER_ID_FIELD_NUMBER = 4;
    private int verifierUserId_ = 0;
    /**
     * <code>int32 verifier_user_id = 4;</code>
     * @return The verifierUserId.
     */
    @java.lang.Override
    public int getVerifierUserId() {
      return verifierUserId_;
    }

    public static final int VALUE_FIELD_NUMBER = 5;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int TIMESTAMP_VALUE_FIELD_NUMBER = 6;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
     * @return Whether the timestampValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
     * @return The timestampValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }

    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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(2, itemHandle_);
      }
      if (currentUserId_ != 0) {
        output.writeInt32(3, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        output.writeInt32(4, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(5, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(6, getTimestampValue());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      if (currentUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getTimestampValue());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command other = (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (getCurrentUserId()
          != other.getCurrentUserId()) return false;
      if (getVerifierUserId()
          != other.getVerifierUserId()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (hasTimestampValue() != other.hasTimestampValue()) return false;
      if (hasTimestampValue()) {
        if (!getTimestampValue()
            .equals(other.getTimestampValue())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (37 * hash) + CURRENT_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentUserId();
      hash = (37 * hash) + VERIFIER_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getVerifierUserId();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      if (hasTimestampValue()) {
        hash = (37 * hash) + TIMESTAMP_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getTimestampValue().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command 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(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command 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;
    }
    /**
     * <pre>
     * The unary reply's statuses field carries the correlated OnWriteComplete
     * outcome when it arrives within the worker's bounded wait — see
     * MxCommandReply.statuses.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.WriteSecured2Command}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteSecured2Command)
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2CommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2Command_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2Command_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
          internalGetTimestampValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        currentUserId_ = 0;
        verifierUserId_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2Command_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command result = new mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.currentUserId_ = currentUserId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.verifierUserId_ = verifierUserId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.timestampValue_ = timestampValueBuilder_ == null
              ? timestampValue_
              : timestampValueBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.getCurrentUserId() != 0) {
          setCurrentUserId(other.getCurrentUserId());
        }
        if (other.getVerifierUserId() != 0) {
          setVerifierUserId(other.getVerifierUserId());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.hasTimestampValue()) {
          mergeTimestampValue(other.getTimestampValue());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                currentUserId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                verifierUserId_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    internalGetTimestampValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private int currentUserId_ ;
      /**
       * <code>int32 current_user_id = 3;</code>
       * @return The currentUserId.
       */
      @java.lang.Override
      public int getCurrentUserId() {
        return currentUserId_;
      }
      /**
       * <code>int32 current_user_id = 3;</code>
       * @param value The currentUserId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentUserId(int value) {

        currentUserId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 current_user_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentUserId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        currentUserId_ = 0;
        onChanged();
        return this;
      }

      private int verifierUserId_ ;
      /**
       * <code>int32 verifier_user_id = 4;</code>
       * @return The verifierUserId.
       */
      @java.lang.Override
      public int getVerifierUserId() {
        return verifierUserId_;
      }
      /**
       * <code>int32 verifier_user_id = 4;</code>
       * @param value The verifierUserId to set.
       * @return This builder for chaining.
       */
      public Builder setVerifierUserId(int value) {

        verifierUserId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 verifier_user_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerifierUserId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        verifierUserId_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000010);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> timestampValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       * @return Whether the timestampValue field is set.
       */
      public boolean hasTimestampValue() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       * @return The timestampValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
        if (timestampValueBuilder_ == null) {
          return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        } else {
          return timestampValueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       */
      public Builder setTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timestampValue_ = value;
        } else {
          timestampValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       */
      public Builder setTimestampValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (timestampValueBuilder_ == null) {
          timestampValue_ = builderForValue.build();
        } else {
          timestampValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       */
      public Builder mergeTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            timestampValue_ != null &&
            timestampValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getTimestampValueBuilder().mergeFrom(value);
          } else {
            timestampValue_ = value;
          }
        } else {
          timestampValueBuilder_.mergeFrom(value);
        }
        if (timestampValue_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       */
      public Builder clearTimestampValue() {
        bitField0_ = (bitField0_ & ~0x00000020);
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getTimestampValueBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return internalGetTimestampValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
        if (timestampValueBuilder_ != null) {
          return timestampValueBuilder_.getMessageOrBuilder();
        } else {
          return timestampValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetTimestampValueFieldBuilder() {
        if (timestampValueBuilder_ == null) {
          timestampValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getTimestampValue(),
                  getParentForChildren(),
                  isClean());
          timestampValue_ = null;
        }
        return timestampValueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteSecured2Command)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteSecured2Command)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteSecured2Command>
        PARSER = new com.google.protobuf.AbstractParser<WriteSecured2Command>() {
      @java.lang.Override
      public WriteSecured2Command 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<WriteSecured2Command> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2Command getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AuthenticateUserCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AuthenticateUserCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>string verify_user = 2;</code>
     * @return The verifyUser.
     */
    java.lang.String getVerifyUser();
    /**
     * <code>string verify_user = 2;</code>
     * @return The bytes for verifyUser.
     */
    com.google.protobuf.ByteString
        getVerifyUserBytes();

    /**
     * <pre>
     * Raw MXAccess credential. Implementations must keep this field out of logs,
     * metrics labels, command lines, and diagnostics.
     * </pre>
     *
     * <code>string verify_user_password = 3;</code>
     * @return The verifyUserPassword.
     */
    java.lang.String getVerifyUserPassword();
    /**
     * <pre>
     * Raw MXAccess credential. Implementations must keep this field out of logs,
     * metrics labels, command lines, and diagnostics.
     * </pre>
     *
     * <code>string verify_user_password = 3;</code>
     * @return The bytes for verifyUserPassword.
     */
    com.google.protobuf.ByteString
        getVerifyUserPasswordBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AuthenticateUserCommand}
   */
  public static final class AuthenticateUserCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AuthenticateUserCommand)
      AuthenticateUserCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AuthenticateUserCommand");
    }
    // Use AuthenticateUserCommand.newBuilder() to construct.
    private AuthenticateUserCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AuthenticateUserCommand() {
      verifyUser_ = "";
      verifyUserPassword_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.class, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int VERIFY_USER_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object verifyUser_ = "";
    /**
     * <code>string verify_user = 2;</code>
     * @return The verifyUser.
     */
    @java.lang.Override
    public java.lang.String getVerifyUser() {
      java.lang.Object ref = verifyUser_;
      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();
        verifyUser_ = s;
        return s;
      }
    }
    /**
     * <code>string verify_user = 2;</code>
     * @return The bytes for verifyUser.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVerifyUserBytes() {
      java.lang.Object ref = verifyUser_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        verifyUser_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERIFY_USER_PASSWORD_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object verifyUserPassword_ = "";
    /**
     * <pre>
     * Raw MXAccess credential. Implementations must keep this field out of logs,
     * metrics labels, command lines, and diagnostics.
     * </pre>
     *
     * <code>string verify_user_password = 3;</code>
     * @return The verifyUserPassword.
     */
    @java.lang.Override
    public java.lang.String getVerifyUserPassword() {
      java.lang.Object ref = verifyUserPassword_;
      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();
        verifyUserPassword_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Raw MXAccess credential. Implementations must keep this field out of logs,
     * metrics labels, command lines, and diagnostics.
     * </pre>
     *
     * <code>string verify_user_password = 3;</code>
     * @return The bytes for verifyUserPassword.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVerifyUserPasswordBytes() {
      java.lang.Object ref = verifyUserPassword_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        verifyUserPassword_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(verifyUser_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, verifyUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(verifyUserPassword_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, verifyUserPassword_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(verifyUser_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, verifyUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(verifyUserPassword_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, verifyUserPassword_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand other = (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getVerifyUser()
          .equals(other.getVerifyUser())) return false;
      if (!getVerifyUserPassword()
          .equals(other.getVerifyUserPassword())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + VERIFY_USER_FIELD_NUMBER;
      hash = (53 * hash) + getVerifyUser().hashCode();
      hash = (37 * hash) + VERIFY_USER_PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getVerifyUserPassword().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand 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 mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand 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 mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand 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(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand 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 mxaccess_gateway.v1.AuthenticateUserCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AuthenticateUserCommand)
        mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.class, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        verifyUser_ = "";
        verifyUserPassword_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand result = new mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.verifyUser_ = verifyUser_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.verifyUserPassword_ = verifyUserPassword_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.getVerifyUser().isEmpty()) {
          verifyUser_ = other.verifyUser_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getVerifyUserPassword().isEmpty()) {
          verifyUserPassword_ = other.verifyUserPassword_;
          bitField0_ |= 0x00000004;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                verifyUser_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                verifyUserPassword_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object verifyUser_ = "";
      /**
       * <code>string verify_user = 2;</code>
       * @return The verifyUser.
       */
      public java.lang.String getVerifyUser() {
        java.lang.Object ref = verifyUser_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          verifyUser_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string verify_user = 2;</code>
       * @return The bytes for verifyUser.
       */
      public com.google.protobuf.ByteString
          getVerifyUserBytes() {
        java.lang.Object ref = verifyUser_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          verifyUser_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string verify_user = 2;</code>
       * @param value The verifyUser to set.
       * @return This builder for chaining.
       */
      public Builder setVerifyUser(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        verifyUser_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string verify_user = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerifyUser() {
        verifyUser_ = getDefaultInstance().getVerifyUser();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string verify_user = 2;</code>
       * @param value The bytes for verifyUser to set.
       * @return This builder for chaining.
       */
      public Builder setVerifyUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        verifyUser_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object verifyUserPassword_ = "";
      /**
       * <pre>
       * Raw MXAccess credential. Implementations must keep this field out of logs,
       * metrics labels, command lines, and diagnostics.
       * </pre>
       *
       * <code>string verify_user_password = 3;</code>
       * @return The verifyUserPassword.
       */
      public java.lang.String getVerifyUserPassword() {
        java.lang.Object ref = verifyUserPassword_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          verifyUserPassword_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Raw MXAccess credential. Implementations must keep this field out of logs,
       * metrics labels, command lines, and diagnostics.
       * </pre>
       *
       * <code>string verify_user_password = 3;</code>
       * @return The bytes for verifyUserPassword.
       */
      public com.google.protobuf.ByteString
          getVerifyUserPasswordBytes() {
        java.lang.Object ref = verifyUserPassword_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          verifyUserPassword_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Raw MXAccess credential. Implementations must keep this field out of logs,
       * metrics labels, command lines, and diagnostics.
       * </pre>
       *
       * <code>string verify_user_password = 3;</code>
       * @param value The verifyUserPassword to set.
       * @return This builder for chaining.
       */
      public Builder setVerifyUserPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        verifyUserPassword_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Raw MXAccess credential. Implementations must keep this field out of logs,
       * metrics labels, command lines, and diagnostics.
       * </pre>
       *
       * <code>string verify_user_password = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerifyUserPassword() {
        verifyUserPassword_ = getDefaultInstance().getVerifyUserPassword();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Raw MXAccess credential. Implementations must keep this field out of logs,
       * metrics labels, command lines, and diagnostics.
       * </pre>
       *
       * <code>string verify_user_password = 3;</code>
       * @param value The bytes for verifyUserPassword to set.
       * @return This builder for chaining.
       */
      public Builder setVerifyUserPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        verifyUserPassword_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AuthenticateUserCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AuthenticateUserCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AuthenticateUserCommand>
        PARSER = new com.google.protobuf.AbstractParser<AuthenticateUserCommand>() {
      @java.lang.Override
      public AuthenticateUserCommand 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<AuthenticateUserCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ArchestrAUserToIdCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ArchestrAUserToIdCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>string user_id_guid = 2;</code>
     * @return The userIdGuid.
     */
    java.lang.String getUserIdGuid();
    /**
     * <code>string user_id_guid = 2;</code>
     * @return The bytes for userIdGuid.
     */
    com.google.protobuf.ByteString
        getUserIdGuidBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.ArchestrAUserToIdCommand}
   */
  public static final class ArchestrAUserToIdCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ArchestrAUserToIdCommand)
      ArchestrAUserToIdCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ArchestrAUserToIdCommand");
    }
    // Use ArchestrAUserToIdCommand.newBuilder() to construct.
    private ArchestrAUserToIdCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ArchestrAUserToIdCommand() {
      userIdGuid_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.class, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int USER_ID_GUID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object userIdGuid_ = "";
    /**
     * <code>string user_id_guid = 2;</code>
     * @return The userIdGuid.
     */
    @java.lang.Override
    public java.lang.String getUserIdGuid() {
      java.lang.Object ref = userIdGuid_;
      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();
        userIdGuid_ = s;
        return s;
      }
    }
    /**
     * <code>string user_id_guid = 2;</code>
     * @return The bytes for userIdGuid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUserIdGuidBytes() {
      java.lang.Object ref = userIdGuid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        userIdGuid_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(userIdGuid_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, userIdGuid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(userIdGuid_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, userIdGuid_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand other = (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getUserIdGuid()
          .equals(other.getUserIdGuid())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + USER_ID_GUID_FIELD_NUMBER;
      hash = (53 * hash) + getUserIdGuid().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand 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 mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand 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 mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand 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(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand 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 mxaccess_gateway.v1.ArchestrAUserToIdCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ArchestrAUserToIdCommand)
        mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.class, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        userIdGuid_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand result = new mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.userIdGuid_ = userIdGuid_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.getUserIdGuid().isEmpty()) {
          userIdGuid_ = other.userIdGuid_;
          bitField0_ |= 0x00000002;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                userIdGuid_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object userIdGuid_ = "";
      /**
       * <code>string user_id_guid = 2;</code>
       * @return The userIdGuid.
       */
      public java.lang.String getUserIdGuid() {
        java.lang.Object ref = userIdGuid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          userIdGuid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string user_id_guid = 2;</code>
       * @return The bytes for userIdGuid.
       */
      public com.google.protobuf.ByteString
          getUserIdGuidBytes() {
        java.lang.Object ref = userIdGuid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          userIdGuid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string user_id_guid = 2;</code>
       * @param value The userIdGuid to set.
       * @return This builder for chaining.
       */
      public Builder setUserIdGuid(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        userIdGuid_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string user_id_guid = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserIdGuid() {
        userIdGuid_ = getDefaultInstance().getUserIdGuid();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string user_id_guid = 2;</code>
       * @param value The bytes for userIdGuid to set.
       * @return This builder for chaining.
       */
      public Builder setUserIdGuidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        userIdGuid_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ArchestrAUserToIdCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ArchestrAUserToIdCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ArchestrAUserToIdCommand>
        PARSER = new com.google.protobuf.AbstractParser<ArchestrAUserToIdCommand>() {
      @java.lang.Override
      public ArchestrAUserToIdCommand 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<ArchestrAUserToIdCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddItemBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AddItemBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return A list containing the tagAddresses.
     */
    java.util.List<java.lang.String>
        getTagAddressesList();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return The count of tagAddresses.
     */
    int getTagAddressesCount();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the element to return.
     * @return The tagAddresses at the given index.
     */
    java.lang.String getTagAddresses(int index);
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagAddresses at the given index.
     */
    com.google.protobuf.ByteString
        getTagAddressesBytes(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AddItemBulkCommand}
   */
  public static final class AddItemBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AddItemBulkCommand)
      AddItemBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AddItemBulkCommand");
    }
    // Use AddItemBulkCommand.newBuilder() to construct.
    private AddItemBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AddItemBulkCommand() {
      tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int TAG_ADDRESSES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList tagAddresses_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return A list containing the tagAddresses.
     */
    public com.google.protobuf.ProtocolStringList
        getTagAddressesList() {
      return tagAddresses_;
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return The count of tagAddresses.
     */
    public int getTagAddressesCount() {
      return tagAddresses_.size();
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the element to return.
     * @return The tagAddresses at the given index.
     */
    public java.lang.String getTagAddresses(int index) {
      return tagAddresses_.get(index);
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagAddresses at the given index.
     */
    public com.google.protobuf.ByteString
        getTagAddressesBytes(int index) {
      return tagAddresses_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      for (int i = 0; i < tagAddresses_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, tagAddresses_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tagAddresses_.size(); i++) {
          dataSize += computeStringSizeNoTag(tagAddresses_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTagAddressesList().size();
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getTagAddressesList()
          .equals(other.getTagAddressesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getTagAddressesCount() > 0) {
        hash = (37 * hash) + TAG_ADDRESSES_FIELD_NUMBER;
        hash = (53 * hash) + getTagAddressesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand 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 mxaccess_gateway.v1.AddItemBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AddItemBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        tagAddresses_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          tagAddresses_.makeImmutable();
          result.tagAddresses_ = tagAddresses_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.tagAddresses_.isEmpty()) {
          if (tagAddresses_.isEmpty()) {
            tagAddresses_ = other.tagAddresses_;
            bitField0_ |= 0x00000002;
          } else {
            ensureTagAddressesIsMutable();
            tagAddresses_.addAll(other.tagAddresses_);
          }
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTagAddressesIsMutable();
                tagAddresses_.add(s);
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureTagAddressesIsMutable() {
        if (!tagAddresses_.isModifiable()) {
          tagAddresses_ = new com.google.protobuf.LazyStringArrayList(tagAddresses_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return A list containing the tagAddresses.
       */
      public com.google.protobuf.ProtocolStringList
          getTagAddressesList() {
        tagAddresses_.makeImmutable();
        return tagAddresses_;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return The count of tagAddresses.
       */
      public int getTagAddressesCount() {
        return tagAddresses_.size();
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index of the element to return.
       * @return The tagAddresses at the given index.
       */
      public java.lang.String getTagAddresses(int index) {
        return tagAddresses_.get(index);
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the tagAddresses at the given index.
       */
      public com.google.protobuf.ByteString
          getTagAddressesBytes(int index) {
        return tagAddresses_.getByteString(index);
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index to set the value at.
       * @param value The tagAddresses to set.
       * @return This builder for chaining.
       */
      public Builder setTagAddresses(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTagAddressesIsMutable();
        tagAddresses_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param value The tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addTagAddresses(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTagAddressesIsMutable();
        tagAddresses_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param values The tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addAllTagAddresses(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagAddressesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tagAddresses_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagAddresses() {
        tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param value The bytes of the tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addTagAddressesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureTagAddressesIsMutable();
        tagAddresses_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AddItemBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AddItemBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AddItemBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<AddItemBulkCommand>() {
      @java.lang.Override
      public AddItemBulkCommand 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<AddItemBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AdviseItemBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AdviseItemBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    java.util.List<java.lang.Integer> getItemHandlesList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    int getItemHandlesCount();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    int getItemHandles(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AdviseItemBulkCommand}
   */
  public static final class AdviseItemBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AdviseItemBulkCommand)
      AdviseItemBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AdviseItemBulkCommand");
    }
    // Use AdviseItemBulkCommand.newBuilder() to construct.
    private AdviseItemBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AdviseItemBulkCommand() {
      itemHandles_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList itemHandles_ =
        emptyIntList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getItemHandlesList() {
      return itemHandles_;
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    public int getItemHandlesCount() {
      return itemHandles_.size();
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    public int getItemHandles(int index) {
      return itemHandles_.getInt(index);
    }
    private int itemHandlesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (getItemHandlesList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(itemHandlesMemoizedSerializedSize);
      }
      for (int i = 0; i < itemHandles_.size(); i++) {
        output.writeInt32NoTag(itemHandles_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < itemHandles_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(itemHandles_.getInt(i));
        }
        size += dataSize;
        if (!getItemHandlesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        itemHandlesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getItemHandlesList()
          .equals(other.getItemHandlesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getItemHandlesCount() > 0) {
        hash = (37 * hash) + ITEM_HANDLES_FIELD_NUMBER;
        hash = (53 * hash) + getItemHandlesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand 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 mxaccess_gateway.v1.AdviseItemBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AdviseItemBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandles_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          itemHandles_.makeImmutable();
          result.itemHandles_ = itemHandles_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.itemHandles_.isEmpty()) {
          if (itemHandles_.isEmpty()) {
            itemHandles_ = other.itemHandles_;
            itemHandles_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureItemHandlesIsMutable();
            itemHandles_.addAll(other.itemHandles_);
          }
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int v = input.readInt32();
                ensureItemHandlesIsMutable();
                itemHandles_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureItemHandlesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  itemHandles_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList itemHandles_ = emptyIntList();
      private void ensureItemHandlesIsMutable() {
        if (!itemHandles_.isModifiable()) {
          itemHandles_ = makeMutableCopy(itemHandles_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return A list containing the itemHandles.
       */
      public java.util.List<java.lang.Integer>
          getItemHandlesList() {
        itemHandles_.makeImmutable();
        return itemHandles_;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return The count of itemHandles.
       */
      public int getItemHandlesCount() {
        return itemHandles_.size();
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index of the element to return.
       * @return The itemHandles at the given index.
       */
      public int getItemHandles(int index) {
        return itemHandles_.getInt(index);
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index to set the value at.
       * @param value The itemHandles to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandles(
          int index, int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param value The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addItemHandles(int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param values The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addAllItemHandles(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureItemHandlesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, itemHandles_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandles() {
        itemHandles_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AdviseItemBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AdviseItemBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AdviseItemBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<AdviseItemBulkCommand>() {
      @java.lang.Override
      public AdviseItemBulkCommand 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<AdviseItemBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AdviseItemBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RemoveItemBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.RemoveItemBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    java.util.List<java.lang.Integer> getItemHandlesList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    int getItemHandlesCount();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    int getItemHandles(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.RemoveItemBulkCommand}
   */
  public static final class RemoveItemBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.RemoveItemBulkCommand)
      RemoveItemBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "RemoveItemBulkCommand");
    }
    // Use RemoveItemBulkCommand.newBuilder() to construct.
    private RemoveItemBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private RemoveItemBulkCommand() {
      itemHandles_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList itemHandles_ =
        emptyIntList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getItemHandlesList() {
      return itemHandles_;
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    public int getItemHandlesCount() {
      return itemHandles_.size();
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    public int getItemHandles(int index) {
      return itemHandles_.getInt(index);
    }
    private int itemHandlesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (getItemHandlesList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(itemHandlesMemoizedSerializedSize);
      }
      for (int i = 0; i < itemHandles_.size(); i++) {
        output.writeInt32NoTag(itemHandles_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < itemHandles_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(itemHandles_.getInt(i));
        }
        size += dataSize;
        if (!getItemHandlesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        itemHandlesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getItemHandlesList()
          .equals(other.getItemHandlesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getItemHandlesCount() > 0) {
        hash = (37 * hash) + ITEM_HANDLES_FIELD_NUMBER;
        hash = (53 * hash) + getItemHandlesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand 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 mxaccess_gateway.v1.RemoveItemBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.RemoveItemBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandles_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          itemHandles_.makeImmutable();
          result.itemHandles_ = itemHandles_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.itemHandles_.isEmpty()) {
          if (itemHandles_.isEmpty()) {
            itemHandles_ = other.itemHandles_;
            itemHandles_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureItemHandlesIsMutable();
            itemHandles_.addAll(other.itemHandles_);
          }
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int v = input.readInt32();
                ensureItemHandlesIsMutable();
                itemHandles_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureItemHandlesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  itemHandles_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList itemHandles_ = emptyIntList();
      private void ensureItemHandlesIsMutable() {
        if (!itemHandles_.isModifiable()) {
          itemHandles_ = makeMutableCopy(itemHandles_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return A list containing the itemHandles.
       */
      public java.util.List<java.lang.Integer>
          getItemHandlesList() {
        itemHandles_.makeImmutable();
        return itemHandles_;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return The count of itemHandles.
       */
      public int getItemHandlesCount() {
        return itemHandles_.size();
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index of the element to return.
       * @return The itemHandles at the given index.
       */
      public int getItemHandles(int index) {
        return itemHandles_.getInt(index);
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index to set the value at.
       * @param value The itemHandles to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandles(
          int index, int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param value The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addItemHandles(int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param values The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addAllItemHandles(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureItemHandlesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, itemHandles_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandles() {
        itemHandles_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.RemoveItemBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.RemoveItemBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RemoveItemBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<RemoveItemBulkCommand>() {
      @java.lang.Override
      public RemoveItemBulkCommand 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<RemoveItemBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RemoveItemBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UnAdviseItemBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.UnAdviseItemBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    java.util.List<java.lang.Integer> getItemHandlesList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    int getItemHandlesCount();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    int getItemHandles(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.UnAdviseItemBulkCommand}
   */
  public static final class UnAdviseItemBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.UnAdviseItemBulkCommand)
      UnAdviseItemBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "UnAdviseItemBulkCommand");
    }
    // Use UnAdviseItemBulkCommand.newBuilder() to construct.
    private UnAdviseItemBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private UnAdviseItemBulkCommand() {
      itemHandles_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList itemHandles_ =
        emptyIntList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getItemHandlesList() {
      return itemHandles_;
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    public int getItemHandlesCount() {
      return itemHandles_.size();
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    public int getItemHandles(int index) {
      return itemHandles_.getInt(index);
    }
    private int itemHandlesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (getItemHandlesList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(itemHandlesMemoizedSerializedSize);
      }
      for (int i = 0; i < itemHandles_.size(); i++) {
        output.writeInt32NoTag(itemHandles_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < itemHandles_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(itemHandles_.getInt(i));
        }
        size += dataSize;
        if (!getItemHandlesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        itemHandlesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getItemHandlesList()
          .equals(other.getItemHandlesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getItemHandlesCount() > 0) {
        hash = (37 * hash) + ITEM_HANDLES_FIELD_NUMBER;
        hash = (53 * hash) + getItemHandlesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand 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 mxaccess_gateway.v1.UnAdviseItemBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.UnAdviseItemBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandles_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          itemHandles_.makeImmutable();
          result.itemHandles_ = itemHandles_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.itemHandles_.isEmpty()) {
          if (itemHandles_.isEmpty()) {
            itemHandles_ = other.itemHandles_;
            itemHandles_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureItemHandlesIsMutable();
            itemHandles_.addAll(other.itemHandles_);
          }
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int v = input.readInt32();
                ensureItemHandlesIsMutable();
                itemHandles_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureItemHandlesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  itemHandles_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList itemHandles_ = emptyIntList();
      private void ensureItemHandlesIsMutable() {
        if (!itemHandles_.isModifiable()) {
          itemHandles_ = makeMutableCopy(itemHandles_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return A list containing the itemHandles.
       */
      public java.util.List<java.lang.Integer>
          getItemHandlesList() {
        itemHandles_.makeImmutable();
        return itemHandles_;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return The count of itemHandles.
       */
      public int getItemHandlesCount() {
        return itemHandles_.size();
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index of the element to return.
       * @return The itemHandles at the given index.
       */
      public int getItemHandles(int index) {
        return itemHandles_.getInt(index);
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index to set the value at.
       * @param value The itemHandles to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandles(
          int index, int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param value The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addItemHandles(int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param values The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addAllItemHandles(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureItemHandlesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, itemHandles_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandles() {
        itemHandles_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.UnAdviseItemBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.UnAdviseItemBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UnAdviseItemBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<UnAdviseItemBulkCommand>() {
      @java.lang.Override
      public UnAdviseItemBulkCommand 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<UnAdviseItemBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnAdviseItemBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SubscribeBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.SubscribeBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return A list containing the tagAddresses.
     */
    java.util.List<java.lang.String>
        getTagAddressesList();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return The count of tagAddresses.
     */
    int getTagAddressesCount();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the element to return.
     * @return The tagAddresses at the given index.
     */
    java.lang.String getTagAddresses(int index);
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagAddresses at the given index.
     */
    com.google.protobuf.ByteString
        getTagAddressesBytes(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.SubscribeBulkCommand}
   */
  public static final class SubscribeBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.SubscribeBulkCommand)
      SubscribeBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SubscribeBulkCommand");
    }
    // Use SubscribeBulkCommand.newBuilder() to construct.
    private SubscribeBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SubscribeBulkCommand() {
      tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int TAG_ADDRESSES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList tagAddresses_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return A list containing the tagAddresses.
     */
    public com.google.protobuf.ProtocolStringList
        getTagAddressesList() {
      return tagAddresses_;
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return The count of tagAddresses.
     */
    public int getTagAddressesCount() {
      return tagAddresses_.size();
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the element to return.
     * @return The tagAddresses at the given index.
     */
    public java.lang.String getTagAddresses(int index) {
      return tagAddresses_.get(index);
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagAddresses at the given index.
     */
    public com.google.protobuf.ByteString
        getTagAddressesBytes(int index) {
      return tagAddresses_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      for (int i = 0; i < tagAddresses_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, tagAddresses_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tagAddresses_.size(); i++) {
          dataSize += computeStringSizeNoTag(tagAddresses_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTagAddressesList().size();
      }
      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 mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getTagAddressesList()
          .equals(other.getTagAddressesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getTagAddressesCount() > 0) {
        hash = (37 * hash) + TAG_ADDRESSES_FIELD_NUMBER;
        hash = (53 * hash) + getTagAddressesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand 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 mxaccess_gateway.v1.SubscribeBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.SubscribeBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        tagAddresses_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          tagAddresses_.makeImmutable();
          result.tagAddresses_ = tagAddresses_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.tagAddresses_.isEmpty()) {
          if (tagAddresses_.isEmpty()) {
            tagAddresses_ = other.tagAddresses_;
            bitField0_ |= 0x00000002;
          } else {
            ensureTagAddressesIsMutable();
            tagAddresses_.addAll(other.tagAddresses_);
          }
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTagAddressesIsMutable();
                tagAddresses_.add(s);
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureTagAddressesIsMutable() {
        if (!tagAddresses_.isModifiable()) {
          tagAddresses_ = new com.google.protobuf.LazyStringArrayList(tagAddresses_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return A list containing the tagAddresses.
       */
      public com.google.protobuf.ProtocolStringList
          getTagAddressesList() {
        tagAddresses_.makeImmutable();
        return tagAddresses_;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return The count of tagAddresses.
       */
      public int getTagAddressesCount() {
        return tagAddresses_.size();
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index of the element to return.
       * @return The tagAddresses at the given index.
       */
      public java.lang.String getTagAddresses(int index) {
        return tagAddresses_.get(index);
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the tagAddresses at the given index.
       */
      public com.google.protobuf.ByteString
          getTagAddressesBytes(int index) {
        return tagAddresses_.getByteString(index);
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index to set the value at.
       * @param value The tagAddresses to set.
       * @return This builder for chaining.
       */
      public Builder setTagAddresses(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTagAddressesIsMutable();
        tagAddresses_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param value The tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addTagAddresses(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTagAddressesIsMutable();
        tagAddresses_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param values The tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addAllTagAddresses(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagAddressesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tagAddresses_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagAddresses() {
        tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param value The bytes of the tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addTagAddressesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureTagAddressesIsMutable();
        tagAddresses_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.SubscribeBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.SubscribeBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SubscribeBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<SubscribeBulkCommand>() {
      @java.lang.Override
      public SubscribeBulkCommand 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<SubscribeBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SubscribeAlarmsCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.SubscribeAlarmsCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string subscription_expression = 1;</code>
     * @return The subscriptionExpression.
     */
    java.lang.String getSubscriptionExpression();
    /**
     * <code>string subscription_expression = 1;</code>
     * @return The bytes for subscriptionExpression.
     */
    com.google.protobuf.ByteString
        getSubscriptionExpressionBytes();

    /**
     * <pre>
     * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
     * @return The enum numeric value on the wire for forcedMode.
     */
    int getForcedModeValue();
    /**
     * <pre>
     * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
     * @return The forcedMode.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getForcedMode();

    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget> 
        getWatchListList();
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget getWatchList(int index);
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    int getWatchListCount();
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder> 
        getWatchListOrBuilderList();
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder getWatchListOrBuilder(
        int index);

    /**
     * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
     * @return Whether the failover field is set.
     */
    boolean hasFailover();
    /**
     * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
     * @return The failover.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig getFailover();
    /**
     * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfigOrBuilder getFailoverOrBuilder();
  }
  /**
   * <pre>
   * Subscribe the worker's alarm consumer to an AVEVA alarm provider.
   * Subscription expression follows the canonical
   * `&#92;&#92;&lt;machine&gt;&#92;Galaxy!&lt;area&gt;` format (literal "Galaxy" provider). The
   * worker spins up a wnwrapConsumer-backed subscription on its STA on
   * first call; subsequent calls are an error (use UnsubscribeAlarms then
   * SubscribeAlarms to reconfigure).
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.SubscribeAlarmsCommand}
   */
  public static final class SubscribeAlarmsCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.SubscribeAlarmsCommand)
      SubscribeAlarmsCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SubscribeAlarmsCommand");
    }
    // Use SubscribeAlarmsCommand.newBuilder() to construct.
    private SubscribeAlarmsCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SubscribeAlarmsCommand() {
      subscriptionExpression_ = "";
      forcedMode_ = 0;
      watchList_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.class, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.Builder.class);
    }

    private int bitField0_;
    public static final int SUBSCRIPTION_EXPRESSION_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object subscriptionExpression_ = "";
    /**
     * <code>string subscription_expression = 1;</code>
     * @return The subscriptionExpression.
     */
    @java.lang.Override
    public java.lang.String getSubscriptionExpression() {
      java.lang.Object ref = subscriptionExpression_;
      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();
        subscriptionExpression_ = s;
        return s;
      }
    }
    /**
     * <code>string subscription_expression = 1;</code>
     * @return The bytes for subscriptionExpression.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSubscriptionExpressionBytes() {
      java.lang.Object ref = subscriptionExpression_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        subscriptionExpression_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FORCED_MODE_FIELD_NUMBER = 2;
    private int forcedMode_ = 0;
    /**
     * <pre>
     * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
     * @return The enum numeric value on the wire for forcedMode.
     */
    @java.lang.Override public int getForcedModeValue() {
      return forcedMode_;
    }
    /**
     * <pre>
     * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
     * @return The forcedMode.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getForcedMode() {
      mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(forcedMode_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
    }

    public static final int WATCH_LIST_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget> watchList_;
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget> getWatchListList() {
      return watchList_;
    }
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder> 
        getWatchListOrBuilderList() {
      return watchList_;
    }
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    @java.lang.Override
    public int getWatchListCount() {
      return watchList_.size();
    }
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget getWatchList(int index) {
      return watchList_.get(index);
    }
    /**
     * <pre>
     * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
     * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder getWatchListOrBuilder(
        int index) {
      return watchList_.get(index);
    }

    public static final int FAILOVER_FIELD_NUMBER = 4;
    private mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig failover_;
    /**
     * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
     * @return Whether the failover field is set.
     */
    @java.lang.Override
    public boolean hasFailover() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
     * @return The failover.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig getFailover() {
      return failover_ == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.getDefaultInstance() : failover_;
    }
    /**
     * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfigOrBuilder getFailoverOrBuilder() {
      return failover_ == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.getDefaultInstance() : failover_;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(subscriptionExpression_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, subscriptionExpression_);
      }
      if (forcedMode_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        output.writeEnum(2, forcedMode_);
      }
      for (int i = 0; i < watchList_.size(); i++) {
        output.writeMessage(3, watchList_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getFailover());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(subscriptionExpression_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, subscriptionExpression_);
      }
      if (forcedMode_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, forcedMode_);
      }
      for (int i = 0; i < watchList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, watchList_.get(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getFailover());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand other = (mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) obj;

      if (!getSubscriptionExpression()
          .equals(other.getSubscriptionExpression())) return false;
      if (forcedMode_ != other.forcedMode_) return false;
      if (!getWatchListList()
          .equals(other.getWatchListList())) return false;
      if (hasFailover() != other.hasFailover()) return false;
      if (hasFailover()) {
        if (!getFailover()
            .equals(other.getFailover())) 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();
      hash = (37 * hash) + SUBSCRIPTION_EXPRESSION_FIELD_NUMBER;
      hash = (53 * hash) + getSubscriptionExpression().hashCode();
      hash = (37 * hash) + FORCED_MODE_FIELD_NUMBER;
      hash = (53 * hash) + forcedMode_;
      if (getWatchListCount() > 0) {
        hash = (37 * hash) + WATCH_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getWatchListList().hashCode();
      }
      if (hasFailover()) {
        hash = (37 * hash) + FAILOVER_FIELD_NUMBER;
        hash = (53 * hash) + getFailover().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand 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 mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand 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 mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand 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(mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand 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;
    }
    /**
     * <pre>
     * Subscribe the worker's alarm consumer to an AVEVA alarm provider.
     * Subscription expression follows the canonical
     * `&#92;&#92;&lt;machine&gt;&#92;Galaxy!&lt;area&gt;` format (literal "Galaxy" provider). The
     * worker spins up a wnwrapConsumer-backed subscription on its STA on
     * first call; subsequent calls are an error (use UnsubscribeAlarms then
     * SubscribeAlarms to reconfigure).
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.SubscribeAlarmsCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.SubscribeAlarmsCommand)
        mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.class, mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetWatchListFieldBuilder();
          internalGetFailoverFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        subscriptionExpression_ = "";
        forcedMode_ = 0;
        if (watchListBuilder_ == null) {
          watchList_ = java.util.Collections.emptyList();
        } else {
          watchList_ = null;
          watchListBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        failover_ = null;
        if (failoverBuilder_ != null) {
          failoverBuilder_.dispose();
          failoverBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand result = new mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand result) {
        if (watchListBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            watchList_ = java.util.Collections.unmodifiableList(watchList_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.watchList_ = watchList_;
        } else {
          result.watchList_ = watchListBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.subscriptionExpression_ = subscriptionExpression_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.forcedMode_ = forcedMode_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.failover_ = failoverBuilder_ == null
              ? failover_
              : failoverBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand.getDefaultInstance()) return this;
        if (!other.getSubscriptionExpression().isEmpty()) {
          subscriptionExpression_ = other.subscriptionExpression_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.forcedMode_ != 0) {
          setForcedModeValue(other.getForcedModeValue());
        }
        if (watchListBuilder_ == null) {
          if (!other.watchList_.isEmpty()) {
            if (watchList_.isEmpty()) {
              watchList_ = other.watchList_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureWatchListIsMutable();
              watchList_.addAll(other.watchList_);
            }
            onChanged();
          }
        } else {
          if (!other.watchList_.isEmpty()) {
            if (watchListBuilder_.isEmpty()) {
              watchListBuilder_.dispose();
              watchListBuilder_ = null;
              watchList_ = other.watchList_;
              bitField0_ = (bitField0_ & ~0x00000004);
              watchListBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetWatchListFieldBuilder() : null;
            } else {
              watchListBuilder_.addAllMessages(other.watchList_);
            }
          }
        }
        if (other.hasFailover()) {
          mergeFailover(other.getFailover());
        }
        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: {
                subscriptionExpression_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                forcedMode_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.parser(),
                        extensionRegistry);
                if (watchListBuilder_ == null) {
                  ensureWatchListIsMutable();
                  watchList_.add(m);
                } else {
                  watchListBuilder_.addMessage(m);
                }
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    internalGetFailoverFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 subscriptionExpression_ = "";
      /**
       * <code>string subscription_expression = 1;</code>
       * @return The subscriptionExpression.
       */
      public java.lang.String getSubscriptionExpression() {
        java.lang.Object ref = subscriptionExpression_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          subscriptionExpression_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string subscription_expression = 1;</code>
       * @return The bytes for subscriptionExpression.
       */
      public com.google.protobuf.ByteString
          getSubscriptionExpressionBytes() {
        java.lang.Object ref = subscriptionExpression_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          subscriptionExpression_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string subscription_expression = 1;</code>
       * @param value The subscriptionExpression to set.
       * @return This builder for chaining.
       */
      public Builder setSubscriptionExpression(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        subscriptionExpression_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string subscription_expression = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubscriptionExpression() {
        subscriptionExpression_ = getDefaultInstance().getSubscriptionExpression();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string subscription_expression = 1;</code>
       * @param value The bytes for subscriptionExpression to set.
       * @return This builder for chaining.
       */
      public Builder setSubscriptionExpressionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        subscriptionExpression_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int forcedMode_ = 0;
      /**
       * <pre>
       * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
       * @return The enum numeric value on the wire for forcedMode.
       */
      @java.lang.Override public int getForcedModeValue() {
        return forcedMode_;
      }
      /**
       * <pre>
       * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
       * @param value The enum numeric value on the wire for forcedMode to set.
       * @return This builder for chaining.
       */
      public Builder setForcedModeValue(int value) {
        forcedMode_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
       * @return The forcedMode.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getForcedMode() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(forcedMode_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
       * @param value The forcedMode to set.
       * @return This builder for chaining.
       */
      public Builder setForcedMode(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        forcedMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * UNSPECIFIED = auto-failover/failback. ALARMMGR/SUBTAG force one provider.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode forced_mode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearForcedMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        forcedMode_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget> watchList_ =
        java.util.Collections.emptyList();
      private void ensureWatchListIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          watchList_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget>(watchList_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder> watchListBuilder_;

      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget> getWatchListList() {
        if (watchListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(watchList_);
        } else {
          return watchListBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public int getWatchListCount() {
        if (watchListBuilder_ == null) {
          return watchList_.size();
        } else {
          return watchListBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget getWatchList(int index) {
        if (watchListBuilder_ == null) {
          return watchList_.get(index);
        } else {
          return watchListBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder setWatchList(
          int index, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget value) {
        if (watchListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureWatchListIsMutable();
          watchList_.set(index, value);
          onChanged();
        } else {
          watchListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder setWatchList(
          int index, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder builderForValue) {
        if (watchListBuilder_ == null) {
          ensureWatchListIsMutable();
          watchList_.set(index, builderForValue.build());
          onChanged();
        } else {
          watchListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder addWatchList(mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget value) {
        if (watchListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureWatchListIsMutable();
          watchList_.add(value);
          onChanged();
        } else {
          watchListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder addWatchList(
          int index, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget value) {
        if (watchListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureWatchListIsMutable();
          watchList_.add(index, value);
          onChanged();
        } else {
          watchListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder addWatchList(
          mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder builderForValue) {
        if (watchListBuilder_ == null) {
          ensureWatchListIsMutable();
          watchList_.add(builderForValue.build());
          onChanged();
        } else {
          watchListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder addWatchList(
          int index, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder builderForValue) {
        if (watchListBuilder_ == null) {
          ensureWatchListIsMutable();
          watchList_.add(index, builderForValue.build());
          onChanged();
        } else {
          watchListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder addAllWatchList(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget> values) {
        if (watchListBuilder_ == null) {
          ensureWatchListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, watchList_);
          onChanged();
        } else {
          watchListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder clearWatchList() {
        if (watchListBuilder_ == null) {
          watchList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          watchListBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public Builder removeWatchList(int index) {
        if (watchListBuilder_ == null) {
          ensureWatchListIsMutable();
          watchList_.remove(index);
          onChanged();
        } else {
          watchListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder getWatchListBuilder(
          int index) {
        return internalGetWatchListFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder getWatchListOrBuilder(
          int index) {
        if (watchListBuilder_ == null) {
          return watchList_.get(index);  } else {
          return watchListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder> 
           getWatchListOrBuilderList() {
        if (watchListBuilder_ != null) {
          return watchListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(watchList_);
        }
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder addWatchListBuilder() {
        return internalGetWatchListFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.getDefaultInstance());
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder addWatchListBuilder(
          int index) {
        return internalGetWatchListFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.getDefaultInstance());
      }
      /**
       * <pre>
       * Subtag watch-list resolved by the gateway (GR SQL + config). Empty in pure
       * alarmmgr mode; in subtag mode it bounds what the consumer can observe.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.AlarmSubtagTarget watch_list = 3;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder> 
           getWatchListBuilderList() {
        return internalGetWatchListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder> 
          internalGetWatchListFieldBuilder() {
        if (watchListBuilder_ == null) {
          watchListBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder>(
                  watchList_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          watchList_ = null;
        }
        return watchListBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig failover_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfigOrBuilder> failoverBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       * @return Whether the failover field is set.
       */
      public boolean hasFailover() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       * @return The failover.
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig getFailover() {
        if (failoverBuilder_ == null) {
          return failover_ == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.getDefaultInstance() : failover_;
        } else {
          return failoverBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       */
      public Builder setFailover(mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig value) {
        if (failoverBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          failover_ = value;
        } else {
          failoverBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       */
      public Builder setFailover(
          mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.Builder builderForValue) {
        if (failoverBuilder_ == null) {
          failover_ = builderForValue.build();
        } else {
          failoverBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       */
      public Builder mergeFailover(mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig value) {
        if (failoverBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            failover_ != null &&
            failover_ != mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.getDefaultInstance()) {
            getFailoverBuilder().mergeFrom(value);
          } else {
            failover_ = value;
          }
        } else {
          failoverBuilder_.mergeFrom(value);
        }
        if (failover_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       */
      public Builder clearFailover() {
        bitField0_ = (bitField0_ & ~0x00000008);
        failover_ = null;
        if (failoverBuilder_ != null) {
          failoverBuilder_.dispose();
          failoverBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.Builder getFailoverBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetFailoverFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfigOrBuilder getFailoverOrBuilder() {
        if (failoverBuilder_ != null) {
          return failoverBuilder_.getMessageOrBuilder();
        } else {
          return failover_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.getDefaultInstance() : failover_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmFailoverConfig failover = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfigOrBuilder> 
          internalGetFailoverFieldBuilder() {
        if (failoverBuilder_ == null) {
          failoverBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfigOrBuilder>(
                  getFailover(),
                  getParentForChildren(),
                  isClean());
          failover_ = null;
        }
        return failoverBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.SubscribeAlarmsCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.SubscribeAlarmsCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SubscribeAlarmsCommand>
        PARSER = new com.google.protobuf.AbstractParser<SubscribeAlarmsCommand>() {
      @java.lang.Override
      public SubscribeAlarmsCommand 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<SubscribeAlarmsCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeAlarmsCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UnsubscribeAlarmsCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.UnsubscribeAlarmsCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   * Tear down the worker's alarm consumer. No-op if no subscription is
   * currently active.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.UnsubscribeAlarmsCommand}
   */
  public static final class UnsubscribeAlarmsCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.UnsubscribeAlarmsCommand)
      UnsubscribeAlarmsCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "UnsubscribeAlarmsCommand");
    }
    // Use UnsubscribeAlarmsCommand.newBuilder() to construct.
    private UnsubscribeAlarmsCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private UnsubscribeAlarmsCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.Builder.class);
    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand other = (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand 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(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand 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;
    }
    /**
     * <pre>
     * Tear down the worker's alarm consumer. No-op if no subscription is
     * currently active.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.UnsubscribeAlarmsCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.UnsubscribeAlarmsCommand)
        mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand result = new mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand.getDefaultInstance()) return this;
        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;
              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;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.UnsubscribeAlarmsCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.UnsubscribeAlarmsCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UnsubscribeAlarmsCommand>
        PARSER = new com.google.protobuf.AbstractParser<UnsubscribeAlarmsCommand>() {
      @java.lang.Override
      public UnsubscribeAlarmsCommand 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<UnsubscribeAlarmsCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeAlarmsCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AlarmSubtagTargetOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AlarmSubtagTarget)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * e.g. "Galaxy!Area.Tank01.Level.HiHi"
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The alarmFullReference.
     */
    java.lang.String getAlarmFullReference();
    /**
     * <pre>
     * e.g. "Galaxy!Area.Tank01.Level.HiHi"
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The bytes for alarmFullReference.
     */
    com.google.protobuf.ByteString
        getAlarmFullReferenceBytes();

    /**
     * <pre>
     * e.g. "Tank01"
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The sourceObjectReference.
     */
    java.lang.String getSourceObjectReference();
    /**
     * <pre>
     * e.g. "Tank01"
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The bytes for sourceObjectReference.
     */
    com.google.protobuf.ByteString
        getSourceObjectReferenceBytes();

    /**
     * <pre>
     * item address of the in-alarm boolean
     * </pre>
     *
     * <code>string active_subtag = 3;</code>
     * @return The activeSubtag.
     */
    java.lang.String getActiveSubtag();
    /**
     * <pre>
     * item address of the in-alarm boolean
     * </pre>
     *
     * <code>string active_subtag = 3;</code>
     * @return The bytes for activeSubtag.
     */
    com.google.protobuf.ByteString
        getActiveSubtagBytes();

    /**
     * <pre>
     * item address of the acknowledged boolean
     * </pre>
     *
     * <code>string acked_subtag = 4;</code>
     * @return The ackedSubtag.
     */
    java.lang.String getAckedSubtag();
    /**
     * <pre>
     * item address of the acknowledged boolean
     * </pre>
     *
     * <code>string acked_subtag = 4;</code>
     * @return The bytes for ackedSubtag.
     */
    com.google.protobuf.ByteString
        getAckedSubtagBytes();

    /**
     * <pre>
     * writable ack-comment attribute (ack write target)
     * </pre>
     *
     * <code>string ack_comment_subtag = 5;</code>
     * @return The ackCommentSubtag.
     */
    java.lang.String getAckCommentSubtag();
    /**
     * <pre>
     * writable ack-comment attribute (ack write target)
     * </pre>
     *
     * <code>string ack_comment_subtag = 5;</code>
     * @return The bytes for ackCommentSubtag.
     */
    com.google.protobuf.ByteString
        getAckCommentSubtagBytes();

    /**
     * <pre>
     * optional severity source; empty if absent
     * </pre>
     *
     * <code>string priority_subtag = 6;</code>
     * @return The prioritySubtag.
     */
    java.lang.String getPrioritySubtag();
    /**
     * <pre>
     * optional severity source; empty if absent
     * </pre>
     *
     * <code>string priority_subtag = 6;</code>
     * @return The bytes for prioritySubtag.
     */
    com.google.protobuf.ByteString
        getPrioritySubtagBytes();
  }
  /**
   * <pre>
   * One alarm attribute the subtag fallback consumer advises. Addresses are full
   * MXAccess item references the worker passes straight to AddItem.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.AlarmSubtagTarget}
   */
  public static final class AlarmSubtagTarget extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AlarmSubtagTarget)
      AlarmSubtagTargetOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmSubtagTarget");
    }
    // Use AlarmSubtagTarget.newBuilder() to construct.
    private AlarmSubtagTarget(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AlarmSubtagTarget() {
      alarmFullReference_ = "";
      sourceObjectReference_ = "";
      activeSubtag_ = "";
      ackedSubtag_ = "";
      ackCommentSubtag_ = "";
      prioritySubtag_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.class, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder.class);
    }

    public static final int ALARM_FULL_REFERENCE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmFullReference_ = "";
    /**
     * <pre>
     * e.g. "Galaxy!Area.Tank01.Level.HiHi"
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The alarmFullReference.
     */
    @java.lang.Override
    public java.lang.String getAlarmFullReference() {
      java.lang.Object ref = alarmFullReference_;
      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();
        alarmFullReference_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * e.g. "Galaxy!Area.Tank01.Level.HiHi"
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The bytes for alarmFullReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmFullReferenceBytes() {
      java.lang.Object ref = alarmFullReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmFullReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOURCE_OBJECT_REFERENCE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sourceObjectReference_ = "";
    /**
     * <pre>
     * e.g. "Tank01"
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The sourceObjectReference.
     */
    @java.lang.Override
    public java.lang.String getSourceObjectReference() {
      java.lang.Object ref = sourceObjectReference_;
      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();
        sourceObjectReference_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * e.g. "Tank01"
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The bytes for sourceObjectReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceObjectReferenceBytes() {
      java.lang.Object ref = sourceObjectReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceObjectReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACTIVE_SUBTAG_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object activeSubtag_ = "";
    /**
     * <pre>
     * item address of the in-alarm boolean
     * </pre>
     *
     * <code>string active_subtag = 3;</code>
     * @return The activeSubtag.
     */
    @java.lang.Override
    public java.lang.String getActiveSubtag() {
      java.lang.Object ref = activeSubtag_;
      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();
        activeSubtag_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * item address of the in-alarm boolean
     * </pre>
     *
     * <code>string active_subtag = 3;</code>
     * @return The bytes for activeSubtag.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getActiveSubtagBytes() {
      java.lang.Object ref = activeSubtag_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        activeSubtag_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACKED_SUBTAG_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object ackedSubtag_ = "";
    /**
     * <pre>
     * item address of the acknowledged boolean
     * </pre>
     *
     * <code>string acked_subtag = 4;</code>
     * @return The ackedSubtag.
     */
    @java.lang.Override
    public java.lang.String getAckedSubtag() {
      java.lang.Object ref = ackedSubtag_;
      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();
        ackedSubtag_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * item address of the acknowledged boolean
     * </pre>
     *
     * <code>string acked_subtag = 4;</code>
     * @return The bytes for ackedSubtag.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAckedSubtagBytes() {
      java.lang.Object ref = ackedSubtag_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ackedSubtag_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACK_COMMENT_SUBTAG_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object ackCommentSubtag_ = "";
    /**
     * <pre>
     * writable ack-comment attribute (ack write target)
     * </pre>
     *
     * <code>string ack_comment_subtag = 5;</code>
     * @return The ackCommentSubtag.
     */
    @java.lang.Override
    public java.lang.String getAckCommentSubtag() {
      java.lang.Object ref = ackCommentSubtag_;
      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();
        ackCommentSubtag_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * writable ack-comment attribute (ack write target)
     * </pre>
     *
     * <code>string ack_comment_subtag = 5;</code>
     * @return The bytes for ackCommentSubtag.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAckCommentSubtagBytes() {
      java.lang.Object ref = ackCommentSubtag_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ackCommentSubtag_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRIORITY_SUBTAG_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object prioritySubtag_ = "";
    /**
     * <pre>
     * optional severity source; empty if absent
     * </pre>
     *
     * <code>string priority_subtag = 6;</code>
     * @return The prioritySubtag.
     */
    @java.lang.Override
    public java.lang.String getPrioritySubtag() {
      java.lang.Object ref = prioritySubtag_;
      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();
        prioritySubtag_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * optional severity source; empty if absent
     * </pre>
     *
     * <code>string priority_subtag = 6;</code>
     * @return The bytes for prioritySubtag.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPrioritySubtagBytes() {
      java.lang.Object ref = prioritySubtag_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        prioritySubtag_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceObjectReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, sourceObjectReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(activeSubtag_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, activeSubtag_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ackedSubtag_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, ackedSubtag_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ackCommentSubtag_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, ackCommentSubtag_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(prioritySubtag_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, prioritySubtag_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceObjectReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, sourceObjectReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(activeSubtag_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, activeSubtag_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ackedSubtag_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, ackedSubtag_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ackCommentSubtag_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, ackCommentSubtag_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(prioritySubtag_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, prioritySubtag_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget other = (mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget) obj;

      if (!getAlarmFullReference()
          .equals(other.getAlarmFullReference())) return false;
      if (!getSourceObjectReference()
          .equals(other.getSourceObjectReference())) return false;
      if (!getActiveSubtag()
          .equals(other.getActiveSubtag())) return false;
      if (!getAckedSubtag()
          .equals(other.getAckedSubtag())) return false;
      if (!getAckCommentSubtag()
          .equals(other.getAckCommentSubtag())) return false;
      if (!getPrioritySubtag()
          .equals(other.getPrioritySubtag())) 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();
      hash = (37 * hash) + ALARM_FULL_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmFullReference().hashCode();
      hash = (37 * hash) + SOURCE_OBJECT_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getSourceObjectReference().hashCode();
      hash = (37 * hash) + ACTIVE_SUBTAG_FIELD_NUMBER;
      hash = (53 * hash) + getActiveSubtag().hashCode();
      hash = (37 * hash) + ACKED_SUBTAG_FIELD_NUMBER;
      hash = (53 * hash) + getAckedSubtag().hashCode();
      hash = (37 * hash) + ACK_COMMENT_SUBTAG_FIELD_NUMBER;
      hash = (53 * hash) + getAckCommentSubtag().hashCode();
      hash = (37 * hash) + PRIORITY_SUBTAG_FIELD_NUMBER;
      hash = (53 * hash) + getPrioritySubtag().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget 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 mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget 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 mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget 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(mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget 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;
    }
    /**
     * <pre>
     * One alarm attribute the subtag fallback consumer advises. Addresses are full
     * MXAccess item references the worker passes straight to AddItem.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.AlarmSubtagTarget}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AlarmSubtagTarget)
        mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTargetOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.class, mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        alarmFullReference_ = "";
        sourceObjectReference_ = "";
        activeSubtag_ = "";
        ackedSubtag_ = "";
        ackCommentSubtag_ = "";
        prioritySubtag_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget build() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget result = new mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.alarmFullReference_ = alarmFullReference_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.sourceObjectReference_ = sourceObjectReference_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.activeSubtag_ = activeSubtag_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.ackedSubtag_ = ackedSubtag_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.ackCommentSubtag_ = ackCommentSubtag_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.prioritySubtag_ = prioritySubtag_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget.getDefaultInstance()) return this;
        if (!other.getAlarmFullReference().isEmpty()) {
          alarmFullReference_ = other.alarmFullReference_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getSourceObjectReference().isEmpty()) {
          sourceObjectReference_ = other.sourceObjectReference_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getActiveSubtag().isEmpty()) {
          activeSubtag_ = other.activeSubtag_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getAckedSubtag().isEmpty()) {
          ackedSubtag_ = other.ackedSubtag_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getAckCommentSubtag().isEmpty()) {
          ackCommentSubtag_ = other.ackCommentSubtag_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.getPrioritySubtag().isEmpty()) {
          prioritySubtag_ = other.prioritySubtag_;
          bitField0_ |= 0x00000020;
          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: {
                alarmFullReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                sourceObjectReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                activeSubtag_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                ackedSubtag_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                ackCommentSubtag_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                prioritySubtag_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              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 alarmFullReference_ = "";
      /**
       * <pre>
       * e.g. "Galaxy!Area.Tank01.Level.HiHi"
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @return The alarmFullReference.
       */
      public java.lang.String getAlarmFullReference() {
        java.lang.Object ref = alarmFullReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmFullReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * e.g. "Galaxy!Area.Tank01.Level.HiHi"
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @return The bytes for alarmFullReference.
       */
      public com.google.protobuf.ByteString
          getAlarmFullReferenceBytes() {
        java.lang.Object ref = alarmFullReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmFullReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * e.g. "Galaxy!Area.Tank01.Level.HiHi"
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @param value The alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmFullReference_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * e.g. "Galaxy!Area.Tank01.Level.HiHi"
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmFullReference() {
        alarmFullReference_ = getDefaultInstance().getAlarmFullReference();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * e.g. "Galaxy!Area.Tank01.Level.HiHi"
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @param value The bytes for alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmFullReference_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object sourceObjectReference_ = "";
      /**
       * <pre>
       * e.g. "Tank01"
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @return The sourceObjectReference.
       */
      public java.lang.String getSourceObjectReference() {
        java.lang.Object ref = sourceObjectReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sourceObjectReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * e.g. "Tank01"
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @return The bytes for sourceObjectReference.
       */
      public com.google.protobuf.ByteString
          getSourceObjectReferenceBytes() {
        java.lang.Object ref = sourceObjectReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sourceObjectReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * e.g. "Tank01"
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @param value The sourceObjectReference to set.
       * @return This builder for chaining.
       */
      public Builder setSourceObjectReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sourceObjectReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * e.g. "Tank01"
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceObjectReference() {
        sourceObjectReference_ = getDefaultInstance().getSourceObjectReference();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * e.g. "Tank01"
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @param value The bytes for sourceObjectReference to set.
       * @return This builder for chaining.
       */
      public Builder setSourceObjectReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sourceObjectReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object activeSubtag_ = "";
      /**
       * <pre>
       * item address of the in-alarm boolean
       * </pre>
       *
       * <code>string active_subtag = 3;</code>
       * @return The activeSubtag.
       */
      public java.lang.String getActiveSubtag() {
        java.lang.Object ref = activeSubtag_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          activeSubtag_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * item address of the in-alarm boolean
       * </pre>
       *
       * <code>string active_subtag = 3;</code>
       * @return The bytes for activeSubtag.
       */
      public com.google.protobuf.ByteString
          getActiveSubtagBytes() {
        java.lang.Object ref = activeSubtag_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          activeSubtag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * item address of the in-alarm boolean
       * </pre>
       *
       * <code>string active_subtag = 3;</code>
       * @param value The activeSubtag to set.
       * @return This builder for chaining.
       */
      public Builder setActiveSubtag(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        activeSubtag_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * item address of the in-alarm boolean
       * </pre>
       *
       * <code>string active_subtag = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearActiveSubtag() {
        activeSubtag_ = getDefaultInstance().getActiveSubtag();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * item address of the in-alarm boolean
       * </pre>
       *
       * <code>string active_subtag = 3;</code>
       * @param value The bytes for activeSubtag to set.
       * @return This builder for chaining.
       */
      public Builder setActiveSubtagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        activeSubtag_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object ackedSubtag_ = "";
      /**
       * <pre>
       * item address of the acknowledged boolean
       * </pre>
       *
       * <code>string acked_subtag = 4;</code>
       * @return The ackedSubtag.
       */
      public java.lang.String getAckedSubtag() {
        java.lang.Object ref = ackedSubtag_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ackedSubtag_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * item address of the acknowledged boolean
       * </pre>
       *
       * <code>string acked_subtag = 4;</code>
       * @return The bytes for ackedSubtag.
       */
      public com.google.protobuf.ByteString
          getAckedSubtagBytes() {
        java.lang.Object ref = ackedSubtag_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ackedSubtag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * item address of the acknowledged boolean
       * </pre>
       *
       * <code>string acked_subtag = 4;</code>
       * @param value The ackedSubtag to set.
       * @return This builder for chaining.
       */
      public Builder setAckedSubtag(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ackedSubtag_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * item address of the acknowledged boolean
       * </pre>
       *
       * <code>string acked_subtag = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAckedSubtag() {
        ackedSubtag_ = getDefaultInstance().getAckedSubtag();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * item address of the acknowledged boolean
       * </pre>
       *
       * <code>string acked_subtag = 4;</code>
       * @param value The bytes for ackedSubtag to set.
       * @return This builder for chaining.
       */
      public Builder setAckedSubtagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ackedSubtag_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object ackCommentSubtag_ = "";
      /**
       * <pre>
       * writable ack-comment attribute (ack write target)
       * </pre>
       *
       * <code>string ack_comment_subtag = 5;</code>
       * @return The ackCommentSubtag.
       */
      public java.lang.String getAckCommentSubtag() {
        java.lang.Object ref = ackCommentSubtag_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ackCommentSubtag_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * writable ack-comment attribute (ack write target)
       * </pre>
       *
       * <code>string ack_comment_subtag = 5;</code>
       * @return The bytes for ackCommentSubtag.
       */
      public com.google.protobuf.ByteString
          getAckCommentSubtagBytes() {
        java.lang.Object ref = ackCommentSubtag_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ackCommentSubtag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * writable ack-comment attribute (ack write target)
       * </pre>
       *
       * <code>string ack_comment_subtag = 5;</code>
       * @param value The ackCommentSubtag to set.
       * @return This builder for chaining.
       */
      public Builder setAckCommentSubtag(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ackCommentSubtag_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * writable ack-comment attribute (ack write target)
       * </pre>
       *
       * <code>string ack_comment_subtag = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearAckCommentSubtag() {
        ackCommentSubtag_ = getDefaultInstance().getAckCommentSubtag();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * writable ack-comment attribute (ack write target)
       * </pre>
       *
       * <code>string ack_comment_subtag = 5;</code>
       * @param value The bytes for ackCommentSubtag to set.
       * @return This builder for chaining.
       */
      public Builder setAckCommentSubtagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ackCommentSubtag_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object prioritySubtag_ = "";
      /**
       * <pre>
       * optional severity source; empty if absent
       * </pre>
       *
       * <code>string priority_subtag = 6;</code>
       * @return The prioritySubtag.
       */
      public java.lang.String getPrioritySubtag() {
        java.lang.Object ref = prioritySubtag_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          prioritySubtag_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * optional severity source; empty if absent
       * </pre>
       *
       * <code>string priority_subtag = 6;</code>
       * @return The bytes for prioritySubtag.
       */
      public com.google.protobuf.ByteString
          getPrioritySubtagBytes() {
        java.lang.Object ref = prioritySubtag_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          prioritySubtag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * optional severity source; empty if absent
       * </pre>
       *
       * <code>string priority_subtag = 6;</code>
       * @param value The prioritySubtag to set.
       * @return This builder for chaining.
       */
      public Builder setPrioritySubtag(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        prioritySubtag_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * optional severity source; empty if absent
       * </pre>
       *
       * <code>string priority_subtag = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrioritySubtag() {
        prioritySubtag_ = getDefaultInstance().getPrioritySubtag();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * optional severity source; empty if absent
       * </pre>
       *
       * <code>string priority_subtag = 6;</code>
       * @param value The bytes for prioritySubtag to set.
       * @return This builder for chaining.
       */
      public Builder setPrioritySubtagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        prioritySubtag_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AlarmSubtagTarget)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AlarmSubtagTarget)
    private static final mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AlarmSubtagTarget>
        PARSER = new com.google.protobuf.AbstractParser<AlarmSubtagTarget>() {
      @java.lang.Override
      public AlarmSubtagTarget 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<AlarmSubtagTarget> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmSubtagTarget getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AlarmFailoverConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AlarmFailoverConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * wnwrap COM failures before switching (&gt;=1)
     * </pre>
     *
     * <code>int32 consecutive_failure_threshold = 1;</code>
     * @return The consecutiveFailureThreshold.
     */
    int getConsecutiveFailureThreshold();

    /**
     * <pre>
     * probe cadence while degraded (&gt;=1)
     * </pre>
     *
     * <code>int32 failback_probe_interval_seconds = 2;</code>
     * @return The failbackProbeIntervalSeconds.
     */
    int getFailbackProbeIntervalSeconds();

    /**
     * <pre>
     * clean probes before switching back (&gt;=1)
     * </pre>
     *
     * <code>int32 failback_stable_probes = 3;</code>
     * @return The failbackStableProbes.
     */
    int getFailbackStableProbes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AlarmFailoverConfig}
   */
  public static final class AlarmFailoverConfig extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AlarmFailoverConfig)
      AlarmFailoverConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmFailoverConfig");
    }
    // Use AlarmFailoverConfig.newBuilder() to construct.
    private AlarmFailoverConfig(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AlarmFailoverConfig() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.class, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.Builder.class);
    }

    public static final int CONSECUTIVE_FAILURE_THRESHOLD_FIELD_NUMBER = 1;
    private int consecutiveFailureThreshold_ = 0;
    /**
     * <pre>
     * wnwrap COM failures before switching (&gt;=1)
     * </pre>
     *
     * <code>int32 consecutive_failure_threshold = 1;</code>
     * @return The consecutiveFailureThreshold.
     */
    @java.lang.Override
    public int getConsecutiveFailureThreshold() {
      return consecutiveFailureThreshold_;
    }

    public static final int FAILBACK_PROBE_INTERVAL_SECONDS_FIELD_NUMBER = 2;
    private int failbackProbeIntervalSeconds_ = 0;
    /**
     * <pre>
     * probe cadence while degraded (&gt;=1)
     * </pre>
     *
     * <code>int32 failback_probe_interval_seconds = 2;</code>
     * @return The failbackProbeIntervalSeconds.
     */
    @java.lang.Override
    public int getFailbackProbeIntervalSeconds() {
      return failbackProbeIntervalSeconds_;
    }

    public static final int FAILBACK_STABLE_PROBES_FIELD_NUMBER = 3;
    private int failbackStableProbes_ = 0;
    /**
     * <pre>
     * clean probes before switching back (&gt;=1)
     * </pre>
     *
     * <code>int32 failback_stable_probes = 3;</code>
     * @return The failbackStableProbes.
     */
    @java.lang.Override
    public int getFailbackStableProbes() {
      return failbackStableProbes_;
    }

    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 (consecutiveFailureThreshold_ != 0) {
        output.writeInt32(1, consecutiveFailureThreshold_);
      }
      if (failbackProbeIntervalSeconds_ != 0) {
        output.writeInt32(2, failbackProbeIntervalSeconds_);
      }
      if (failbackStableProbes_ != 0) {
        output.writeInt32(3, failbackStableProbes_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (consecutiveFailureThreshold_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, consecutiveFailureThreshold_);
      }
      if (failbackProbeIntervalSeconds_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, failbackProbeIntervalSeconds_);
      }
      if (failbackStableProbes_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, failbackStableProbes_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig other = (mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig) obj;

      if (getConsecutiveFailureThreshold()
          != other.getConsecutiveFailureThreshold()) return false;
      if (getFailbackProbeIntervalSeconds()
          != other.getFailbackProbeIntervalSeconds()) return false;
      if (getFailbackStableProbes()
          != other.getFailbackStableProbes()) 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();
      hash = (37 * hash) + CONSECUTIVE_FAILURE_THRESHOLD_FIELD_NUMBER;
      hash = (53 * hash) + getConsecutiveFailureThreshold();
      hash = (37 * hash) + FAILBACK_PROBE_INTERVAL_SECONDS_FIELD_NUMBER;
      hash = (53 * hash) + getFailbackProbeIntervalSeconds();
      hash = (37 * hash) + FAILBACK_STABLE_PROBES_FIELD_NUMBER;
      hash = (53 * hash) + getFailbackStableProbes();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig 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 mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig 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 mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig 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(mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig 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 mxaccess_gateway.v1.AlarmFailoverConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AlarmFailoverConfig)
        mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.class, mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        consecutiveFailureThreshold_ = 0;
        failbackProbeIntervalSeconds_ = 0;
        failbackStableProbes_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig build() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig result = new mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.consecutiveFailureThreshold_ = consecutiveFailureThreshold_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.failbackProbeIntervalSeconds_ = failbackProbeIntervalSeconds_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.failbackStableProbes_ = failbackStableProbes_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig.getDefaultInstance()) return this;
        if (other.getConsecutiveFailureThreshold() != 0) {
          setConsecutiveFailureThreshold(other.getConsecutiveFailureThreshold());
        }
        if (other.getFailbackProbeIntervalSeconds() != 0) {
          setFailbackProbeIntervalSeconds(other.getFailbackProbeIntervalSeconds());
        }
        if (other.getFailbackStableProbes() != 0) {
          setFailbackStableProbes(other.getFailbackStableProbes());
        }
        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 8: {
                consecutiveFailureThreshold_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                failbackProbeIntervalSeconds_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                failbackStableProbes_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              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 int consecutiveFailureThreshold_ ;
      /**
       * <pre>
       * wnwrap COM failures before switching (&gt;=1)
       * </pre>
       *
       * <code>int32 consecutive_failure_threshold = 1;</code>
       * @return The consecutiveFailureThreshold.
       */
      @java.lang.Override
      public int getConsecutiveFailureThreshold() {
        return consecutiveFailureThreshold_;
      }
      /**
       * <pre>
       * wnwrap COM failures before switching (&gt;=1)
       * </pre>
       *
       * <code>int32 consecutive_failure_threshold = 1;</code>
       * @param value The consecutiveFailureThreshold to set.
       * @return This builder for chaining.
       */
      public Builder setConsecutiveFailureThreshold(int value) {

        consecutiveFailureThreshold_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * wnwrap COM failures before switching (&gt;=1)
       * </pre>
       *
       * <code>int32 consecutive_failure_threshold = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearConsecutiveFailureThreshold() {
        bitField0_ = (bitField0_ & ~0x00000001);
        consecutiveFailureThreshold_ = 0;
        onChanged();
        return this;
      }

      private int failbackProbeIntervalSeconds_ ;
      /**
       * <pre>
       * probe cadence while degraded (&gt;=1)
       * </pre>
       *
       * <code>int32 failback_probe_interval_seconds = 2;</code>
       * @return The failbackProbeIntervalSeconds.
       */
      @java.lang.Override
      public int getFailbackProbeIntervalSeconds() {
        return failbackProbeIntervalSeconds_;
      }
      /**
       * <pre>
       * probe cadence while degraded (&gt;=1)
       * </pre>
       *
       * <code>int32 failback_probe_interval_seconds = 2;</code>
       * @param value The failbackProbeIntervalSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setFailbackProbeIntervalSeconds(int value) {

        failbackProbeIntervalSeconds_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * probe cadence while degraded (&gt;=1)
       * </pre>
       *
       * <code>int32 failback_probe_interval_seconds = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFailbackProbeIntervalSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        failbackProbeIntervalSeconds_ = 0;
        onChanged();
        return this;
      }

      private int failbackStableProbes_ ;
      /**
       * <pre>
       * clean probes before switching back (&gt;=1)
       * </pre>
       *
       * <code>int32 failback_stable_probes = 3;</code>
       * @return The failbackStableProbes.
       */
      @java.lang.Override
      public int getFailbackStableProbes() {
        return failbackStableProbes_;
      }
      /**
       * <pre>
       * clean probes before switching back (&gt;=1)
       * </pre>
       *
       * <code>int32 failback_stable_probes = 3;</code>
       * @param value The failbackStableProbes to set.
       * @return This builder for chaining.
       */
      public Builder setFailbackStableProbes(int value) {

        failbackStableProbes_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * clean probes before switching back (&gt;=1)
       * </pre>
       *
       * <code>int32 failback_stable_probes = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFailbackStableProbes() {
        bitField0_ = (bitField0_ & ~0x00000004);
        failbackStableProbes_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AlarmFailoverConfig)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AlarmFailoverConfig)
    private static final mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AlarmFailoverConfig>
        PARSER = new com.google.protobuf.AbstractParser<AlarmFailoverConfig>() {
      @java.lang.Override
      public AlarmFailoverConfig 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<AlarmFailoverConfig> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmFailoverConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeAlarmCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AcknowledgeAlarmCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
     * </pre>
     *
     * <code>string alarm_guid = 1;</code>
     * @return The alarmGuid.
     */
    java.lang.String getAlarmGuid();
    /**
     * <pre>
     * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
     * </pre>
     *
     * <code>string alarm_guid = 1;</code>
     * @return The bytes for alarmGuid.
     */
    com.google.protobuf.ByteString
        getAlarmGuidBytes();

    /**
     * <code>string comment = 2;</code>
     * @return The comment.
     */
    java.lang.String getComment();
    /**
     * <code>string comment = 2;</code>
     * @return The bytes for comment.
     */
    com.google.protobuf.ByteString
        getCommentBytes();

    /**
     * <code>string operator_user = 3;</code>
     * @return The operatorUser.
     */
    java.lang.String getOperatorUser();
    /**
     * <code>string operator_user = 3;</code>
     * @return The bytes for operatorUser.
     */
    com.google.protobuf.ByteString
        getOperatorUserBytes();

    /**
     * <code>string operator_node = 4;</code>
     * @return The operatorNode.
     */
    java.lang.String getOperatorNode();
    /**
     * <code>string operator_node = 4;</code>
     * @return The bytes for operatorNode.
     */
    com.google.protobuf.ByteString
        getOperatorNodeBytes();

    /**
     * <code>string operator_domain = 5;</code>
     * @return The operatorDomain.
     */
    java.lang.String getOperatorDomain();
    /**
     * <code>string operator_domain = 5;</code>
     * @return The bytes for operatorDomain.
     */
    com.google.protobuf.ByteString
        getOperatorDomainBytes();

    /**
     * <code>string operator_full_name = 6;</code>
     * @return The operatorFullName.
     */
    java.lang.String getOperatorFullName();
    /**
     * <code>string operator_full_name = 6;</code>
     * @return The bytes for operatorFullName.
     */
    com.google.protobuf.ByteString
        getOperatorFullNameBytes();
  }
  /**
   * <pre>
   * Acknowledge a single alarm by its GUID. Operator identity fields are
   * recorded atomically with the ack transition in the alarm-history log.
   * The reply's hresult / native_status surfaces AVEVA's
   * AlarmAckByGUID return code.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmCommand}
   */
  public static final class AcknowledgeAlarmCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AcknowledgeAlarmCommand)
      AcknowledgeAlarmCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AcknowledgeAlarmCommand");
    }
    // Use AcknowledgeAlarmCommand.newBuilder() to construct.
    private AcknowledgeAlarmCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeAlarmCommand() {
      alarmGuid_ = "";
      comment_ = "";
      operatorUser_ = "";
      operatorNode_ = "";
      operatorDomain_ = "";
      operatorFullName_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.Builder.class);
    }

    public static final int ALARM_GUID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmGuid_ = "";
    /**
     * <pre>
     * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
     * </pre>
     *
     * <code>string alarm_guid = 1;</code>
     * @return The alarmGuid.
     */
    @java.lang.Override
    public java.lang.String getAlarmGuid() {
      java.lang.Object ref = alarmGuid_;
      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();
        alarmGuid_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
     * </pre>
     *
     * <code>string alarm_guid = 1;</code>
     * @return The bytes for alarmGuid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmGuidBytes() {
      java.lang.Object ref = alarmGuid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmGuid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMENT_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object comment_ = "";
    /**
     * <code>string comment = 2;</code>
     * @return The comment.
     */
    @java.lang.Override
    public java.lang.String getComment() {
      java.lang.Object ref = comment_;
      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();
        comment_ = s;
        return s;
      }
    }
    /**
     * <code>string comment = 2;</code>
     * @return The bytes for comment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCommentBytes() {
      java.lang.Object ref = comment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        comment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_USER_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorUser_ = "";
    /**
     * <code>string operator_user = 3;</code>
     * @return The operatorUser.
     */
    @java.lang.Override
    public java.lang.String getOperatorUser() {
      java.lang.Object ref = operatorUser_;
      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();
        operatorUser_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_user = 3;</code>
     * @return The bytes for operatorUser.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorUserBytes() {
      java.lang.Object ref = operatorUser_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorUser_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_NODE_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorNode_ = "";
    /**
     * <code>string operator_node = 4;</code>
     * @return The operatorNode.
     */
    @java.lang.Override
    public java.lang.String getOperatorNode() {
      java.lang.Object ref = operatorNode_;
      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();
        operatorNode_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_node = 4;</code>
     * @return The bytes for operatorNode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorNodeBytes() {
      java.lang.Object ref = operatorNode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorNode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_DOMAIN_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorDomain_ = "";
    /**
     * <code>string operator_domain = 5;</code>
     * @return The operatorDomain.
     */
    @java.lang.Override
    public java.lang.String getOperatorDomain() {
      java.lang.Object ref = operatorDomain_;
      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();
        operatorDomain_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_domain = 5;</code>
     * @return The bytes for operatorDomain.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorDomainBytes() {
      java.lang.Object ref = operatorDomain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorDomain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_FULL_NAME_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorFullName_ = "";
    /**
     * <code>string operator_full_name = 6;</code>
     * @return The operatorFullName.
     */
    @java.lang.Override
    public java.lang.String getOperatorFullName() {
      java.lang.Object ref = operatorFullName_;
      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();
        operatorFullName_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_full_name = 6;</code>
     * @return The bytes for operatorFullName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorFullNameBytes() {
      java.lang.Object ref = operatorFullName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorFullName_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmGuid_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, alarmGuid_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(comment_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, comment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorNode_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, operatorNode_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorDomain_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, operatorDomain_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorFullName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, operatorFullName_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmGuid_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, alarmGuid_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(comment_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, comment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorNode_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, operatorNode_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorDomain_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, operatorDomain_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorFullName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, operatorFullName_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand other = (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) obj;

      if (!getAlarmGuid()
          .equals(other.getAlarmGuid())) return false;
      if (!getComment()
          .equals(other.getComment())) return false;
      if (!getOperatorUser()
          .equals(other.getOperatorUser())) return false;
      if (!getOperatorNode()
          .equals(other.getOperatorNode())) return false;
      if (!getOperatorDomain()
          .equals(other.getOperatorDomain())) return false;
      if (!getOperatorFullName()
          .equals(other.getOperatorFullName())) 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();
      hash = (37 * hash) + ALARM_GUID_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmGuid().hashCode();
      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getComment().hashCode();
      hash = (37 * hash) + OPERATOR_USER_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorUser().hashCode();
      hash = (37 * hash) + OPERATOR_NODE_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorNode().hashCode();
      hash = (37 * hash) + OPERATOR_DOMAIN_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorDomain().hashCode();
      hash = (37 * hash) + OPERATOR_FULL_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorFullName().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand 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(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand 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;
    }
    /**
     * <pre>
     * Acknowledge a single alarm by its GUID. Operator identity fields are
     * recorded atomically with the ack transition in the alarm-history log.
     * The reply's hresult / native_status surfaces AVEVA's
     * AlarmAckByGUID return code.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AcknowledgeAlarmCommand)
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        alarmGuid_ = "";
        comment_ = "";
        operatorUser_ = "";
        operatorNode_ = "";
        operatorDomain_ = "";
        operatorFullName_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand result = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.alarmGuid_ = alarmGuid_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.comment_ = comment_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.operatorUser_ = operatorUser_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.operatorNode_ = operatorNode_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.operatorDomain_ = operatorDomain_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.operatorFullName_ = operatorFullName_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand.getDefaultInstance()) return this;
        if (!other.getAlarmGuid().isEmpty()) {
          alarmGuid_ = other.alarmGuid_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getComment().isEmpty()) {
          comment_ = other.comment_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getOperatorUser().isEmpty()) {
          operatorUser_ = other.operatorUser_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getOperatorNode().isEmpty()) {
          operatorNode_ = other.operatorNode_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getOperatorDomain().isEmpty()) {
          operatorDomain_ = other.operatorDomain_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.getOperatorFullName().isEmpty()) {
          operatorFullName_ = other.operatorFullName_;
          bitField0_ |= 0x00000020;
          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: {
                alarmGuid_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                comment_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                operatorUser_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                operatorNode_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                operatorDomain_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                operatorFullName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              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 alarmGuid_ = "";
      /**
       * <pre>
       * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
       * </pre>
       *
       * <code>string alarm_guid = 1;</code>
       * @return The alarmGuid.
       */
      public java.lang.String getAlarmGuid() {
        java.lang.Object ref = alarmGuid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmGuid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
       * </pre>
       *
       * <code>string alarm_guid = 1;</code>
       * @return The bytes for alarmGuid.
       */
      public com.google.protobuf.ByteString
          getAlarmGuidBytes() {
        java.lang.Object ref = alarmGuid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmGuid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
       * </pre>
       *
       * <code>string alarm_guid = 1;</code>
       * @param value The alarmGuid to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmGuid(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmGuid_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
       * </pre>
       *
       * <code>string alarm_guid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmGuid() {
        alarmGuid_ = getDefaultInstance().getAlarmGuid();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Canonical 8-4-4-4-12 GUID string (e.g. "BCC47053-9542-4D65-BDAA-BCDEA6A32A73").
       * </pre>
       *
       * <code>string alarm_guid = 1;</code>
       * @param value The bytes for alarmGuid to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmGuidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmGuid_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object comment_ = "";
      /**
       * <code>string comment = 2;</code>
       * @return The comment.
       */
      public java.lang.String getComment() {
        java.lang.Object ref = comment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          comment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string comment = 2;</code>
       * @return The bytes for comment.
       */
      public com.google.protobuf.ByteString
          getCommentBytes() {
        java.lang.Object ref = comment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          comment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string comment = 2;</code>
       * @param value The comment to set.
       * @return This builder for chaining.
       */
      public Builder setComment(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        comment_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearComment() {
        comment_ = getDefaultInstance().getComment();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 2;</code>
       * @param value The bytes for comment to set.
       * @return This builder for chaining.
       */
      public Builder setCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        comment_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object operatorUser_ = "";
      /**
       * <code>string operator_user = 3;</code>
       * @return The operatorUser.
       */
      public java.lang.String getOperatorUser() {
        java.lang.Object ref = operatorUser_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorUser_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_user = 3;</code>
       * @return The bytes for operatorUser.
       */
      public com.google.protobuf.ByteString
          getOperatorUserBytes() {
        java.lang.Object ref = operatorUser_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorUser_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_user = 3;</code>
       * @param value The operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUser(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorUser_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_user = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorUser() {
        operatorUser_ = getDefaultInstance().getOperatorUser();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_user = 3;</code>
       * @param value The bytes for operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorUser_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object operatorNode_ = "";
      /**
       * <code>string operator_node = 4;</code>
       * @return The operatorNode.
       */
      public java.lang.String getOperatorNode() {
        java.lang.Object ref = operatorNode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorNode_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_node = 4;</code>
       * @return The bytes for operatorNode.
       */
      public com.google.protobuf.ByteString
          getOperatorNodeBytes() {
        java.lang.Object ref = operatorNode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorNode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_node = 4;</code>
       * @param value The operatorNode to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorNode(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorNode_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_node = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorNode() {
        operatorNode_ = getDefaultInstance().getOperatorNode();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_node = 4;</code>
       * @param value The bytes for operatorNode to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorNodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorNode_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object operatorDomain_ = "";
      /**
       * <code>string operator_domain = 5;</code>
       * @return The operatorDomain.
       */
      public java.lang.String getOperatorDomain() {
        java.lang.Object ref = operatorDomain_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorDomain_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_domain = 5;</code>
       * @return The bytes for operatorDomain.
       */
      public com.google.protobuf.ByteString
          getOperatorDomainBytes() {
        java.lang.Object ref = operatorDomain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorDomain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_domain = 5;</code>
       * @param value The operatorDomain to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorDomain(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorDomain_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_domain = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorDomain() {
        operatorDomain_ = getDefaultInstance().getOperatorDomain();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_domain = 5;</code>
       * @param value The bytes for operatorDomain to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorDomainBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorDomain_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object operatorFullName_ = "";
      /**
       * <code>string operator_full_name = 6;</code>
       * @return The operatorFullName.
       */
      public java.lang.String getOperatorFullName() {
        java.lang.Object ref = operatorFullName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorFullName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_full_name = 6;</code>
       * @return The bytes for operatorFullName.
       */
      public com.google.protobuf.ByteString
          getOperatorFullNameBytes() {
        java.lang.Object ref = operatorFullName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorFullName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_full_name = 6;</code>
       * @param value The operatorFullName to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorFullName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorFullName_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_full_name = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorFullName() {
        operatorFullName_ = getDefaultInstance().getOperatorFullName();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_full_name = 6;</code>
       * @param value The bytes for operatorFullName to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorFullNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorFullName_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AcknowledgeAlarmCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AcknowledgeAlarmCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeAlarmCommand>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeAlarmCommand>() {
      @java.lang.Override
      public AcknowledgeAlarmCommand 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<AcknowledgeAlarmCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface QueryActiveAlarmsCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.QueryActiveAlarmsCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string alarm_filter_prefix = 1;</code>
     * @return The alarmFilterPrefix.
     */
    java.lang.String getAlarmFilterPrefix();
    /**
     * <code>string alarm_filter_prefix = 1;</code>
     * @return The bytes for alarmFilterPrefix.
     */
    com.google.protobuf.ByteString
        getAlarmFilterPrefixBytes();
  }
  /**
   * <pre>
   * Snapshot the currently-active alarm set. Optional filter prefix scopes
   * the snapshot to alarms whose alarm_full_reference starts with the
   * supplied string (matches QueryActiveAlarmsRequest.alarm_filter_prefix).
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.QueryActiveAlarmsCommand}
   */
  public static final class QueryActiveAlarmsCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.QueryActiveAlarmsCommand)
      QueryActiveAlarmsCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "QueryActiveAlarmsCommand");
    }
    // Use QueryActiveAlarmsCommand.newBuilder() to construct.
    private QueryActiveAlarmsCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private QueryActiveAlarmsCommand() {
      alarmFilterPrefix_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.class, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.Builder.class);
    }

    public static final int ALARM_FILTER_PREFIX_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmFilterPrefix_ = "";
    /**
     * <code>string alarm_filter_prefix = 1;</code>
     * @return The alarmFilterPrefix.
     */
    @java.lang.Override
    public java.lang.String getAlarmFilterPrefix() {
      java.lang.Object ref = alarmFilterPrefix_;
      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();
        alarmFilterPrefix_ = s;
        return s;
      }
    }
    /**
     * <code>string alarm_filter_prefix = 1;</code>
     * @return The bytes for alarmFilterPrefix.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmFilterPrefixBytes() {
      java.lang.Object ref = alarmFilterPrefix_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmFilterPrefix_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFilterPrefix_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, alarmFilterPrefix_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFilterPrefix_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, alarmFilterPrefix_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand other = (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) obj;

      if (!getAlarmFilterPrefix()
          .equals(other.getAlarmFilterPrefix())) 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();
      hash = (37 * hash) + ALARM_FILTER_PREFIX_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmFilterPrefix().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand 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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand 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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand 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(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand 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;
    }
    /**
     * <pre>
     * Snapshot the currently-active alarm set. Optional filter prefix scopes
     * the snapshot to alarms whose alarm_full_reference starts with the
     * supplied string (matches QueryActiveAlarmsRequest.alarm_filter_prefix).
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.QueryActiveAlarmsCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.QueryActiveAlarmsCommand)
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.class, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        alarmFilterPrefix_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand result = new mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.alarmFilterPrefix_ = alarmFilterPrefix_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand.getDefaultInstance()) return this;
        if (!other.getAlarmFilterPrefix().isEmpty()) {
          alarmFilterPrefix_ = other.alarmFilterPrefix_;
          bitField0_ |= 0x00000001;
          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: {
                alarmFilterPrefix_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              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 alarmFilterPrefix_ = "";
      /**
       * <code>string alarm_filter_prefix = 1;</code>
       * @return The alarmFilterPrefix.
       */
      public java.lang.String getAlarmFilterPrefix() {
        java.lang.Object ref = alarmFilterPrefix_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmFilterPrefix_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string alarm_filter_prefix = 1;</code>
       * @return The bytes for alarmFilterPrefix.
       */
      public com.google.protobuf.ByteString
          getAlarmFilterPrefixBytes() {
        java.lang.Object ref = alarmFilterPrefix_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmFilterPrefix_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string alarm_filter_prefix = 1;</code>
       * @param value The alarmFilterPrefix to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFilterPrefix(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmFilterPrefix_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_filter_prefix = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmFilterPrefix() {
        alarmFilterPrefix_ = getDefaultInstance().getAlarmFilterPrefix();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_filter_prefix = 1;</code>
       * @param value The bytes for alarmFilterPrefix to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFilterPrefixBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmFilterPrefix_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.QueryActiveAlarmsCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.QueryActiveAlarmsCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<QueryActiveAlarmsCommand>
        PARSER = new com.google.protobuf.AbstractParser<QueryActiveAlarmsCommand>() {
      @java.lang.Override
      public QueryActiveAlarmsCommand 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<QueryActiveAlarmsCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeAlarmByNameCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
     * may contain dots; the gateway-side parser splits on the first dot
     * after the '!' separator.
     * </pre>
     *
     * <code>string alarm_name = 1;</code>
     * @return The alarmName.
     */
    java.lang.String getAlarmName();
    /**
     * <pre>
     * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
     * may contain dots; the gateway-side parser splits on the first dot
     * after the '!' separator.
     * </pre>
     *
     * <code>string alarm_name = 1;</code>
     * @return The bytes for alarmName.
     */
    com.google.protobuf.ByteString
        getAlarmNameBytes();

    /**
     * <pre>
     * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
     * </pre>
     *
     * <code>string provider_name = 2;</code>
     * @return The providerName.
     */
    java.lang.String getProviderName();
    /**
     * <pre>
     * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
     * </pre>
     *
     * <code>string provider_name = 2;</code>
     * @return The bytes for providerName.
     */
    com.google.protobuf.ByteString
        getProviderNameBytes();

    /**
     * <pre>
     * Area/group name (e.g. "TestArea").
     * </pre>
     *
     * <code>string group_name = 3;</code>
     * @return The groupName.
     */
    java.lang.String getGroupName();
    /**
     * <pre>
     * Area/group name (e.g. "TestArea").
     * </pre>
     *
     * <code>string group_name = 3;</code>
     * @return The bytes for groupName.
     */
    com.google.protobuf.ByteString
        getGroupNameBytes();

    /**
     * <code>string comment = 4;</code>
     * @return The comment.
     */
    java.lang.String getComment();
    /**
     * <code>string comment = 4;</code>
     * @return The bytes for comment.
     */
    com.google.protobuf.ByteString
        getCommentBytes();

    /**
     * <code>string operator_user = 5;</code>
     * @return The operatorUser.
     */
    java.lang.String getOperatorUser();
    /**
     * <code>string operator_user = 5;</code>
     * @return The bytes for operatorUser.
     */
    com.google.protobuf.ByteString
        getOperatorUserBytes();

    /**
     * <code>string operator_node = 6;</code>
     * @return The operatorNode.
     */
    java.lang.String getOperatorNode();
    /**
     * <code>string operator_node = 6;</code>
     * @return The bytes for operatorNode.
     */
    com.google.protobuf.ByteString
        getOperatorNodeBytes();

    /**
     * <code>string operator_domain = 7;</code>
     * @return The operatorDomain.
     */
    java.lang.String getOperatorDomain();
    /**
     * <code>string operator_domain = 7;</code>
     * @return The bytes for operatorDomain.
     */
    com.google.protobuf.ByteString
        getOperatorDomainBytes();

    /**
     * <code>string operator_full_name = 8;</code>
     * @return The operatorFullName.
     */
    java.lang.String getOperatorFullName();
    /**
     * <code>string operator_full_name = 8;</code>
     * @return The bytes for operatorFullName.
     */
    com.google.protobuf.ByteString
        getOperatorFullNameBytes();
  }
  /**
   * <pre>
   * Acknowledge a single alarm by its (name, provider, group) tuple. Used
   * when the public RPC's AlarmFullReference (Provider!Group.Tag) cannot
   * be resolved to a GUID directly. The worker invokes
   * wwAlarmConsumerClass.AlarmAckByName which reaches the same alarm
   * history path as AlarmAckByGUID.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand}
   */
  public static final class AcknowledgeAlarmByNameCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand)
      AcknowledgeAlarmByNameCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AcknowledgeAlarmByNameCommand");
    }
    // Use AcknowledgeAlarmByNameCommand.newBuilder() to construct.
    private AcknowledgeAlarmByNameCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeAlarmByNameCommand() {
      alarmName_ = "";
      providerName_ = "";
      groupName_ = "";
      comment_ = "";
      operatorUser_ = "";
      operatorNode_ = "";
      operatorDomain_ = "";
      operatorFullName_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.Builder.class);
    }

    public static final int ALARM_NAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmName_ = "";
    /**
     * <pre>
     * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
     * may contain dots; the gateway-side parser splits on the first dot
     * after the '!' separator.
     * </pre>
     *
     * <code>string alarm_name = 1;</code>
     * @return The alarmName.
     */
    @java.lang.Override
    public java.lang.String getAlarmName() {
      java.lang.Object ref = alarmName_;
      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();
        alarmName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
     * may contain dots; the gateway-side parser splits on the first dot
     * after the '!' separator.
     * </pre>
     *
     * <code>string alarm_name = 1;</code>
     * @return The bytes for alarmName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmNameBytes() {
      java.lang.Object ref = alarmName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROVIDER_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object providerName_ = "";
    /**
     * <pre>
     * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
     * </pre>
     *
     * <code>string provider_name = 2;</code>
     * @return The providerName.
     */
    @java.lang.Override
    public java.lang.String getProviderName() {
      java.lang.Object ref = providerName_;
      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();
        providerName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
     * </pre>
     *
     * <code>string provider_name = 2;</code>
     * @return The bytes for providerName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getProviderNameBytes() {
      java.lang.Object ref = providerName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        providerName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GROUP_NAME_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object groupName_ = "";
    /**
     * <pre>
     * Area/group name (e.g. "TestArea").
     * </pre>
     *
     * <code>string group_name = 3;</code>
     * @return The groupName.
     */
    @java.lang.Override
    public java.lang.String getGroupName() {
      java.lang.Object ref = groupName_;
      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();
        groupName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Area/group name (e.g. "TestArea").
     * </pre>
     *
     * <code>string group_name = 3;</code>
     * @return The bytes for groupName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGroupNameBytes() {
      java.lang.Object ref = groupName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        groupName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMENT_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object comment_ = "";
    /**
     * <code>string comment = 4;</code>
     * @return The comment.
     */
    @java.lang.Override
    public java.lang.String getComment() {
      java.lang.Object ref = comment_;
      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();
        comment_ = s;
        return s;
      }
    }
    /**
     * <code>string comment = 4;</code>
     * @return The bytes for comment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCommentBytes() {
      java.lang.Object ref = comment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        comment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_USER_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorUser_ = "";
    /**
     * <code>string operator_user = 5;</code>
     * @return The operatorUser.
     */
    @java.lang.Override
    public java.lang.String getOperatorUser() {
      java.lang.Object ref = operatorUser_;
      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();
        operatorUser_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_user = 5;</code>
     * @return The bytes for operatorUser.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorUserBytes() {
      java.lang.Object ref = operatorUser_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorUser_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_NODE_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorNode_ = "";
    /**
     * <code>string operator_node = 6;</code>
     * @return The operatorNode.
     */
    @java.lang.Override
    public java.lang.String getOperatorNode() {
      java.lang.Object ref = operatorNode_;
      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();
        operatorNode_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_node = 6;</code>
     * @return The bytes for operatorNode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorNodeBytes() {
      java.lang.Object ref = operatorNode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorNode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_DOMAIN_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorDomain_ = "";
    /**
     * <code>string operator_domain = 7;</code>
     * @return The operatorDomain.
     */
    @java.lang.Override
    public java.lang.String getOperatorDomain() {
      java.lang.Object ref = operatorDomain_;
      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();
        operatorDomain_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_domain = 7;</code>
     * @return The bytes for operatorDomain.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorDomainBytes() {
      java.lang.Object ref = operatorDomain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorDomain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_FULL_NAME_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorFullName_ = "";
    /**
     * <code>string operator_full_name = 8;</code>
     * @return The operatorFullName.
     */
    @java.lang.Override
    public java.lang.String getOperatorFullName() {
      java.lang.Object ref = operatorFullName_;
      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();
        operatorFullName_ = s;
        return s;
      }
    }
    /**
     * <code>string operator_full_name = 8;</code>
     * @return The bytes for operatorFullName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorFullNameBytes() {
      java.lang.Object ref = operatorFullName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorFullName_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, alarmName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(providerName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, providerName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(groupName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, groupName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(comment_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, comment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorNode_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, operatorNode_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorDomain_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 7, operatorDomain_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorFullName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 8, operatorFullName_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, alarmName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(providerName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, providerName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(groupName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, groupName_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(comment_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, comment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorNode_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, operatorNode_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorDomain_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(7, operatorDomain_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorFullName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(8, operatorFullName_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand other = (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) obj;

      if (!getAlarmName()
          .equals(other.getAlarmName())) return false;
      if (!getProviderName()
          .equals(other.getProviderName())) return false;
      if (!getGroupName()
          .equals(other.getGroupName())) return false;
      if (!getComment()
          .equals(other.getComment())) return false;
      if (!getOperatorUser()
          .equals(other.getOperatorUser())) return false;
      if (!getOperatorNode()
          .equals(other.getOperatorNode())) return false;
      if (!getOperatorDomain()
          .equals(other.getOperatorDomain())) return false;
      if (!getOperatorFullName()
          .equals(other.getOperatorFullName())) 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();
      hash = (37 * hash) + ALARM_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmName().hashCode();
      hash = (37 * hash) + PROVIDER_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getProviderName().hashCode();
      hash = (37 * hash) + GROUP_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getGroupName().hashCode();
      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getComment().hashCode();
      hash = (37 * hash) + OPERATOR_USER_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorUser().hashCode();
      hash = (37 * hash) + OPERATOR_NODE_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorNode().hashCode();
      hash = (37 * hash) + OPERATOR_DOMAIN_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorDomain().hashCode();
      hash = (37 * hash) + OPERATOR_FULL_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorFullName().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand 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(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand 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;
    }
    /**
     * <pre>
     * Acknowledge a single alarm by its (name, provider, group) tuple. Used
     * when the public RPC's AlarmFullReference (Provider!Group.Tag) cannot
     * be resolved to a GUID directly. The worker invokes
     * wwAlarmConsumerClass.AlarmAckByName which reaches the same alarm
     * history path as AlarmAckByGUID.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand)
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        alarmName_ = "";
        providerName_ = "";
        groupName_ = "";
        comment_ = "";
        operatorUser_ = "";
        operatorNode_ = "";
        operatorDomain_ = "";
        operatorFullName_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand result = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.alarmName_ = alarmName_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.providerName_ = providerName_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.groupName_ = groupName_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.comment_ = comment_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.operatorUser_ = operatorUser_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.operatorNode_ = operatorNode_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.operatorDomain_ = operatorDomain_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.operatorFullName_ = operatorFullName_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand.getDefaultInstance()) return this;
        if (!other.getAlarmName().isEmpty()) {
          alarmName_ = other.alarmName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getProviderName().isEmpty()) {
          providerName_ = other.providerName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getGroupName().isEmpty()) {
          groupName_ = other.groupName_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getComment().isEmpty()) {
          comment_ = other.comment_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getOperatorUser().isEmpty()) {
          operatorUser_ = other.operatorUser_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (!other.getOperatorNode().isEmpty()) {
          operatorNode_ = other.operatorNode_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (!other.getOperatorDomain().isEmpty()) {
          operatorDomain_ = other.operatorDomain_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (!other.getOperatorFullName().isEmpty()) {
          operatorFullName_ = other.operatorFullName_;
          bitField0_ |= 0x00000080;
          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: {
                alarmName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                providerName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                groupName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                comment_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                operatorUser_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                operatorNode_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                operatorDomain_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                operatorFullName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              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 alarmName_ = "";
      /**
       * <pre>
       * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
       * may contain dots; the gateway-side parser splits on the first dot
       * after the '!' separator.
       * </pre>
       *
       * <code>string alarm_name = 1;</code>
       * @return The alarmName.
       */
      public java.lang.String getAlarmName() {
        java.lang.Object ref = alarmName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
       * may contain dots; the gateway-side parser splits on the first dot
       * after the '!' separator.
       * </pre>
       *
       * <code>string alarm_name = 1;</code>
       * @return The bytes for alarmName.
       */
      public com.google.protobuf.ByteString
          getAlarmNameBytes() {
        java.lang.Object ref = alarmName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
       * may contain dots; the gateway-side parser splits on the first dot
       * after the '!' separator.
       * </pre>
       *
       * <code>string alarm_name = 1;</code>
       * @param value The alarmName to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
       * may contain dots; the gateway-side parser splits on the first dot
       * after the '!' separator.
       * </pre>
       *
       * <code>string alarm_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmName() {
        alarmName_ = getDefaultInstance().getAlarmName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Tag/alarm name (e.g. "TestMachine_001.TestAlarm001"). Tag itself
       * may contain dots; the gateway-side parser splits on the first dot
       * after the '!' separator.
       * </pre>
       *
       * <code>string alarm_name = 1;</code>
       * @param value The bytes for alarmName to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object providerName_ = "";
      /**
       * <pre>
       * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
       * </pre>
       *
       * <code>string provider_name = 2;</code>
       * @return The providerName.
       */
      public java.lang.String getProviderName() {
        java.lang.Object ref = providerName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          providerName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
       * </pre>
       *
       * <code>string provider_name = 2;</code>
       * @return The bytes for providerName.
       */
      public com.google.protobuf.ByteString
          getProviderNameBytes() {
        java.lang.Object ref = providerName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          providerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
       * </pre>
       *
       * <code>string provider_name = 2;</code>
       * @param value The providerName to set.
       * @return This builder for chaining.
       */
      public Builder setProviderName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        providerName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
       * </pre>
       *
       * <code>string provider_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearProviderName() {
        providerName_ = getDefaultInstance().getProviderName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * AVEVA alarm-provider name (literal "Galaxy" for ArchestrA Galaxies).
       * </pre>
       *
       * <code>string provider_name = 2;</code>
       * @param value The bytes for providerName to set.
       * @return This builder for chaining.
       */
      public Builder setProviderNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        providerName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object groupName_ = "";
      /**
       * <pre>
       * Area/group name (e.g. "TestArea").
       * </pre>
       *
       * <code>string group_name = 3;</code>
       * @return The groupName.
       */
      public java.lang.String getGroupName() {
        java.lang.Object ref = groupName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          groupName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Area/group name (e.g. "TestArea").
       * </pre>
       *
       * <code>string group_name = 3;</code>
       * @return The bytes for groupName.
       */
      public com.google.protobuf.ByteString
          getGroupNameBytes() {
        java.lang.Object ref = groupName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          groupName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Area/group name (e.g. "TestArea").
       * </pre>
       *
       * <code>string group_name = 3;</code>
       * @param value The groupName to set.
       * @return This builder for chaining.
       */
      public Builder setGroupName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        groupName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Area/group name (e.g. "TestArea").
       * </pre>
       *
       * <code>string group_name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGroupName() {
        groupName_ = getDefaultInstance().getGroupName();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Area/group name (e.g. "TestArea").
       * </pre>
       *
       * <code>string group_name = 3;</code>
       * @param value The bytes for groupName to set.
       * @return This builder for chaining.
       */
      public Builder setGroupNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        groupName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object comment_ = "";
      /**
       * <code>string comment = 4;</code>
       * @return The comment.
       */
      public java.lang.String getComment() {
        java.lang.Object ref = comment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          comment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string comment = 4;</code>
       * @return The bytes for comment.
       */
      public com.google.protobuf.ByteString
          getCommentBytes() {
        java.lang.Object ref = comment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          comment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string comment = 4;</code>
       * @param value The comment to set.
       * @return This builder for chaining.
       */
      public Builder setComment(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        comment_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearComment() {
        comment_ = getDefaultInstance().getComment();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 4;</code>
       * @param value The bytes for comment to set.
       * @return This builder for chaining.
       */
      public Builder setCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        comment_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object operatorUser_ = "";
      /**
       * <code>string operator_user = 5;</code>
       * @return The operatorUser.
       */
      public java.lang.String getOperatorUser() {
        java.lang.Object ref = operatorUser_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorUser_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_user = 5;</code>
       * @return The bytes for operatorUser.
       */
      public com.google.protobuf.ByteString
          getOperatorUserBytes() {
        java.lang.Object ref = operatorUser_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorUser_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_user = 5;</code>
       * @param value The operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUser(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorUser_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_user = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorUser() {
        operatorUser_ = getDefaultInstance().getOperatorUser();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_user = 5;</code>
       * @param value The bytes for operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorUser_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object operatorNode_ = "";
      /**
       * <code>string operator_node = 6;</code>
       * @return The operatorNode.
       */
      public java.lang.String getOperatorNode() {
        java.lang.Object ref = operatorNode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorNode_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_node = 6;</code>
       * @return The bytes for operatorNode.
       */
      public com.google.protobuf.ByteString
          getOperatorNodeBytes() {
        java.lang.Object ref = operatorNode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorNode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_node = 6;</code>
       * @param value The operatorNode to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorNode(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorNode_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_node = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorNode() {
        operatorNode_ = getDefaultInstance().getOperatorNode();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_node = 6;</code>
       * @param value The bytes for operatorNode to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorNodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorNode_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private java.lang.Object operatorDomain_ = "";
      /**
       * <code>string operator_domain = 7;</code>
       * @return The operatorDomain.
       */
      public java.lang.String getOperatorDomain() {
        java.lang.Object ref = operatorDomain_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorDomain_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_domain = 7;</code>
       * @return The bytes for operatorDomain.
       */
      public com.google.protobuf.ByteString
          getOperatorDomainBytes() {
        java.lang.Object ref = operatorDomain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorDomain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_domain = 7;</code>
       * @param value The operatorDomain to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorDomain(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorDomain_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_domain = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorDomain() {
        operatorDomain_ = getDefaultInstance().getOperatorDomain();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_domain = 7;</code>
       * @param value The bytes for operatorDomain to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorDomainBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorDomain_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private java.lang.Object operatorFullName_ = "";
      /**
       * <code>string operator_full_name = 8;</code>
       * @return The operatorFullName.
       */
      public java.lang.String getOperatorFullName() {
        java.lang.Object ref = operatorFullName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorFullName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string operator_full_name = 8;</code>
       * @return The bytes for operatorFullName.
       */
      public com.google.protobuf.ByteString
          getOperatorFullNameBytes() {
        java.lang.Object ref = operatorFullName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorFullName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string operator_full_name = 8;</code>
       * @param value The operatorFullName to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorFullName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorFullName_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>string operator_full_name = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorFullName() {
        operatorFullName_ = getDefaultInstance().getOperatorFullName();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>string operator_full_name = 8;</code>
       * @param value The bytes for operatorFullName to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorFullNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorFullName_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AcknowledgeAlarmByNameCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeAlarmByNameCommand>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeAlarmByNameCommand>() {
      @java.lang.Override
      public AcknowledgeAlarmByNameCommand 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<AcknowledgeAlarmByNameCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmByNameCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UnsubscribeBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.UnsubscribeBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    java.util.List<java.lang.Integer> getItemHandlesList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    int getItemHandlesCount();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    int getItemHandles(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.UnsubscribeBulkCommand}
   */
  public static final class UnsubscribeBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.UnsubscribeBulkCommand)
      UnsubscribeBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "UnsubscribeBulkCommand");
    }
    // Use UnsubscribeBulkCommand.newBuilder() to construct.
    private UnsubscribeBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private UnsubscribeBulkCommand() {
      itemHandles_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList itemHandles_ =
        emptyIntList();
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return A list containing the itemHandles.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getItemHandlesList() {
      return itemHandles_;
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @return The count of itemHandles.
     */
    public int getItemHandlesCount() {
      return itemHandles_.size();
    }
    /**
     * <code>repeated int32 item_handles = 2;</code>
     * @param index The index of the element to return.
     * @return The itemHandles at the given index.
     */
    public int getItemHandles(int index) {
      return itemHandles_.getInt(index);
    }
    private int itemHandlesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (getItemHandlesList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(itemHandlesMemoizedSerializedSize);
      }
      for (int i = 0; i < itemHandles_.size(); i++) {
        output.writeInt32NoTag(itemHandles_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < itemHandles_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(itemHandles_.getInt(i));
        }
        size += dataSize;
        if (!getItemHandlesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        itemHandlesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getItemHandlesList()
          .equals(other.getItemHandlesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getItemHandlesCount() > 0) {
        hash = (37 * hash) + ITEM_HANDLES_FIELD_NUMBER;
        hash = (53 * hash) + getItemHandlesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand 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 mxaccess_gateway.v1.UnsubscribeBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.UnsubscribeBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandles_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          itemHandles_.makeImmutable();
          result.itemHandles_ = itemHandles_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.itemHandles_.isEmpty()) {
          if (itemHandles_.isEmpty()) {
            itemHandles_ = other.itemHandles_;
            itemHandles_.makeImmutable();
            bitField0_ |= 0x00000002;
          } else {
            ensureItemHandlesIsMutable();
            itemHandles_.addAll(other.itemHandles_);
          }
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int v = input.readInt32();
                ensureItemHandlesIsMutable();
                itemHandles_.addInt(v);
                break;
              } // case 16
              case 18: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureItemHandlesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  itemHandles_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList itemHandles_ = emptyIntList();
      private void ensureItemHandlesIsMutable() {
        if (!itemHandles_.isModifiable()) {
          itemHandles_ = makeMutableCopy(itemHandles_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return A list containing the itemHandles.
       */
      public java.util.List<java.lang.Integer>
          getItemHandlesList() {
        itemHandles_.makeImmutable();
        return itemHandles_;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return The count of itemHandles.
       */
      public int getItemHandlesCount() {
        return itemHandles_.size();
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index of the element to return.
       * @return The itemHandles at the given index.
       */
      public int getItemHandles(int index) {
        return itemHandles_.getInt(index);
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param index The index to set the value at.
       * @param value The itemHandles to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandles(
          int index, int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.setInt(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param value The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addItemHandles(int value) {

        ensureItemHandlesIsMutable();
        itemHandles_.addInt(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @param values The itemHandles to add.
       * @return This builder for chaining.
       */
      public Builder addAllItemHandles(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureItemHandlesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, itemHandles_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 item_handles = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandles() {
        itemHandles_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.UnsubscribeBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.UnsubscribeBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UnsubscribeBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<UnsubscribeBulkCommand>() {
      @java.lang.Override
      public UnsubscribeBulkCommand 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<UnsubscribeBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.UnsubscribeBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry> 
        getEntriesList();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry getEntries(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Bulk Write — sequential MXAccess Write per entry, on the worker's STA.
   * MXAccess has no native bulk write; each entry round-trips through the same
   * single-item Write path the gateway uses today. Per-item failures appear as
   * BulkWriteResult entries with `was_successful = false` and never throw.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.WriteBulkCommand}
   */
  public static final class WriteBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteBulkCommand)
      WriteBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteBulkCommand");
    }
    // Use WriteBulkCommand.newBuilder() to construct.
    private WriteBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteBulkCommand() {
      entries_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ENTRIES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry> entries_;
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getEntriesList()
          .equals(other.getEntriesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand 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;
    }
    /**
     * <pre>
     * Bulk Write — sequential MXAccess Write per entry, on the worker's STA.
     * MXAccess has no native bulk write; each entry round-trips through the same
     * single-item Write path the gateway uses today. Per-item failures appear as
     * BulkWriteResult entries with `was_successful = false` and never throw.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.WriteBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
        } else {
          entries_ = null;
          entriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand result) {
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.parser(),
                        extensionRegistry);
                if (entriesBuilder_ == null) {
                  ensureEntriesIsMutable();
                  entries_.add(m);
                } else {
                  entriesBuilder_.addMessage(m);
                }
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entries_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry>(entries_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder addEntries(mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder getEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder addEntriesBuilder() {
        return internalGetEntriesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder addEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteBulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder> 
           getEntriesBuilderList() {
        return internalGetEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder> 
          internalGetEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<WriteBulkCommand>() {
      @java.lang.Override
      public WriteBulkCommand 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<WriteBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteBulkEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteBulkEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>int32 user_id = 3;</code>
     * @return The userId.
     */
    int getUserId();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.WriteBulkEntry}
   */
  public static final class WriteBulkEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteBulkEntry)
      WriteBulkEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteBulkEntry");
    }
    // Use WriteBulkEntry.newBuilder() to construct.
    private WriteBulkEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteBulkEntry() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder.class);
    }

    private int bitField0_;
    public static final int ITEM_HANDLE_FIELD_NUMBER = 1;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int USER_ID_FIELD_NUMBER = 3;
    private int userId_ = 0;
    /**
     * <code>int32 user_id = 3;</code>
     * @return The userId.
     */
    @java.lang.Override
    public int getUserId() {
      return userId_;
    }

    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 (itemHandle_ != 0) {
        output.writeInt32(1, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getValue());
      }
      if (userId_ != 0) {
        output.writeInt32(3, userId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getValue());
      }
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, userId_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry other = (mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry) obj;

      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (getUserId()
          != other.getUserId()) 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();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (37 * hash) + USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry 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(mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry 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 mxaccess_gateway.v1.WriteBulkEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteBulkEntry)
        mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemHandle_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        userId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteBulkEntry_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry result = new mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.userId_ = userId_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry.getDefaultInstance()) return this;
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        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 8: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                userId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              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 int itemHandle_ ;
      /**
       * <code>int32 item_handle = 1;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private int userId_ ;
      /**
       * <code>int32 user_id = 3;</code>
       * @return The userId.
       */
      @java.lang.Override
      public int getUserId() {
        return userId_;
      }
      /**
       * <code>int32 user_id = 3;</code>
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 user_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        userId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteBulkEntry)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteBulkEntry)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteBulkEntry>
        PARSER = new com.google.protobuf.AbstractParser<WriteBulkEntry>() {
      @java.lang.Override
      public WriteBulkEntry 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<WriteBulkEntry> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteBulkEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface Write2BulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.Write2BulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry> 
        getEntriesList();
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry getEntries(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Bulk Write2 — sequential MXAccess Write2 (timestamped) per entry.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.Write2BulkCommand}
   */
  public static final class Write2BulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.Write2BulkCommand)
      Write2BulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "Write2BulkCommand");
    }
    // Use Write2BulkCommand.newBuilder() to construct.
    private Write2BulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Write2BulkCommand() {
      entries_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ENTRIES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry> entries_;
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getEntriesList()
          .equals(other.getEntriesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand 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;
    }
    /**
     * <pre>
     * Bulk Write2 — sequential MXAccess Write2 (timestamped) per entry.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.Write2BulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.Write2BulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
        } else {
          entries_ = null;
          entriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand result) {
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.parser(),
                        extensionRegistry);
                if (entriesBuilder_ == null) {
                  ensureEntriesIsMutable();
                  entries_.add(m);
                } else {
                  entriesBuilder_.addMessage(m);
                }
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entries_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry>(entries_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder getEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder addEntriesBuilder() {
        return internalGetEntriesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder addEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.Write2BulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder> 
           getEntriesBuilderList() {
        return internalGetEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder> 
          internalGetEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.Write2BulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.Write2BulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Write2BulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<Write2BulkCommand>() {
      @java.lang.Override
      public Write2BulkCommand 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<Write2BulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2BulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface Write2BulkEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.Write2BulkEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
     * @return Whether the timestampValue field is set.
     */
    boolean hasTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
     * @return The timestampValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder();

    /**
     * <code>int32 user_id = 4;</code>
     * @return The userId.
     */
    int getUserId();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.Write2BulkEntry}
   */
  public static final class Write2BulkEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.Write2BulkEntry)
      Write2BulkEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "Write2BulkEntry");
    }
    // Use Write2BulkEntry.newBuilder() to construct.
    private Write2BulkEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Write2BulkEntry() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder.class);
    }

    private int bitField0_;
    public static final int ITEM_HANDLE_FIELD_NUMBER = 1;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int TIMESTAMP_VALUE_FIELD_NUMBER = 3;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
     * @return Whether the timestampValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
     * @return The timestampValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }

    public static final int USER_ID_FIELD_NUMBER = 4;
    private int userId_ = 0;
    /**
     * <code>int32 user_id = 4;</code>
     * @return The userId.
     */
    @java.lang.Override
    public int getUserId() {
      return userId_;
    }

    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 (itemHandle_ != 0) {
        output.writeInt32(1, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(3, getTimestampValue());
      }
      if (userId_ != 0) {
        output.writeInt32(4, userId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getTimestampValue());
      }
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, userId_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry other = (mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry) obj;

      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (hasTimestampValue() != other.hasTimestampValue()) return false;
      if (hasTimestampValue()) {
        if (!getTimestampValue()
            .equals(other.getTimestampValue())) return false;
      }
      if (getUserId()
          != other.getUserId()) 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();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      if (hasTimestampValue()) {
        hash = (37 * hash) + TIMESTAMP_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getTimestampValue().hashCode();
      }
      hash = (37 * hash) + USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry 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(mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry 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 mxaccess_gateway.v1.Write2BulkEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.Write2BulkEntry)
        mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
          internalGetTimestampValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemHandle_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        userId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Write2BulkEntry_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry build() {
        mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry result = new mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.timestampValue_ = timestampValueBuilder_ == null
              ? timestampValue_
              : timestampValueBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.userId_ = userId_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry.getDefaultInstance()) return this;
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.hasTimestampValue()) {
          mergeTimestampValue(other.getTimestampValue());
        }
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        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 8: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    internalGetTimestampValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                userId_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              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 int itemHandle_ ;
      /**
       * <code>int32 item_handle = 1;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> timestampValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       * @return Whether the timestampValue field is set.
       */
      public boolean hasTimestampValue() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       * @return The timestampValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
        if (timestampValueBuilder_ == null) {
          return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        } else {
          return timestampValueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       */
      public Builder setTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timestampValue_ = value;
        } else {
          timestampValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       */
      public Builder setTimestampValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (timestampValueBuilder_ == null) {
          timestampValue_ = builderForValue.build();
        } else {
          timestampValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       */
      public Builder mergeTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            timestampValue_ != null &&
            timestampValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getTimestampValueBuilder().mergeFrom(value);
          } else {
            timestampValue_ = value;
          }
        } else {
          timestampValueBuilder_.mergeFrom(value);
        }
        if (timestampValue_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       */
      public Builder clearTimestampValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getTimestampValueBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetTimestampValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
        if (timestampValueBuilder_ != null) {
          return timestampValueBuilder_.getMessageOrBuilder();
        } else {
          return timestampValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetTimestampValueFieldBuilder() {
        if (timestampValueBuilder_ == null) {
          timestampValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getTimestampValue(),
                  getParentForChildren(),
                  isClean());
          timestampValue_ = null;
        }
        return timestampValueBuilder_;
      }

      private int userId_ ;
      /**
       * <code>int32 user_id = 4;</code>
       * @return The userId.
       */
      @java.lang.Override
      public int getUserId() {
        return userId_;
      }
      /**
       * <code>int32 user_id = 4;</code>
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 user_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        userId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.Write2BulkEntry)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.Write2BulkEntry)
    private static final mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Write2BulkEntry>
        PARSER = new com.google.protobuf.AbstractParser<Write2BulkEntry>() {
      @java.lang.Override
      public Write2BulkEntry 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<Write2BulkEntry> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Write2BulkEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteSecuredBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteSecuredBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry> 
        getEntriesList();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry getEntries(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Bulk WriteSecured — sequential MXAccess WriteSecured per entry.
   * Credential-sensitive values (`value`) MUST be kept out of logs, metrics
   * labels, command lines, and diagnostics — same redaction rules as the
   * single-item WriteSecured contract.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.WriteSecuredBulkCommand}
   */
  public static final class WriteSecuredBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteSecuredBulkCommand)
      WriteSecuredBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteSecuredBulkCommand");
    }
    // Use WriteSecuredBulkCommand.newBuilder() to construct.
    private WriteSecuredBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteSecuredBulkCommand() {
      entries_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ENTRIES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry> entries_;
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getEntriesList()
          .equals(other.getEntriesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand 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;
    }
    /**
     * <pre>
     * Bulk WriteSecured — sequential MXAccess WriteSecured per entry.
     * Credential-sensitive values (`value`) MUST be kept out of logs, metrics
     * labels, command lines, and diagnostics — same redaction rules as the
     * single-item WriteSecured contract.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.WriteSecuredBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteSecuredBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
        } else {
          entries_ = null;
          entriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand result) {
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.parser(),
                        extensionRegistry);
                if (entriesBuilder_ == null) {
                  ensureEntriesIsMutable();
                  entries_.add(m);
                } else {
                  entriesBuilder_.addMessage(m);
                }
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entries_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry>(entries_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder addEntries(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder getEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder addEntriesBuilder() {
        return internalGetEntriesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder addEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecuredBulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder> 
           getEntriesBuilderList() {
        return internalGetEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder> 
          internalGetEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteSecuredBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteSecuredBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteSecuredBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<WriteSecuredBulkCommand>() {
      @java.lang.Override
      public WriteSecuredBulkCommand 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<WriteSecuredBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteSecuredBulkEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteSecuredBulkEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>int32 current_user_id = 2;</code>
     * @return The currentUserId.
     */
    int getCurrentUserId();

    /**
     * <code>int32 verifier_user_id = 3;</code>
     * @return The verifierUserId.
     */
    int getVerifierUserId();

    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.WriteSecuredBulkEntry}
   */
  public static final class WriteSecuredBulkEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteSecuredBulkEntry)
      WriteSecuredBulkEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteSecuredBulkEntry");
    }
    // Use WriteSecuredBulkEntry.newBuilder() to construct.
    private WriteSecuredBulkEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteSecuredBulkEntry() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder.class);
    }

    private int bitField0_;
    public static final int ITEM_HANDLE_FIELD_NUMBER = 1;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int CURRENT_USER_ID_FIELD_NUMBER = 2;
    private int currentUserId_ = 0;
    /**
     * <code>int32 current_user_id = 2;</code>
     * @return The currentUserId.
     */
    @java.lang.Override
    public int getCurrentUserId() {
      return currentUserId_;
    }

    public static final int VERIFIER_USER_ID_FIELD_NUMBER = 3;
    private int verifierUserId_ = 0;
    /**
     * <code>int32 verifier_user_id = 3;</code>
     * @return The verifierUserId.
     */
    @java.lang.Override
    public int getVerifierUserId() {
      return verifierUserId_;
    }

    public static final int VALUE_FIELD_NUMBER = 4;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    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 (itemHandle_ != 0) {
        output.writeInt32(1, itemHandle_);
      }
      if (currentUserId_ != 0) {
        output.writeInt32(2, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        output.writeInt32(3, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getValue());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemHandle_);
      }
      if (currentUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getValue());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry other = (mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry) obj;

      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (getCurrentUserId()
          != other.getCurrentUserId()) return false;
      if (getVerifierUserId()
          != other.getVerifierUserId()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) 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();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (37 * hash) + CURRENT_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentUserId();
      hash = (37 * hash) + VERIFIER_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getVerifierUserId();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry 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(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry 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 mxaccess_gateway.v1.WriteSecuredBulkEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteSecuredBulkEntry)
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemHandle_ = 0;
        currentUserId_ = 0;
        verifierUserId_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry result = new mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.currentUserId_ = currentUserId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.verifierUserId_ = verifierUserId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry.getDefaultInstance()) return this;
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.getCurrentUserId() != 0) {
          setCurrentUserId(other.getCurrentUserId());
        }
        if (other.getVerifierUserId() != 0) {
          setVerifierUserId(other.getVerifierUserId());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        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 8: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                currentUserId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                verifierUserId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 int itemHandle_ ;
      /**
       * <code>int32 item_handle = 1;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private int currentUserId_ ;
      /**
       * <code>int32 current_user_id = 2;</code>
       * @return The currentUserId.
       */
      @java.lang.Override
      public int getCurrentUserId() {
        return currentUserId_;
      }
      /**
       * <code>int32 current_user_id = 2;</code>
       * @param value The currentUserId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentUserId(int value) {

        currentUserId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 current_user_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentUserId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        currentUserId_ = 0;
        onChanged();
        return this;
      }

      private int verifierUserId_ ;
      /**
       * <code>int32 verifier_user_id = 3;</code>
       * @return The verifierUserId.
       */
      @java.lang.Override
      public int getVerifierUserId() {
        return verifierUserId_;
      }
      /**
       * <code>int32 verifier_user_id = 3;</code>
       * @param value The verifierUserId to set.
       * @return This builder for chaining.
       */
      public Builder setVerifierUserId(int value) {

        verifierUserId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 verifier_user_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerifierUserId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        verifierUserId_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000008);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteSecuredBulkEntry)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteSecuredBulkEntry)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteSecuredBulkEntry>
        PARSER = new com.google.protobuf.AbstractParser<WriteSecuredBulkEntry>() {
      @java.lang.Override
      public WriteSecuredBulkEntry 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<WriteSecuredBulkEntry> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecuredBulkEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteSecured2BulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteSecured2BulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry> 
        getEntriesList();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry getEntries(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Bulk WriteSecured2 — sequential MXAccess WriteSecured2 (timestamped) per
   * entry. Same redaction rules apply.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.WriteSecured2BulkCommand}
   */
  public static final class WriteSecured2BulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteSecured2BulkCommand)
      WriteSecured2BulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteSecured2BulkCommand");
    }
    // Use WriteSecured2BulkCommand.newBuilder() to construct.
    private WriteSecured2BulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteSecured2BulkCommand() {
      entries_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ENTRIES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry> entries_;
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getEntriesList()
          .equals(other.getEntriesList())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand 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;
    }
    /**
     * <pre>
     * Bulk WriteSecured2 — sequential MXAccess WriteSecured2 (timestamped) per
     * entry. Same redaction rules apply.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.WriteSecured2BulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteSecured2BulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
        } else {
          entries_ = null;
          entriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand result) {
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.parser(),
                        extensionRegistry);
                if (entriesBuilder_ == null) {
                  ensureEntriesIsMutable();
                  entries_.add(m);
                } else {
                  entriesBuilder_.addMessage(m);
                }
                break;
              } // case 18
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entries_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry>(entries_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder setEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder addEntries(
          int index, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder getEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder addEntriesBuilder() {
        return internalGetEntriesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder addEntriesBuilder(
          int index) {
        return internalGetEntriesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.WriteSecured2BulkEntry entries = 2;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder> 
           getEntriesBuilderList() {
        return internalGetEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder> 
          internalGetEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteSecured2BulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteSecured2BulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteSecured2BulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<WriteSecured2BulkCommand>() {
      @java.lang.Override
      public WriteSecured2BulkCommand 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<WriteSecured2BulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteSecured2BulkEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WriteSecured2BulkEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>int32 current_user_id = 2;</code>
     * @return The currentUserId.
     */
    int getCurrentUserId();

    /**
     * <code>int32 verifier_user_id = 3;</code>
     * @return The verifierUserId.
     */
    int getVerifierUserId();

    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
     * @return Whether the timestampValue field is set.
     */
    boolean hasTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
     * @return The timestampValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.WriteSecured2BulkEntry}
   */
  public static final class WriteSecured2BulkEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WriteSecured2BulkEntry)
      WriteSecured2BulkEntryOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WriteSecured2BulkEntry");
    }
    // Use WriteSecured2BulkEntry.newBuilder() to construct.
    private WriteSecured2BulkEntry(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WriteSecured2BulkEntry() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder.class);
    }

    private int bitField0_;
    public static final int ITEM_HANDLE_FIELD_NUMBER = 1;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int CURRENT_USER_ID_FIELD_NUMBER = 2;
    private int currentUserId_ = 0;
    /**
     * <code>int32 current_user_id = 2;</code>
     * @return The currentUserId.
     */
    @java.lang.Override
    public int getCurrentUserId() {
      return currentUserId_;
    }

    public static final int VERIFIER_USER_ID_FIELD_NUMBER = 3;
    private int verifierUserId_ = 0;
    /**
     * <code>int32 verifier_user_id = 3;</code>
     * @return The verifierUserId.
     */
    @java.lang.Override
    public int getVerifierUserId() {
      return verifierUserId_;
    }

    public static final int VALUE_FIELD_NUMBER = 4;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <pre>
     * Credential-sensitive write value. Implementations must not log this field
     * unless an explicit redacted value-logging path is enabled.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int TIMESTAMP_VALUE_FIELD_NUMBER = 5;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
     * @return Whether the timestampValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
     * @return The timestampValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
      return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
    }

    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 (itemHandle_ != 0) {
        output.writeInt32(1, itemHandle_);
      }
      if (currentUserId_ != 0) {
        output.writeInt32(2, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        output.writeInt32(3, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(5, getTimestampValue());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemHandle_);
      }
      if (currentUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, currentUserId_);
      }
      if (verifierUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, verifierUserId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getValue());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getTimestampValue());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry other = (mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry) obj;

      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (getCurrentUserId()
          != other.getCurrentUserId()) return false;
      if (getVerifierUserId()
          != other.getVerifierUserId()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (hasTimestampValue() != other.hasTimestampValue()) return false;
      if (hasTimestampValue()) {
        if (!getTimestampValue()
            .equals(other.getTimestampValue())) 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();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (37 * hash) + CURRENT_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentUserId();
      hash = (37 * hash) + VERIFIER_USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getVerifierUserId();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      if (hasTimestampValue()) {
        hash = (37 * hash) + TIMESTAMP_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getTimestampValue().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry 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 mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry 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(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry 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 mxaccess_gateway.v1.WriteSecured2BulkEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WriteSecured2BulkEntry)
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.class, mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
          internalGetTimestampValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemHandle_ = 0;
        currentUserId_ = 0;
        verifierUserId_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry build() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry result = new mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.currentUserId_ = currentUserId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.verifierUserId_ = verifierUserId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.timestampValue_ = timestampValueBuilder_ == null
              ? timestampValue_
              : timestampValueBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry.getDefaultInstance()) return this;
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.getCurrentUserId() != 0) {
          setCurrentUserId(other.getCurrentUserId());
        }
        if (other.getVerifierUserId() != 0) {
          setVerifierUserId(other.getVerifierUserId());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.hasTimestampValue()) {
          mergeTimestampValue(other.getTimestampValue());
        }
        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 8: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                currentUserId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                verifierUserId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    internalGetTimestampValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              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 int itemHandle_ ;
      /**
       * <code>int32 item_handle = 1;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private int currentUserId_ ;
      /**
       * <code>int32 current_user_id = 2;</code>
       * @return The currentUserId.
       */
      @java.lang.Override
      public int getCurrentUserId() {
        return currentUserId_;
      }
      /**
       * <code>int32 current_user_id = 2;</code>
       * @param value The currentUserId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentUserId(int value) {

        currentUserId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 current_user_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentUserId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        currentUserId_ = 0;
        onChanged();
        return this;
      }

      private int verifierUserId_ ;
      /**
       * <code>int32 verifier_user_id = 3;</code>
       * @return The verifierUserId.
       */
      @java.lang.Override
      public int getVerifierUserId() {
        return verifierUserId_;
      }
      /**
       * <code>int32 verifier_user_id = 3;</code>
       * @param value The verifierUserId to set.
       * @return This builder for chaining.
       */
      public Builder setVerifierUserId(int value) {

        verifierUserId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 verifier_user_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVerifierUserId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        verifierUserId_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000008);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <pre>
       * Credential-sensitive write value. Implementations must not log this field
       * unless an explicit redacted value-logging path is enabled.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue timestampValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> timestampValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       * @return Whether the timestampValue field is set.
       */
      public boolean hasTimestampValue() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       * @return The timestampValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getTimestampValue() {
        if (timestampValueBuilder_ == null) {
          return timestampValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        } else {
          return timestampValueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       */
      public Builder setTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timestampValue_ = value;
        } else {
          timestampValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       */
      public Builder setTimestampValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (timestampValueBuilder_ == null) {
          timestampValue_ = builderForValue.build();
        } else {
          timestampValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       */
      public Builder mergeTimestampValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (timestampValueBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            timestampValue_ != null &&
            timestampValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getTimestampValueBuilder().mergeFrom(value);
          } else {
            timestampValue_ = value;
          }
        } else {
          timestampValueBuilder_.mergeFrom(value);
        }
        if (timestampValue_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       */
      public Builder clearTimestampValue() {
        bitField0_ = (bitField0_ & ~0x00000010);
        timestampValue_ = null;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.dispose();
          timestampValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getTimestampValueBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return internalGetTimestampValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getTimestampValueOrBuilder() {
        if (timestampValueBuilder_ != null) {
          return timestampValueBuilder_.getMessageOrBuilder();
        } else {
          return timestampValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : timestampValue_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue timestamp_value = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetTimestampValueFieldBuilder() {
        if (timestampValueBuilder_ == null) {
          timestampValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getTimestampValue(),
                  getParentForChildren(),
                  isClean());
          timestampValue_ = null;
        }
        return timestampValueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WriteSecured2BulkEntry)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WriteSecured2BulkEntry)
    private static final mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WriteSecured2BulkEntry>
        PARSER = new com.google.protobuf.AbstractParser<WriteSecured2BulkEntry>() {
      @java.lang.Override
      public WriteSecured2BulkEntry 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<WriteSecured2BulkEntry> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WriteSecured2BulkEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ReadBulkCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ReadBulkCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return A list containing the tagAddresses.
     */
    java.util.List<java.lang.String>
        getTagAddressesList();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return The count of tagAddresses.
     */
    int getTagAddressesCount();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the element to return.
     * @return The tagAddresses at the given index.
     */
    java.lang.String getTagAddresses(int index);
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagAddresses at the given index.
     */
    com.google.protobuf.ByteString
        getTagAddressesBytes(int index);

    /**
     * <code>uint32 timeout_ms = 3;</code>
     * @return The timeoutMs.
     */
    int getTimeoutMs();
  }
  /**
   * <pre>
   * Bulk Read — snapshot the current value for each requested tag. MXAccess COM
   * has no synchronous Read; the worker implements ReadBulk as:
   *
   * - If the tag is already in the session's item registry AND that item is
   * currently advised AND the worker has a cached OnDataChange for it, the
   * reply returns the cached value WITHOUT modifying the existing
   * subscription (was_cached = true).
   * - Otherwise the worker takes the snapshot lifecycle itself: AddItem +
   * Advise, wait up to `timeout_ms` for the first OnDataChange, then
   * UnAdvise + RemoveItem before returning. The session is left exactly
   * as it was before the call (was_cached = false).
   *
   * `timeout_ms == 0` uses the gateway-configured default (1000 ms).
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.ReadBulkCommand}
   */
  public static final class ReadBulkCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ReadBulkCommand)
      ReadBulkCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ReadBulkCommand");
    }
    // Use ReadBulkCommand.newBuilder() to construct.
    private ReadBulkCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ReadBulkCommand() {
      tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReadBulkCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReadBulkCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int TAG_ADDRESSES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList tagAddresses_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return A list containing the tagAddresses.
     */
    public com.google.protobuf.ProtocolStringList
        getTagAddressesList() {
      return tagAddresses_;
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @return The count of tagAddresses.
     */
    public int getTagAddressesCount() {
      return tagAddresses_.size();
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the element to return.
     * @return The tagAddresses at the given index.
     */
    public java.lang.String getTagAddresses(int index) {
      return tagAddresses_.get(index);
    }
    /**
     * <code>repeated string tag_addresses = 2;</code>
     * @param index The index of the value to return.
     * @return The bytes of the tagAddresses at the given index.
     */
    public com.google.protobuf.ByteString
        getTagAddressesBytes(int index) {
      return tagAddresses_.getByteString(index);
    }

    public static final int TIMEOUT_MS_FIELD_NUMBER = 3;
    private int timeoutMs_ = 0;
    /**
     * <code>uint32 timeout_ms = 3;</code>
     * @return The timeoutMs.
     */
    @java.lang.Override
    public int getTimeoutMs() {
      return timeoutMs_;
    }

    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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      for (int i = 0; i < tagAddresses_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, tagAddresses_.getRaw(i));
      }
      if (timeoutMs_ != 0) {
        output.writeUInt32(3, timeoutMs_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tagAddresses_.size(); i++) {
          dataSize += computeStringSizeNoTag(tagAddresses_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTagAddressesList().size();
      }
      if (timeoutMs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, timeoutMs_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand other = (mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getTagAddressesList()
          .equals(other.getTagAddressesList())) return false;
      if (getTimeoutMs()
          != other.getTimeoutMs()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      if (getTagAddressesCount() > 0) {
        hash = (37 * hash) + TAG_ADDRESSES_FIELD_NUMBER;
        hash = (53 * hash) + getTagAddressesList().hashCode();
      }
      hash = (37 * hash) + TIMEOUT_MS_FIELD_NUMBER;
      hash = (53 * hash) + getTimeoutMs();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand 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 mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand 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(mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand 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;
    }
    /**
     * <pre>
     * Bulk Read — snapshot the current value for each requested tag. MXAccess COM
     * has no synchronous Read; the worker implements ReadBulk as:
     *
     * - If the tag is already in the session's item registry AND that item is
     * currently advised AND the worker has a cached OnDataChange for it, the
     * reply returns the cached value WITHOUT modifying the existing
     * subscription (was_cached = true).
     * - Otherwise the worker takes the snapshot lifecycle itself: AddItem +
     * Advise, wait up to `timeout_ms` for the first OnDataChange, then
     * UnAdvise + RemoveItem before returning. The session is left exactly
     * as it was before the call (was_cached = false).
     *
     * `timeout_ms == 0` uses the gateway-configured default (1000 ms).
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.ReadBulkCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ReadBulkCommand)
        mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReadBulkCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReadBulkCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.class, mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        tagAddresses_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        timeoutMs_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReadBulkCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand result = new mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          tagAddresses_.makeImmutable();
          result.tagAddresses_ = tagAddresses_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.timeoutMs_ = timeoutMs_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.tagAddresses_.isEmpty()) {
          if (tagAddresses_.isEmpty()) {
            tagAddresses_ = other.tagAddresses_;
            bitField0_ |= 0x00000002;
          } else {
            ensureTagAddressesIsMutable();
            tagAddresses_.addAll(other.tagAddresses_);
          }
          onChanged();
        }
        if (other.getTimeoutMs() != 0) {
          setTimeoutMs(other.getTimeoutMs());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTagAddressesIsMutable();
                tagAddresses_.add(s);
                break;
              } // case 18
              case 24: {
                timeoutMs_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureTagAddressesIsMutable() {
        if (!tagAddresses_.isModifiable()) {
          tagAddresses_ = new com.google.protobuf.LazyStringArrayList(tagAddresses_);
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return A list containing the tagAddresses.
       */
      public com.google.protobuf.ProtocolStringList
          getTagAddressesList() {
        tagAddresses_.makeImmutable();
        return tagAddresses_;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return The count of tagAddresses.
       */
      public int getTagAddressesCount() {
        return tagAddresses_.size();
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index of the element to return.
       * @return The tagAddresses at the given index.
       */
      public java.lang.String getTagAddresses(int index) {
        return tagAddresses_.get(index);
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index of the value to return.
       * @return The bytes of the tagAddresses at the given index.
       */
      public com.google.protobuf.ByteString
          getTagAddressesBytes(int index) {
        return tagAddresses_.getByteString(index);
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param index The index to set the value at.
       * @param value The tagAddresses to set.
       * @return This builder for chaining.
       */
      public Builder setTagAddresses(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTagAddressesIsMutable();
        tagAddresses_.set(index, value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param value The tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addTagAddresses(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTagAddressesIsMutable();
        tagAddresses_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param values The tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addAllTagAddresses(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagAddressesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tagAddresses_);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagAddresses() {
        tagAddresses_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tag_addresses = 2;</code>
       * @param value The bytes of the tagAddresses to add.
       * @return This builder for chaining.
       */
      public Builder addTagAddressesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureTagAddressesIsMutable();
        tagAddresses_.add(value);
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int timeoutMs_ ;
      /**
       * <code>uint32 timeout_ms = 3;</code>
       * @return The timeoutMs.
       */
      @java.lang.Override
      public int getTimeoutMs() {
        return timeoutMs_;
      }
      /**
       * <code>uint32 timeout_ms = 3;</code>
       * @param value The timeoutMs to set.
       * @return This builder for chaining.
       */
      public Builder setTimeoutMs(int value) {

        timeoutMs_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 timeout_ms = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeoutMs() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timeoutMs_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ReadBulkCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ReadBulkCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ReadBulkCommand>
        PARSER = new com.google.protobuf.AbstractParser<ReadBulkCommand>() {
      @java.lang.Override
      public ReadBulkCommand 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<ReadBulkCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ReadBulkCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PingCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.PingCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string message = 1;</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <code>string message = 1;</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.PingCommand}
   */
  public static final class PingCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.PingCommand)
      PingCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "PingCommand");
    }
    // Use PingCommand.newBuilder() to construct.
    private PingCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private PingCommand() {
      message_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_PingCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_PingCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.PingCommand.class, mxaccess_gateway.v1.MxaccessGateway.PingCommand.Builder.class);
    }

    public static final int MESSAGE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * <code>string message = 1;</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      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();
        message_ = s;
        return s;
      }
    }
    /**
     * <code>string message = 1;</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, message_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, message_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.PingCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.PingCommand other = (mxaccess_gateway.v1.MxaccessGateway.PingCommand) obj;

      if (!getMessage()
          .equals(other.getMessage())) 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();
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand 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 mxaccess_gateway.v1.MxaccessGateway.PingCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand 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 mxaccess_gateway.v1.MxaccessGateway.PingCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand 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(mxaccess_gateway.v1.MxaccessGateway.PingCommand 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 mxaccess_gateway.v1.PingCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.PingCommand)
        mxaccess_gateway.v1.MxaccessGateway.PingCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_PingCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_PingCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.PingCommand.class, mxaccess_gateway.v1.MxaccessGateway.PingCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.PingCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        message_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_PingCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.PingCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.PingCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.PingCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.PingCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.PingCommand result = new mxaccess_gateway.v1.MxaccessGateway.PingCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.PingCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.message_ = message_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.PingCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.PingCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.PingCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.PingCommand.getDefaultInstance()) return this;
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          bitField0_ |= 0x00000001;
          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: {
                message_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              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 message_ = "";
      /**
       * <code>string message = 1;</code>
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string message = 1;</code>
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string message = 1;</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string message = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string message = 1;</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        message_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.PingCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.PingCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.PingCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.PingCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.PingCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PingCommand>
        PARSER = new com.google.protobuf.AbstractParser<PingCommand>() {
      @java.lang.Override
      public PingCommand 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<PingCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.PingCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetSessionStateCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.GetSessionStateCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.GetSessionStateCommand}
   */
  public static final class GetSessionStateCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.GetSessionStateCommand)
      GetSessionStateCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "GetSessionStateCommand");
    }
    // Use GetSessionStateCommand.newBuilder() to construct.
    private GetSessionStateCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private GetSessionStateCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetSessionStateCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetSessionStateCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.class, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.Builder.class);
    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand other = (mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand 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 mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand 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 mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand 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(mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand 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 mxaccess_gateway.v1.GetSessionStateCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.GetSessionStateCommand)
        mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetSessionStateCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetSessionStateCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.class, mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetSessionStateCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand result = new mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand.getDefaultInstance()) return this;
        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;
              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;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.GetSessionStateCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.GetSessionStateCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetSessionStateCommand>
        PARSER = new com.google.protobuf.AbstractParser<GetSessionStateCommand>() {
      @java.lang.Override
      public GetSessionStateCommand 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<GetSessionStateCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.GetSessionStateCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetWorkerInfoCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.GetWorkerInfoCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.GetWorkerInfoCommand}
   */
  public static final class GetWorkerInfoCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.GetWorkerInfoCommand)
      GetWorkerInfoCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "GetWorkerInfoCommand");
    }
    // Use GetWorkerInfoCommand.newBuilder() to construct.
    private GetWorkerInfoCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private GetWorkerInfoCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.class, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.Builder.class);
    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand other = (mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand 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 mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand 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 mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand 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(mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand 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 mxaccess_gateway.v1.GetWorkerInfoCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.GetWorkerInfoCommand)
        mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.class, mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand result = new mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand.getDefaultInstance()) return this;
        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;
              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;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.GetWorkerInfoCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.GetWorkerInfoCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetWorkerInfoCommand>
        PARSER = new com.google.protobuf.AbstractParser<GetWorkerInfoCommand>() {
      @java.lang.Override
      public GetWorkerInfoCommand 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<GetWorkerInfoCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.GetWorkerInfoCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DrainEventsCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.DrainEventsCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>uint32 max_events = 1;</code>
     * @return The maxEvents.
     */
    int getMaxEvents();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.DrainEventsCommand}
   */
  public static final class DrainEventsCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.DrainEventsCommand)
      DrainEventsCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "DrainEventsCommand");
    }
    // Use DrainEventsCommand.newBuilder() to construct.
    private DrainEventsCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DrainEventsCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.class, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.Builder.class);
    }

    public static final int MAX_EVENTS_FIELD_NUMBER = 1;
    private int maxEvents_ = 0;
    /**
     * <code>uint32 max_events = 1;</code>
     * @return The maxEvents.
     */
    @java.lang.Override
    public int getMaxEvents() {
      return maxEvents_;
    }

    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 (maxEvents_ != 0) {
        output.writeUInt32(1, maxEvents_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (maxEvents_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, maxEvents_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand other = (mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) obj;

      if (getMaxEvents()
          != other.getMaxEvents()) 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();
      hash = (37 * hash) + MAX_EVENTS_FIELD_NUMBER;
      hash = (53 * hash) + getMaxEvents();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand 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 mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand 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 mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand 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(mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand 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 mxaccess_gateway.v1.DrainEventsCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.DrainEventsCommand)
        mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.class, mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        maxEvents_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand result = new mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.maxEvents_ = maxEvents_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand.getDefaultInstance()) return this;
        if (other.getMaxEvents() != 0) {
          setMaxEvents(other.getMaxEvents());
        }
        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 8: {
                maxEvents_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int maxEvents_ ;
      /**
       * <code>uint32 max_events = 1;</code>
       * @return The maxEvents.
       */
      @java.lang.Override
      public int getMaxEvents() {
        return maxEvents_;
      }
      /**
       * <code>uint32 max_events = 1;</code>
       * @param value The maxEvents to set.
       * @return This builder for chaining.
       */
      public Builder setMaxEvents(int value) {

        maxEvents_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 max_events = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxEvents() {
        bitField0_ = (bitField0_ & ~0x00000001);
        maxEvents_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.DrainEventsCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.DrainEventsCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DrainEventsCommand>
        PARSER = new com.google.protobuf.AbstractParser<DrainEventsCommand>() {
      @java.lang.Override
      public DrainEventsCommand 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<DrainEventsCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DrainEventsCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShutdownWorkerCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ShutdownWorkerCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.google.protobuf.Duration grace_period = 1;</code>
     * @return Whether the gracePeriod field is set.
     */
    boolean hasGracePeriod();
    /**
     * <code>.google.protobuf.Duration grace_period = 1;</code>
     * @return The gracePeriod.
     */
    com.google.protobuf.Duration getGracePeriod();
    /**
     * <code>.google.protobuf.Duration grace_period = 1;</code>
     */
    com.google.protobuf.DurationOrBuilder getGracePeriodOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.ShutdownWorkerCommand}
   */
  public static final class ShutdownWorkerCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ShutdownWorkerCommand)
      ShutdownWorkerCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ShutdownWorkerCommand");
    }
    // Use ShutdownWorkerCommand.newBuilder() to construct.
    private ShutdownWorkerCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ShutdownWorkerCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.class, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.Builder.class);
    }

    private int bitField0_;
    public static final int GRACE_PERIOD_FIELD_NUMBER = 1;
    private com.google.protobuf.Duration gracePeriod_;
    /**
     * <code>.google.protobuf.Duration grace_period = 1;</code>
     * @return Whether the gracePeriod field is set.
     */
    @java.lang.Override
    public boolean hasGracePeriod() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Duration grace_period = 1;</code>
     * @return The gracePeriod.
     */
    @java.lang.Override
    public com.google.protobuf.Duration getGracePeriod() {
      return gracePeriod_ == null ? com.google.protobuf.Duration.getDefaultInstance() : gracePeriod_;
    }
    /**
     * <code>.google.protobuf.Duration grace_period = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.DurationOrBuilder getGracePeriodOrBuilder() {
      return gracePeriod_ == null ? com.google.protobuf.Duration.getDefaultInstance() : gracePeriod_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getGracePeriod());
      }
      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.CodedOutputStream
          .computeMessageSize(1, getGracePeriod());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand other = (mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) obj;

      if (hasGracePeriod() != other.hasGracePeriod()) return false;
      if (hasGracePeriod()) {
        if (!getGracePeriod()
            .equals(other.getGracePeriod())) 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 (hasGracePeriod()) {
        hash = (37 * hash) + GRACE_PERIOD_FIELD_NUMBER;
        hash = (53 * hash) + getGracePeriod().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand 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 mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand 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 mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand 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(mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand 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 mxaccess_gateway.v1.ShutdownWorkerCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ShutdownWorkerCommand)
        mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.class, mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetGracePeriodFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gracePeriod_ = null;
        if (gracePeriodBuilder_ != null) {
          gracePeriodBuilder_.dispose();
          gracePeriodBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand build() {
        mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand result = new mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gracePeriod_ = gracePeriodBuilder_ == null
              ? gracePeriod_
              : gracePeriodBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand.getDefaultInstance()) return this;
        if (other.hasGracePeriod()) {
          mergeGracePeriod(other.getGracePeriod());
        }
        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: {
                input.readMessage(
                    internalGetGracePeriodFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              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 com.google.protobuf.Duration gracePeriod_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> gracePeriodBuilder_;
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       * @return Whether the gracePeriod field is set.
       */
      public boolean hasGracePeriod() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       * @return The gracePeriod.
       */
      public com.google.protobuf.Duration getGracePeriod() {
        if (gracePeriodBuilder_ == null) {
          return gracePeriod_ == null ? com.google.protobuf.Duration.getDefaultInstance() : gracePeriod_;
        } else {
          return gracePeriodBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       */
      public Builder setGracePeriod(com.google.protobuf.Duration value) {
        if (gracePeriodBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gracePeriod_ = value;
        } else {
          gracePeriodBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       */
      public Builder setGracePeriod(
          com.google.protobuf.Duration.Builder builderForValue) {
        if (gracePeriodBuilder_ == null) {
          gracePeriod_ = builderForValue.build();
        } else {
          gracePeriodBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       */
      public Builder mergeGracePeriod(com.google.protobuf.Duration value) {
        if (gracePeriodBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            gracePeriod_ != null &&
            gracePeriod_ != com.google.protobuf.Duration.getDefaultInstance()) {
            getGracePeriodBuilder().mergeFrom(value);
          } else {
            gracePeriod_ = value;
          }
        } else {
          gracePeriodBuilder_.mergeFrom(value);
        }
        if (gracePeriod_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       */
      public Builder clearGracePeriod() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gracePeriod_ = null;
        if (gracePeriodBuilder_ != null) {
          gracePeriodBuilder_.dispose();
          gracePeriodBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       */
      public com.google.protobuf.Duration.Builder getGracePeriodBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetGracePeriodFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       */
      public com.google.protobuf.DurationOrBuilder getGracePeriodOrBuilder() {
        if (gracePeriodBuilder_ != null) {
          return gracePeriodBuilder_.getMessageOrBuilder();
        } else {
          return gracePeriod_ == null ?
              com.google.protobuf.Duration.getDefaultInstance() : gracePeriod_;
        }
      }
      /**
       * <code>.google.protobuf.Duration grace_period = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> 
          internalGetGracePeriodFieldBuilder() {
        if (gracePeriodBuilder_ == null) {
          gracePeriodBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
                  getGracePeriod(),
                  getParentForChildren(),
                  isClean());
          gracePeriod_ = null;
        }
        return gracePeriodBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ShutdownWorkerCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ShutdownWorkerCommand)
    private static final mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ShutdownWorkerCommand>
        PARSER = new com.google.protobuf.AbstractParser<ShutdownWorkerCommand>() {
      @java.lang.Override
      public ShutdownWorkerCommand 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<ShutdownWorkerCommand> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ShutdownWorkerCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxCommandReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxCommandReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>string correlation_id = 2;</code>
     * @return The correlationId.
     */
    java.lang.String getCorrelationId();
    /**
     * <code>string correlation_id = 2;</code>
     * @return The bytes for correlationId.
     */
    com.google.protobuf.ByteString
        getCorrelationIdBytes();

    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
     * @return The enum numeric value on the wire for kind.
     */
    int getKindValue();
    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
     * @return The kind.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommandKind getKind();

    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
     * @return Whether the protocolStatus field is set.
     */
    boolean hasProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
     * @return The protocolStatus.
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder();

    /**
     * <pre>
     * HRESULT captured from MXAccess or a COM exception. This remains separate
     * from gateway protocol status so MXAccess parity details are not hidden by
     * transport failures.
     * </pre>
     *
     * <code>optional int32 hresult = 5;</code>
     * @return Whether the hresult field is set.
     */
    boolean hasHresult();
    /**
     * <pre>
     * HRESULT captured from MXAccess or a COM exception. This remains separate
     * from gateway protocol status so MXAccess parity details are not hidden by
     * transport failures.
     * </pre>
     *
     * <code>optional int32 hresult = 5;</code>
     * @return The hresult.
     */
    int getHresult();

    /**
     * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
     * @return Whether the returnValue field is set.
     */
    boolean hasReturnValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
     * @return The returnValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getReturnValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getReturnValueOrBuilder();

    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> 
        getStatusesList();
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index);
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    int getStatusesCount();
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList();
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index);

    /**
     * <code>string diagnostic_message = 8;</code>
     * @return The diagnosticMessage.
     */
    java.lang.String getDiagnosticMessage();
    /**
     * <code>string diagnostic_message = 8;</code>
     * @return The bytes for diagnosticMessage.
     */
    com.google.protobuf.ByteString
        getDiagnosticMessageBytes();

    /**
     * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
     * @return Whether the register field is set.
     */
    boolean hasRegister();
    /**
     * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
     * @return The register.
     */
    mxaccess_gateway.v1.MxaccessGateway.RegisterReply getRegister();
    /**
     * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.RegisterReplyOrBuilder getRegisterOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
     * @return Whether the addItem field is set.
     */
    boolean hasAddItem();
    /**
     * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
     * @return The addItem.
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItemReply getAddItem();
    /**
     * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItemReplyOrBuilder getAddItemOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
     * @return Whether the addItem2 field is set.
     */
    boolean hasAddItem2();
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
     * @return The addItem2.
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply getAddItem2();
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AddItem2ReplyOrBuilder getAddItem2OrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
     * @return Whether the addBufferedItem field is set.
     */
    boolean hasAddBufferedItem();
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
     * @return The addBufferedItem.
     */
    mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply getAddBufferedItem();
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReplyOrBuilder getAddBufferedItemOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
     * @return Whether the suspend field is set.
     */
    boolean hasSuspend();
    /**
     * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
     * @return The suspend.
     */
    mxaccess_gateway.v1.MxaccessGateway.SuspendReply getSuspend();
    /**
     * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SuspendReplyOrBuilder getSuspendOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
     * @return Whether the activate field is set.
     */
    boolean hasActivate();
    /**
     * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
     * @return The activate.
     */
    mxaccess_gateway.v1.MxaccessGateway.ActivateReply getActivate();
    /**
     * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ActivateReplyOrBuilder getActivateOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
     * @return Whether the authenticateUser field is set.
     */
    boolean hasAuthenticateUser();
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
     * @return The authenticateUser.
     */
    mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply getAuthenticateUser();
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReplyOrBuilder getAuthenticateUserOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
     * @return Whether the archestraUserToId field is set.
     */
    boolean hasArchestraUserToId();
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
     * @return The archestraUserToId.
     */
    mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply getArchestraUserToId();
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReplyOrBuilder getArchestraUserToIdOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
     * @return Whether the addItemBulk field is set.
     */
    boolean hasAddItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
     * @return The addItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getAddItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getAddItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
     * @return Whether the adviseItemBulk field is set.
     */
    boolean hasAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
     * @return The adviseItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getAdviseItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
     * @return Whether the removeItemBulk field is set.
     */
    boolean hasRemoveItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
     * @return The removeItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getRemoveItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getRemoveItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
     * @return Whether the unAdviseItemBulk field is set.
     */
    boolean hasUnAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
     * @return The unAdviseItemBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getUnAdviseItemBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getUnAdviseItemBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
     * @return Whether the subscribeBulk field is set.
     */
    boolean hasSubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
     * @return The subscribeBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getSubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getSubscribeBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
     * @return Whether the unsubscribeBulk field is set.
     */
    boolean hasUnsubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
     * @return The unsubscribeBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getUnsubscribeBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getUnsubscribeBulkOrBuilder();

    /**
     * <pre>
     * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
     * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
     * no by-name-specific reply case: the by-name ack carries no outcome
     * detail beyond the native ack return code, so the worker reuses this
     * `acknowledge_alarm` payload for both command kinds (the worker's
     * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
     * too). Consumers must dispatch on MxCommandReply.kind, not on the
     * payload case, to tell the two acks apart. The top-level `hresult`
     * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
     * @return Whether the acknowledgeAlarm field is set.
     */
    boolean hasAcknowledgeAlarm();
    /**
     * <pre>
     * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
     * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
     * no by-name-specific reply case: the by-name ack carries no outcome
     * detail beyond the native ack return code, so the worker reuses this
     * `acknowledge_alarm` payload for both command kinds (the worker's
     * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
     * too). Consumers must dispatch on MxCommandReply.kind, not on the
     * payload case, to tell the two acks apart. The top-level `hresult`
     * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
     * @return The acknowledgeAlarm.
     */
    mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload getAcknowledgeAlarm();
    /**
     * <pre>
     * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
     * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
     * no by-name-specific reply case: the by-name ack carries no outcome
     * detail beyond the native ack return code, so the worker reuses this
     * `acknowledge_alarm` payload for both command kinds (the worker's
     * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
     * too). Consumers must dispatch on MxCommandReply.kind, not on the
     * payload case, to tell the two acks apart. The top-level `hresult`
     * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayloadOrBuilder getAcknowledgeAlarmOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
     * @return Whether the queryActiveAlarms field is set.
     */
    boolean hasQueryActiveAlarms();
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
     * @return The queryActiveAlarms.
     */
    mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload getQueryActiveAlarms();
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayloadOrBuilder getQueryActiveAlarmsOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
     * @return Whether the writeBulk field is set.
     */
    boolean hasWriteBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
     * @return The writeBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
     * @return Whether the write2Bulk field is set.
     */
    boolean hasWrite2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
     * @return The write2Bulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWrite2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWrite2BulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
     * @return Whether the writeSecuredBulk field is set.
     */
    boolean hasWriteSecuredBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
     * @return The writeSecuredBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteSecuredBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteSecuredBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
     * @return Whether the writeSecured2Bulk field is set.
     */
    boolean hasWriteSecured2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
     * @return The writeSecured2Bulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteSecured2Bulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteSecured2BulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
     * @return Whether the readBulk field is set.
     */
    boolean hasReadBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
     * @return The readBulk.
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkReadReply getReadBulk();
    /**
     * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkReadReplyOrBuilder getReadBulkOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
     * @return Whether the sessionState field is set.
     */
    boolean hasSessionState();
    /**
     * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
     * @return The sessionState.
     */
    mxaccess_gateway.v1.MxaccessGateway.SessionStateReply getSessionState();
    /**
     * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SessionStateReplyOrBuilder getSessionStateOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
     * @return Whether the workerInfo field is set.
     */
    boolean hasWorkerInfo();
    /**
     * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
     * @return The workerInfo.
     */
    mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply getWorkerInfo();
    /**
     * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReplyOrBuilder getWorkerInfoOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
     * @return Whether the drainEvents field is set.
     */
    boolean hasDrainEvents();
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
     * @return The drainEvents.
     */
    mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply getDrainEvents();
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.DrainEventsReplyOrBuilder getDrainEventsOrBuilder();

    mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.PayloadCase getPayloadCase();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxCommandReply}
   */
  public static final class MxCommandReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxCommandReply)
      MxCommandReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxCommandReply");
    }
    // Use MxCommandReply.newBuilder() to construct.
    private MxCommandReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxCommandReply() {
      sessionId_ = "";
      correlationId_ = "";
      kind_ = 0;
      statuses_ = java.util.Collections.emptyList();
      diagnosticMessage_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.class, mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.Builder.class);
    }

    private int bitField0_;
    private int payloadCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object payload_;
    public enum PayloadCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      REGISTER(20),
      ADD_ITEM(21),
      ADD_ITEM2(22),
      ADD_BUFFERED_ITEM(23),
      SUSPEND(24),
      ACTIVATE(25),
      AUTHENTICATE_USER(26),
      ARCHESTRA_USER_TO_ID(27),
      ADD_ITEM_BULK(28),
      ADVISE_ITEM_BULK(29),
      REMOVE_ITEM_BULK(30),
      UN_ADVISE_ITEM_BULK(31),
      SUBSCRIBE_BULK(32),
      UNSUBSCRIBE_BULK(33),
      ACKNOWLEDGE_ALARM(34),
      QUERY_ACTIVE_ALARMS(35),
      WRITE_BULK(36),
      WRITE2_BULK(37),
      WRITE_SECURED_BULK(38),
      WRITE_SECURED2_BULK(39),
      READ_BULK(40),
      SESSION_STATE(100),
      WORKER_INFO(101),
      DRAIN_EVENTS(102),
      PAYLOAD_NOT_SET(0);
      private final int value;
      private PayloadCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PayloadCase valueOf(int value) {
        return forNumber(value);
      }

      public static PayloadCase forNumber(int value) {
        switch (value) {
          case 20: return REGISTER;
          case 21: return ADD_ITEM;
          case 22: return ADD_ITEM2;
          case 23: return ADD_BUFFERED_ITEM;
          case 24: return SUSPEND;
          case 25: return ACTIVATE;
          case 26: return AUTHENTICATE_USER;
          case 27: return ARCHESTRA_USER_TO_ID;
          case 28: return ADD_ITEM_BULK;
          case 29: return ADVISE_ITEM_BULK;
          case 30: return REMOVE_ITEM_BULK;
          case 31: return UN_ADVISE_ITEM_BULK;
          case 32: return SUBSCRIBE_BULK;
          case 33: return UNSUBSCRIBE_BULK;
          case 34: return ACKNOWLEDGE_ALARM;
          case 35: return QUERY_ACTIVE_ALARMS;
          case 36: return WRITE_BULK;
          case 37: return WRITE2_BULK;
          case 38: return WRITE_SECURED_BULK;
          case 39: return WRITE_SECURED2_BULK;
          case 40: return READ_BULK;
          case 100: return SESSION_STATE;
          case 101: return WORKER_INFO;
          case 102: return DRAIN_EVENTS;
          case 0: return PAYLOAD_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public PayloadCase
    getPayloadCase() {
      return PayloadCase.forNumber(
          payloadCase_);
    }

    public static final int SESSION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 1;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 1;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CORRELATION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object correlationId_ = "";
    /**
     * <code>string correlation_id = 2;</code>
     * @return The correlationId.
     */
    @java.lang.Override
    public java.lang.String getCorrelationId() {
      java.lang.Object ref = correlationId_;
      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();
        correlationId_ = s;
        return s;
      }
    }
    /**
     * <code>string correlation_id = 2;</code>
     * @return The bytes for correlationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCorrelationIdBytes() {
      java.lang.Object ref = correlationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        correlationId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KIND_FIELD_NUMBER = 3;
    private int kind_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
     * @return The enum numeric value on the wire for kind.
     */
    @java.lang.Override public int getKindValue() {
      return kind_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
     * @return The kind.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxCommandKind getKind() {
      mxaccess_gateway.v1.MxaccessGateway.MxCommandKind result = mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.forNumber(kind_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.UNRECOGNIZED : result;
    }

    public static final int PROTOCOL_STATUS_FIELD_NUMBER = 4;
    private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
     * @return Whether the protocolStatus field is set.
     */
    @java.lang.Override
    public boolean hasProtocolStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
     * @return The protocolStatus.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }

    public static final int HRESULT_FIELD_NUMBER = 5;
    private int hresult_ = 0;
    /**
     * <pre>
     * HRESULT captured from MXAccess or a COM exception. This remains separate
     * from gateway protocol status so MXAccess parity details are not hidden by
     * transport failures.
     * </pre>
     *
     * <code>optional int32 hresult = 5;</code>
     * @return Whether the hresult field is set.
     */
    @java.lang.Override
    public boolean hasHresult() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * HRESULT captured from MXAccess or a COM exception. This remains separate
     * from gateway protocol status so MXAccess parity details are not hidden by
     * transport failures.
     * </pre>
     *
     * <code>optional int32 hresult = 5;</code>
     * @return The hresult.
     */
    @java.lang.Override
    public int getHresult() {
      return hresult_;
    }

    public static final int RETURN_VALUE_FIELD_NUMBER = 6;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue returnValue_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
     * @return Whether the returnValue field is set.
     */
    @java.lang.Override
    public boolean hasReturnValue() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
     * @return The returnValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getReturnValue() {
      return returnValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : returnValue_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getReturnValueOrBuilder() {
      return returnValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : returnValue_;
    }

    public static final int STATUSES_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_;
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
      return statuses_;
    }
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList() {
      return statuses_;
    }
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    @java.lang.Override
    public int getStatusesCount() {
      return statuses_.size();
    }
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
      return statuses_.get(index);
    }
    /**
     * <pre>
     * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
     * WRITE_SECURED2 replies the worker holds the reply for a bounded window
     * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
     * the matching MXAccess OnWriteComplete callback and copies its status rows
     * here, so statuses[0] carries the real MXAccess commit outcome (success OR
     * failure) while protocol_status/hresult still describe command acceptance
     * only. Empty statuses on a write reply means the completion did not arrive
     * within the window — the write is unconfirmed, not failed. Correlation is
     * best-effort per (server_handle, item_handle): MXAccess's callback carries
     * no transaction id, so concurrent writes to the same item within the
     * window can swap rows. The OnWriteComplete event still flows on the event
     * stream unchanged. Bulk write kinds and all non-write kinds leave this
     * field as before.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index) {
      return statuses_.get(index);
    }

    public static final int DIAGNOSTIC_MESSAGE_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object diagnosticMessage_ = "";
    /**
     * <code>string diagnostic_message = 8;</code>
     * @return The diagnosticMessage.
     */
    @java.lang.Override
    public java.lang.String getDiagnosticMessage() {
      java.lang.Object ref = diagnosticMessage_;
      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();
        diagnosticMessage_ = s;
        return s;
      }
    }
    /**
     * <code>string diagnostic_message = 8;</code>
     * @return The bytes for diagnosticMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDiagnosticMessageBytes() {
      java.lang.Object ref = diagnosticMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        diagnosticMessage_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REGISTER_FIELD_NUMBER = 20;
    /**
     * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
     * @return Whether the register field is set.
     */
    @java.lang.Override
    public boolean hasRegister() {
      return payloadCase_ == 20;
    }
    /**
     * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
     * @return The register.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RegisterReply getRegister() {
      if (payloadCase_ == 20) {
         return (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RegisterReplyOrBuilder getRegisterOrBuilder() {
      if (payloadCase_ == 20) {
         return (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance();
    }

    public static final int ADD_ITEM_FIELD_NUMBER = 21;
    /**
     * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
     * @return Whether the addItem field is set.
     */
    @java.lang.Override
    public boolean hasAddItem() {
      return payloadCase_ == 21;
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
     * @return The addItem.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemReply getAddItem() {
      if (payloadCase_ == 21) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemReplyOrBuilder getAddItemOrBuilder() {
      if (payloadCase_ == 21) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance();
    }

    public static final int ADD_ITEM2_FIELD_NUMBER = 22;
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
     * @return Whether the addItem2 field is set.
     */
    @java.lang.Override
    public boolean hasAddItem2() {
      return payloadCase_ == 22;
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
     * @return The addItem2.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply getAddItem2() {
      if (payloadCase_ == 22) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItem2ReplyOrBuilder getAddItem2OrBuilder() {
      if (payloadCase_ == 22) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance();
    }

    public static final int ADD_BUFFERED_ITEM_FIELD_NUMBER = 23;
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
     * @return Whether the addBufferedItem field is set.
     */
    @java.lang.Override
    public boolean hasAddBufferedItem() {
      return payloadCase_ == 23;
    }
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
     * @return The addBufferedItem.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply getAddBufferedItem() {
      if (payloadCase_ == 23) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReplyOrBuilder getAddBufferedItemOrBuilder() {
      if (payloadCase_ == 23) {
         return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance();
    }

    public static final int SUSPEND_FIELD_NUMBER = 24;
    /**
     * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
     * @return Whether the suspend field is set.
     */
    @java.lang.Override
    public boolean hasSuspend() {
      return payloadCase_ == 24;
    }
    /**
     * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
     * @return The suspend.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SuspendReply getSuspend() {
      if (payloadCase_ == 24) {
         return (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SuspendReplyOrBuilder getSuspendOrBuilder() {
      if (payloadCase_ == 24) {
         return (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance();
    }

    public static final int ACTIVATE_FIELD_NUMBER = 25;
    /**
     * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
     * @return Whether the activate field is set.
     */
    @java.lang.Override
    public boolean hasActivate() {
      return payloadCase_ == 25;
    }
    /**
     * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
     * @return The activate.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActivateReply getActivate() {
      if (payloadCase_ == 25) {
         return (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActivateReplyOrBuilder getActivateOrBuilder() {
      if (payloadCase_ == 25) {
         return (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance();
    }

    public static final int AUTHENTICATE_USER_FIELD_NUMBER = 26;
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
     * @return Whether the authenticateUser field is set.
     */
    @java.lang.Override
    public boolean hasAuthenticateUser() {
      return payloadCase_ == 26;
    }
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
     * @return The authenticateUser.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply getAuthenticateUser() {
      if (payloadCase_ == 26) {
         return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReplyOrBuilder getAuthenticateUserOrBuilder() {
      if (payloadCase_ == 26) {
         return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance();
    }

    public static final int ARCHESTRA_USER_TO_ID_FIELD_NUMBER = 27;
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
     * @return Whether the archestraUserToId field is set.
     */
    @java.lang.Override
    public boolean hasArchestraUserToId() {
      return payloadCase_ == 27;
    }
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
     * @return The archestraUserToId.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply getArchestraUserToId() {
      if (payloadCase_ == 27) {
         return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReplyOrBuilder getArchestraUserToIdOrBuilder() {
      if (payloadCase_ == 27) {
         return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance();
    }

    public static final int ADD_ITEM_BULK_FIELD_NUMBER = 28;
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
     * @return Whether the addItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasAddItemBulk() {
      return payloadCase_ == 28;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
     * @return The addItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getAddItemBulk() {
      if (payloadCase_ == 28) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getAddItemBulkOrBuilder() {
      if (payloadCase_ == 28) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }

    public static final int ADVISE_ITEM_BULK_FIELD_NUMBER = 29;
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
     * @return Whether the adviseItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasAdviseItemBulk() {
      return payloadCase_ == 29;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
     * @return The adviseItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getAdviseItemBulk() {
      if (payloadCase_ == 29) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getAdviseItemBulkOrBuilder() {
      if (payloadCase_ == 29) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }

    public static final int REMOVE_ITEM_BULK_FIELD_NUMBER = 30;
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
     * @return Whether the removeItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasRemoveItemBulk() {
      return payloadCase_ == 30;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
     * @return The removeItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getRemoveItemBulk() {
      if (payloadCase_ == 30) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getRemoveItemBulkOrBuilder() {
      if (payloadCase_ == 30) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }

    public static final int UN_ADVISE_ITEM_BULK_FIELD_NUMBER = 31;
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
     * @return Whether the unAdviseItemBulk field is set.
     */
    @java.lang.Override
    public boolean hasUnAdviseItemBulk() {
      return payloadCase_ == 31;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
     * @return The unAdviseItemBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getUnAdviseItemBulk() {
      if (payloadCase_ == 31) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getUnAdviseItemBulkOrBuilder() {
      if (payloadCase_ == 31) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }

    public static final int SUBSCRIBE_BULK_FIELD_NUMBER = 32;
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
     * @return Whether the subscribeBulk field is set.
     */
    @java.lang.Override
    public boolean hasSubscribeBulk() {
      return payloadCase_ == 32;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
     * @return The subscribeBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getSubscribeBulk() {
      if (payloadCase_ == 32) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getSubscribeBulkOrBuilder() {
      if (payloadCase_ == 32) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }

    public static final int UNSUBSCRIBE_BULK_FIELD_NUMBER = 33;
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
     * @return Whether the unsubscribeBulk field is set.
     */
    @java.lang.Override
    public boolean hasUnsubscribeBulk() {
      return payloadCase_ == 33;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
     * @return The unsubscribeBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getUnsubscribeBulk() {
      if (payloadCase_ == 33) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getUnsubscribeBulkOrBuilder() {
      if (payloadCase_ == 33) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
    }

    public static final int ACKNOWLEDGE_ALARM_FIELD_NUMBER = 34;
    /**
     * <pre>
     * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
     * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
     * no by-name-specific reply case: the by-name ack carries no outcome
     * detail beyond the native ack return code, so the worker reuses this
     * `acknowledge_alarm` payload for both command kinds (the worker's
     * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
     * too). Consumers must dispatch on MxCommandReply.kind, not on the
     * payload case, to tell the two acks apart. The top-level `hresult`
     * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
     * @return Whether the acknowledgeAlarm field is set.
     */
    @java.lang.Override
    public boolean hasAcknowledgeAlarm() {
      return payloadCase_ == 34;
    }
    /**
     * <pre>
     * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
     * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
     * no by-name-specific reply case: the by-name ack carries no outcome
     * detail beyond the native ack return code, so the worker reuses this
     * `acknowledge_alarm` payload for both command kinds (the worker's
     * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
     * too). Consumers must dispatch on MxCommandReply.kind, not on the
     * payload case, to tell the two acks apart. The top-level `hresult`
     * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
     * @return The acknowledgeAlarm.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload getAcknowledgeAlarm() {
      if (payloadCase_ == 34) {
         return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance();
    }
    /**
     * <pre>
     * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
     * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
     * no by-name-specific reply case: the by-name ack carries no outcome
     * detail beyond the native ack return code, so the worker reuses this
     * `acknowledge_alarm` payload for both command kinds (the worker's
     * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
     * too). Consumers must dispatch on MxCommandReply.kind, not on the
     * payload case, to tell the two acks apart. The top-level `hresult`
     * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayloadOrBuilder getAcknowledgeAlarmOrBuilder() {
      if (payloadCase_ == 34) {
         return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance();
    }

    public static final int QUERY_ACTIVE_ALARMS_FIELD_NUMBER = 35;
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
     * @return Whether the queryActiveAlarms field is set.
     */
    @java.lang.Override
    public boolean hasQueryActiveAlarms() {
      return payloadCase_ == 35;
    }
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
     * @return The queryActiveAlarms.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload getQueryActiveAlarms() {
      if (payloadCase_ == 35) {
         return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayloadOrBuilder getQueryActiveAlarmsOrBuilder() {
      if (payloadCase_ == 35) {
         return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance();
    }

    public static final int WRITE_BULK_FIELD_NUMBER = 36;
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
     * @return Whether the writeBulk field is set.
     */
    @java.lang.Override
    public boolean hasWriteBulk() {
      return payloadCase_ == 36;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
     * @return The writeBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteBulk() {
      if (payloadCase_ == 36) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteBulkOrBuilder() {
      if (payloadCase_ == 36) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }

    public static final int WRITE2_BULK_FIELD_NUMBER = 37;
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
     * @return Whether the write2Bulk field is set.
     */
    @java.lang.Override
    public boolean hasWrite2Bulk() {
      return payloadCase_ == 37;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
     * @return The write2Bulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWrite2Bulk() {
      if (payloadCase_ == 37) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWrite2BulkOrBuilder() {
      if (payloadCase_ == 37) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }

    public static final int WRITE_SECURED_BULK_FIELD_NUMBER = 38;
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
     * @return Whether the writeSecuredBulk field is set.
     */
    @java.lang.Override
    public boolean hasWriteSecuredBulk() {
      return payloadCase_ == 38;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
     * @return The writeSecuredBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteSecuredBulk() {
      if (payloadCase_ == 38) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteSecuredBulkOrBuilder() {
      if (payloadCase_ == 38) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }

    public static final int WRITE_SECURED2_BULK_FIELD_NUMBER = 39;
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
     * @return Whether the writeSecured2Bulk field is set.
     */
    @java.lang.Override
    public boolean hasWriteSecured2Bulk() {
      return payloadCase_ == 39;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
     * @return The writeSecured2Bulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteSecured2Bulk() {
      if (payloadCase_ == 39) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteSecured2BulkOrBuilder() {
      if (payloadCase_ == 39) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
    }

    public static final int READ_BULK_FIELD_NUMBER = 40;
    /**
     * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
     * @return Whether the readBulk field is set.
     */
    @java.lang.Override
    public boolean hasReadBulk() {
      return payloadCase_ == 40;
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
     * @return The readBulk.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkReadReply getReadBulk() {
      if (payloadCase_ == 40) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkReadReplyOrBuilder getReadBulkOrBuilder() {
      if (payloadCase_ == 40) {
         return (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance();
    }

    public static final int SESSION_STATE_FIELD_NUMBER = 100;
    /**
     * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
     * @return Whether the sessionState field is set.
     */
    @java.lang.Override
    public boolean hasSessionState() {
      return payloadCase_ == 100;
    }
    /**
     * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
     * @return The sessionState.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SessionStateReply getSessionState() {
      if (payloadCase_ == 100) {
         return (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SessionStateReplyOrBuilder getSessionStateOrBuilder() {
      if (payloadCase_ == 100) {
         return (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance();
    }

    public static final int WORKER_INFO_FIELD_NUMBER = 101;
    /**
     * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
     * @return Whether the workerInfo field is set.
     */
    @java.lang.Override
    public boolean hasWorkerInfo() {
      return payloadCase_ == 101;
    }
    /**
     * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
     * @return The workerInfo.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply getWorkerInfo() {
      if (payloadCase_ == 101) {
         return (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReplyOrBuilder getWorkerInfoOrBuilder() {
      if (payloadCase_ == 101) {
         return (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance();
    }

    public static final int DRAIN_EVENTS_FIELD_NUMBER = 102;
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
     * @return Whether the drainEvents field is set.
     */
    @java.lang.Override
    public boolean hasDrainEvents() {
      return payloadCase_ == 102;
    }
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
     * @return The drainEvents.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply getDrainEvents() {
      if (payloadCase_ == 102) {
         return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReplyOrBuilder getDrainEventsOrBuilder() {
      if (payloadCase_ == 102) {
         return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance();
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, correlationId_);
      }
      if (kind_ != mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.MX_COMMAND_KIND_UNSPECIFIED.getNumber()) {
        output.writeEnum(3, kind_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getProtocolStatus());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(5, hresult_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(6, getReturnValue());
      }
      for (int i = 0; i < statuses_.size(); i++) {
        output.writeMessage(7, statuses_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticMessage_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 8, diagnosticMessage_);
      }
      if (payloadCase_ == 20) {
        output.writeMessage(20, (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_);
      }
      if (payloadCase_ == 21) {
        output.writeMessage(21, (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_);
      }
      if (payloadCase_ == 22) {
        output.writeMessage(22, (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_);
      }
      if (payloadCase_ == 23) {
        output.writeMessage(23, (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_);
      }
      if (payloadCase_ == 24) {
        output.writeMessage(24, (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_);
      }
      if (payloadCase_ == 25) {
        output.writeMessage(25, (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_);
      }
      if (payloadCase_ == 26) {
        output.writeMessage(26, (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_);
      }
      if (payloadCase_ == 27) {
        output.writeMessage(27, (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_);
      }
      if (payloadCase_ == 28) {
        output.writeMessage(28, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 29) {
        output.writeMessage(29, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 30) {
        output.writeMessage(30, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 31) {
        output.writeMessage(31, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 32) {
        output.writeMessage(32, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 33) {
        output.writeMessage(33, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 34) {
        output.writeMessage(34, (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_);
      }
      if (payloadCase_ == 35) {
        output.writeMessage(35, (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_);
      }
      if (payloadCase_ == 36) {
        output.writeMessage(36, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 37) {
        output.writeMessage(37, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 38) {
        output.writeMessage(38, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 39) {
        output.writeMessage(39, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 40) {
        output.writeMessage(40, (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_);
      }
      if (payloadCase_ == 100) {
        output.writeMessage(100, (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_);
      }
      if (payloadCase_ == 101) {
        output.writeMessage(101, (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_);
      }
      if (payloadCase_ == 102) {
        output.writeMessage(102, (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, correlationId_);
      }
      if (kind_ != mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.MX_COMMAND_KIND_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, kind_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getProtocolStatus());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, hresult_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getReturnValue());
      }
      for (int i = 0; i < statuses_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, statuses_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticMessage_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(8, diagnosticMessage_);
      }
      if (payloadCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_);
      }
      if (payloadCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_);
      }
      if (payloadCase_ == 22) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_);
      }
      if (payloadCase_ == 23) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_);
      }
      if (payloadCase_ == 24) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_);
      }
      if (payloadCase_ == 25) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(25, (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_);
      }
      if (payloadCase_ == 26) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(26, (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_);
      }
      if (payloadCase_ == 27) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_);
      }
      if (payloadCase_ == 28) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 29) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 30) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(30, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 31) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 32) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(32, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 33) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(33, (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_);
      }
      if (payloadCase_ == 34) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(34, (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_);
      }
      if (payloadCase_ == 35) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_);
      }
      if (payloadCase_ == 36) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(36, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 37) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(37, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 38) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(38, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 39) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(39, (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_);
      }
      if (payloadCase_ == 40) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(40, (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_);
      }
      if (payloadCase_ == 100) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(100, (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_);
      }
      if (payloadCase_ == 101) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(101, (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_);
      }
      if (payloadCase_ == 102) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(102, (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxCommandReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxCommandReply other = (mxaccess_gateway.v1.MxaccessGateway.MxCommandReply) obj;

      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (!getCorrelationId()
          .equals(other.getCorrelationId())) return false;
      if (kind_ != other.kind_) return false;
      if (hasProtocolStatus() != other.hasProtocolStatus()) return false;
      if (hasProtocolStatus()) {
        if (!getProtocolStatus()
            .equals(other.getProtocolStatus())) return false;
      }
      if (hasHresult() != other.hasHresult()) return false;
      if (hasHresult()) {
        if (getHresult()
            != other.getHresult()) return false;
      }
      if (hasReturnValue() != other.hasReturnValue()) return false;
      if (hasReturnValue()) {
        if (!getReturnValue()
            .equals(other.getReturnValue())) return false;
      }
      if (!getStatusesList()
          .equals(other.getStatusesList())) return false;
      if (!getDiagnosticMessage()
          .equals(other.getDiagnosticMessage())) return false;
      if (!getPayloadCase().equals(other.getPayloadCase())) return false;
      switch (payloadCase_) {
        case 20:
          if (!getRegister()
              .equals(other.getRegister())) return false;
          break;
        case 21:
          if (!getAddItem()
              .equals(other.getAddItem())) return false;
          break;
        case 22:
          if (!getAddItem2()
              .equals(other.getAddItem2())) return false;
          break;
        case 23:
          if (!getAddBufferedItem()
              .equals(other.getAddBufferedItem())) return false;
          break;
        case 24:
          if (!getSuspend()
              .equals(other.getSuspend())) return false;
          break;
        case 25:
          if (!getActivate()
              .equals(other.getActivate())) return false;
          break;
        case 26:
          if (!getAuthenticateUser()
              .equals(other.getAuthenticateUser())) return false;
          break;
        case 27:
          if (!getArchestraUserToId()
              .equals(other.getArchestraUserToId())) return false;
          break;
        case 28:
          if (!getAddItemBulk()
              .equals(other.getAddItemBulk())) return false;
          break;
        case 29:
          if (!getAdviseItemBulk()
              .equals(other.getAdviseItemBulk())) return false;
          break;
        case 30:
          if (!getRemoveItemBulk()
              .equals(other.getRemoveItemBulk())) return false;
          break;
        case 31:
          if (!getUnAdviseItemBulk()
              .equals(other.getUnAdviseItemBulk())) return false;
          break;
        case 32:
          if (!getSubscribeBulk()
              .equals(other.getSubscribeBulk())) return false;
          break;
        case 33:
          if (!getUnsubscribeBulk()
              .equals(other.getUnsubscribeBulk())) return false;
          break;
        case 34:
          if (!getAcknowledgeAlarm()
              .equals(other.getAcknowledgeAlarm())) return false;
          break;
        case 35:
          if (!getQueryActiveAlarms()
              .equals(other.getQueryActiveAlarms())) return false;
          break;
        case 36:
          if (!getWriteBulk()
              .equals(other.getWriteBulk())) return false;
          break;
        case 37:
          if (!getWrite2Bulk()
              .equals(other.getWrite2Bulk())) return false;
          break;
        case 38:
          if (!getWriteSecuredBulk()
              .equals(other.getWriteSecuredBulk())) return false;
          break;
        case 39:
          if (!getWriteSecured2Bulk()
              .equals(other.getWriteSecured2Bulk())) return false;
          break;
        case 40:
          if (!getReadBulk()
              .equals(other.getReadBulk())) return false;
          break;
        case 100:
          if (!getSessionState()
              .equals(other.getSessionState())) return false;
          break;
        case 101:
          if (!getWorkerInfo()
              .equals(other.getWorkerInfo())) return false;
          break;
        case 102:
          if (!getDrainEvents()
              .equals(other.getDrainEvents())) return false;
          break;
        case 0:
        default:
      }
      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();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCorrelationId().hashCode();
      hash = (37 * hash) + KIND_FIELD_NUMBER;
      hash = (53 * hash) + kind_;
      if (hasProtocolStatus()) {
        hash = (37 * hash) + PROTOCOL_STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getProtocolStatus().hashCode();
      }
      if (hasHresult()) {
        hash = (37 * hash) + HRESULT_FIELD_NUMBER;
        hash = (53 * hash) + getHresult();
      }
      if (hasReturnValue()) {
        hash = (37 * hash) + RETURN_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getReturnValue().hashCode();
      }
      if (getStatusesCount() > 0) {
        hash = (37 * hash) + STATUSES_FIELD_NUMBER;
        hash = (53 * hash) + getStatusesList().hashCode();
      }
      hash = (37 * hash) + DIAGNOSTIC_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getDiagnosticMessage().hashCode();
      switch (payloadCase_) {
        case 20:
          hash = (37 * hash) + REGISTER_FIELD_NUMBER;
          hash = (53 * hash) + getRegister().hashCode();
          break;
        case 21:
          hash = (37 * hash) + ADD_ITEM_FIELD_NUMBER;
          hash = (53 * hash) + getAddItem().hashCode();
          break;
        case 22:
          hash = (37 * hash) + ADD_ITEM2_FIELD_NUMBER;
          hash = (53 * hash) + getAddItem2().hashCode();
          break;
        case 23:
          hash = (37 * hash) + ADD_BUFFERED_ITEM_FIELD_NUMBER;
          hash = (53 * hash) + getAddBufferedItem().hashCode();
          break;
        case 24:
          hash = (37 * hash) + SUSPEND_FIELD_NUMBER;
          hash = (53 * hash) + getSuspend().hashCode();
          break;
        case 25:
          hash = (37 * hash) + ACTIVATE_FIELD_NUMBER;
          hash = (53 * hash) + getActivate().hashCode();
          break;
        case 26:
          hash = (37 * hash) + AUTHENTICATE_USER_FIELD_NUMBER;
          hash = (53 * hash) + getAuthenticateUser().hashCode();
          break;
        case 27:
          hash = (37 * hash) + ARCHESTRA_USER_TO_ID_FIELD_NUMBER;
          hash = (53 * hash) + getArchestraUserToId().hashCode();
          break;
        case 28:
          hash = (37 * hash) + ADD_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getAddItemBulk().hashCode();
          break;
        case 29:
          hash = (37 * hash) + ADVISE_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getAdviseItemBulk().hashCode();
          break;
        case 30:
          hash = (37 * hash) + REMOVE_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getRemoveItemBulk().hashCode();
          break;
        case 31:
          hash = (37 * hash) + UN_ADVISE_ITEM_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getUnAdviseItemBulk().hashCode();
          break;
        case 32:
          hash = (37 * hash) + SUBSCRIBE_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getSubscribeBulk().hashCode();
          break;
        case 33:
          hash = (37 * hash) + UNSUBSCRIBE_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getUnsubscribeBulk().hashCode();
          break;
        case 34:
          hash = (37 * hash) + ACKNOWLEDGE_ALARM_FIELD_NUMBER;
          hash = (53 * hash) + getAcknowledgeAlarm().hashCode();
          break;
        case 35:
          hash = (37 * hash) + QUERY_ACTIVE_ALARMS_FIELD_NUMBER;
          hash = (53 * hash) + getQueryActiveAlarms().hashCode();
          break;
        case 36:
          hash = (37 * hash) + WRITE_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWriteBulk().hashCode();
          break;
        case 37:
          hash = (37 * hash) + WRITE2_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWrite2Bulk().hashCode();
          break;
        case 38:
          hash = (37 * hash) + WRITE_SECURED_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWriteSecuredBulk().hashCode();
          break;
        case 39:
          hash = (37 * hash) + WRITE_SECURED2_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getWriteSecured2Bulk().hashCode();
          break;
        case 40:
          hash = (37 * hash) + READ_BULK_FIELD_NUMBER;
          hash = (53 * hash) + getReadBulk().hashCode();
          break;
        case 100:
          hash = (37 * hash) + SESSION_STATE_FIELD_NUMBER;
          hash = (53 * hash) + getSessionState().hashCode();
          break;
        case 101:
          hash = (37 * hash) + WORKER_INFO_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerInfo().hashCode();
          break;
        case 102:
          hash = (37 * hash) + DRAIN_EVENTS_FIELD_NUMBER;
          hash = (53 * hash) + getDrainEvents().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply 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 mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply 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 mxaccess_gateway.v1.MxaccessGateway.MxCommandReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply 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(mxaccess_gateway.v1.MxaccessGateway.MxCommandReply 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 mxaccess_gateway.v1.MxCommandReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxCommandReply)
        mxaccess_gateway.v1.MxaccessGateway.MxCommandReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.class, mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetProtocolStatusFieldBuilder();
          internalGetReturnValueFieldBuilder();
          internalGetStatusesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        sessionId_ = "";
        correlationId_ = "";
        kind_ = 0;
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        hresult_ = 0;
        returnValue_ = null;
        if (returnValueBuilder_ != null) {
          returnValueBuilder_.dispose();
          returnValueBuilder_ = null;
        }
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
        } else {
          statuses_ = null;
          statusesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        diagnosticMessage_ = "";
        if (registerBuilder_ != null) {
          registerBuilder_.clear();
        }
        if (addItemBuilder_ != null) {
          addItemBuilder_.clear();
        }
        if (addItem2Builder_ != null) {
          addItem2Builder_.clear();
        }
        if (addBufferedItemBuilder_ != null) {
          addBufferedItemBuilder_.clear();
        }
        if (suspendBuilder_ != null) {
          suspendBuilder_.clear();
        }
        if (activateBuilder_ != null) {
          activateBuilder_.clear();
        }
        if (authenticateUserBuilder_ != null) {
          authenticateUserBuilder_.clear();
        }
        if (archestraUserToIdBuilder_ != null) {
          archestraUserToIdBuilder_.clear();
        }
        if (addItemBulkBuilder_ != null) {
          addItemBulkBuilder_.clear();
        }
        if (adviseItemBulkBuilder_ != null) {
          adviseItemBulkBuilder_.clear();
        }
        if (removeItemBulkBuilder_ != null) {
          removeItemBulkBuilder_.clear();
        }
        if (unAdviseItemBulkBuilder_ != null) {
          unAdviseItemBulkBuilder_.clear();
        }
        if (subscribeBulkBuilder_ != null) {
          subscribeBulkBuilder_.clear();
        }
        if (unsubscribeBulkBuilder_ != null) {
          unsubscribeBulkBuilder_.clear();
        }
        if (acknowledgeAlarmBuilder_ != null) {
          acknowledgeAlarmBuilder_.clear();
        }
        if (queryActiveAlarmsBuilder_ != null) {
          queryActiveAlarmsBuilder_.clear();
        }
        if (writeBulkBuilder_ != null) {
          writeBulkBuilder_.clear();
        }
        if (write2BulkBuilder_ != null) {
          write2BulkBuilder_.clear();
        }
        if (writeSecuredBulkBuilder_ != null) {
          writeSecuredBulkBuilder_.clear();
        }
        if (writeSecured2BulkBuilder_ != null) {
          writeSecured2BulkBuilder_.clear();
        }
        if (readBulkBuilder_ != null) {
          readBulkBuilder_.clear();
        }
        if (sessionStateBuilder_ != null) {
          sessionStateBuilder_.clear();
        }
        if (workerInfoBuilder_ != null) {
          workerInfoBuilder_.clear();
        }
        if (drainEventsBuilder_ != null) {
          drainEventsBuilder_.clear();
        }
        payloadCase_ = 0;
        payload_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxCommandReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandReply build() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommandReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommandReply result = new mxaccess_gateway.v1.MxaccessGateway.MxCommandReply(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.MxCommandReply result) {
        if (statusesBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0)) {
            statuses_ = java.util.Collections.unmodifiableList(statuses_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.statuses_ = statuses_;
        } else {
          result.statuses_ = statusesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxCommandReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.correlationId_ = correlationId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.kind_ = kind_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.protocolStatus_ = protocolStatusBuilder_ == null
              ? protocolStatus_
              : protocolStatusBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.hresult_ = hresult_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.returnValue_ = returnValueBuilder_ == null
              ? returnValue_
              : returnValueBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.diagnosticMessage_ = diagnosticMessage_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartialOneofs(mxaccess_gateway.v1.MxaccessGateway.MxCommandReply result) {
        result.payloadCase_ = payloadCase_;
        result.payload_ = this.payload_;
        if (payloadCase_ == 20 &&
            registerBuilder_ != null) {
          result.payload_ = registerBuilder_.build();
        }
        if (payloadCase_ == 21 &&
            addItemBuilder_ != null) {
          result.payload_ = addItemBuilder_.build();
        }
        if (payloadCase_ == 22 &&
            addItem2Builder_ != null) {
          result.payload_ = addItem2Builder_.build();
        }
        if (payloadCase_ == 23 &&
            addBufferedItemBuilder_ != null) {
          result.payload_ = addBufferedItemBuilder_.build();
        }
        if (payloadCase_ == 24 &&
            suspendBuilder_ != null) {
          result.payload_ = suspendBuilder_.build();
        }
        if (payloadCase_ == 25 &&
            activateBuilder_ != null) {
          result.payload_ = activateBuilder_.build();
        }
        if (payloadCase_ == 26 &&
            authenticateUserBuilder_ != null) {
          result.payload_ = authenticateUserBuilder_.build();
        }
        if (payloadCase_ == 27 &&
            archestraUserToIdBuilder_ != null) {
          result.payload_ = archestraUserToIdBuilder_.build();
        }
        if (payloadCase_ == 28 &&
            addItemBulkBuilder_ != null) {
          result.payload_ = addItemBulkBuilder_.build();
        }
        if (payloadCase_ == 29 &&
            adviseItemBulkBuilder_ != null) {
          result.payload_ = adviseItemBulkBuilder_.build();
        }
        if (payloadCase_ == 30 &&
            removeItemBulkBuilder_ != null) {
          result.payload_ = removeItemBulkBuilder_.build();
        }
        if (payloadCase_ == 31 &&
            unAdviseItemBulkBuilder_ != null) {
          result.payload_ = unAdviseItemBulkBuilder_.build();
        }
        if (payloadCase_ == 32 &&
            subscribeBulkBuilder_ != null) {
          result.payload_ = subscribeBulkBuilder_.build();
        }
        if (payloadCase_ == 33 &&
            unsubscribeBulkBuilder_ != null) {
          result.payload_ = unsubscribeBulkBuilder_.build();
        }
        if (payloadCase_ == 34 &&
            acknowledgeAlarmBuilder_ != null) {
          result.payload_ = acknowledgeAlarmBuilder_.build();
        }
        if (payloadCase_ == 35 &&
            queryActiveAlarmsBuilder_ != null) {
          result.payload_ = queryActiveAlarmsBuilder_.build();
        }
        if (payloadCase_ == 36 &&
            writeBulkBuilder_ != null) {
          result.payload_ = writeBulkBuilder_.build();
        }
        if (payloadCase_ == 37 &&
            write2BulkBuilder_ != null) {
          result.payload_ = write2BulkBuilder_.build();
        }
        if (payloadCase_ == 38 &&
            writeSecuredBulkBuilder_ != null) {
          result.payload_ = writeSecuredBulkBuilder_.build();
        }
        if (payloadCase_ == 39 &&
            writeSecured2BulkBuilder_ != null) {
          result.payload_ = writeSecured2BulkBuilder_.build();
        }
        if (payloadCase_ == 40 &&
            readBulkBuilder_ != null) {
          result.payload_ = readBulkBuilder_.build();
        }
        if (payloadCase_ == 100 &&
            sessionStateBuilder_ != null) {
          result.payload_ = sessionStateBuilder_.build();
        }
        if (payloadCase_ == 101 &&
            workerInfoBuilder_ != null) {
          result.payload_ = workerInfoBuilder_.build();
        }
        if (payloadCase_ == 102 &&
            drainEventsBuilder_ != null) {
          result.payload_ = drainEventsBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxCommandReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxCommandReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxCommandReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.getDefaultInstance()) return this;
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getCorrelationId().isEmpty()) {
          correlationId_ = other.correlationId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.kind_ != 0) {
          setKindValue(other.getKindValue());
        }
        if (other.hasProtocolStatus()) {
          mergeProtocolStatus(other.getProtocolStatus());
        }
        if (other.hasHresult()) {
          setHresult(other.getHresult());
        }
        if (other.hasReturnValue()) {
          mergeReturnValue(other.getReturnValue());
        }
        if (statusesBuilder_ == null) {
          if (!other.statuses_.isEmpty()) {
            if (statuses_.isEmpty()) {
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureStatusesIsMutable();
              statuses_.addAll(other.statuses_);
            }
            onChanged();
          }
        } else {
          if (!other.statuses_.isEmpty()) {
            if (statusesBuilder_.isEmpty()) {
              statusesBuilder_.dispose();
              statusesBuilder_ = null;
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000040);
              statusesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetStatusesFieldBuilder() : null;
            } else {
              statusesBuilder_.addAllMessages(other.statuses_);
            }
          }
        }
        if (!other.getDiagnosticMessage().isEmpty()) {
          diagnosticMessage_ = other.diagnosticMessage_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        switch (other.getPayloadCase()) {
          case REGISTER: {
            mergeRegister(other.getRegister());
            break;
          }
          case ADD_ITEM: {
            mergeAddItem(other.getAddItem());
            break;
          }
          case ADD_ITEM2: {
            mergeAddItem2(other.getAddItem2());
            break;
          }
          case ADD_BUFFERED_ITEM: {
            mergeAddBufferedItem(other.getAddBufferedItem());
            break;
          }
          case SUSPEND: {
            mergeSuspend(other.getSuspend());
            break;
          }
          case ACTIVATE: {
            mergeActivate(other.getActivate());
            break;
          }
          case AUTHENTICATE_USER: {
            mergeAuthenticateUser(other.getAuthenticateUser());
            break;
          }
          case ARCHESTRA_USER_TO_ID: {
            mergeArchestraUserToId(other.getArchestraUserToId());
            break;
          }
          case ADD_ITEM_BULK: {
            mergeAddItemBulk(other.getAddItemBulk());
            break;
          }
          case ADVISE_ITEM_BULK: {
            mergeAdviseItemBulk(other.getAdviseItemBulk());
            break;
          }
          case REMOVE_ITEM_BULK: {
            mergeRemoveItemBulk(other.getRemoveItemBulk());
            break;
          }
          case UN_ADVISE_ITEM_BULK: {
            mergeUnAdviseItemBulk(other.getUnAdviseItemBulk());
            break;
          }
          case SUBSCRIBE_BULK: {
            mergeSubscribeBulk(other.getSubscribeBulk());
            break;
          }
          case UNSUBSCRIBE_BULK: {
            mergeUnsubscribeBulk(other.getUnsubscribeBulk());
            break;
          }
          case ACKNOWLEDGE_ALARM: {
            mergeAcknowledgeAlarm(other.getAcknowledgeAlarm());
            break;
          }
          case QUERY_ACTIVE_ALARMS: {
            mergeQueryActiveAlarms(other.getQueryActiveAlarms());
            break;
          }
          case WRITE_BULK: {
            mergeWriteBulk(other.getWriteBulk());
            break;
          }
          case WRITE2_BULK: {
            mergeWrite2Bulk(other.getWrite2Bulk());
            break;
          }
          case WRITE_SECURED_BULK: {
            mergeWriteSecuredBulk(other.getWriteSecuredBulk());
            break;
          }
          case WRITE_SECURED2_BULK: {
            mergeWriteSecured2Bulk(other.getWriteSecured2Bulk());
            break;
          }
          case READ_BULK: {
            mergeReadBulk(other.getReadBulk());
            break;
          }
          case SESSION_STATE: {
            mergeSessionState(other.getSessionState());
            break;
          }
          case WORKER_INFO: {
            mergeWorkerInfo(other.getWorkerInfo());
            break;
          }
          case DRAIN_EVENTS: {
            mergeDrainEvents(other.getDrainEvents());
            break;
          }
          case PAYLOAD_NOT_SET: {
            break;
          }
        }
        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: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                correlationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                kind_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                input.readMessage(
                    internalGetProtocolStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                hresult_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                input.readMessage(
                    internalGetReturnValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.parser(),
                        extensionRegistry);
                if (statusesBuilder_ == null) {
                  ensureStatusesIsMutable();
                  statuses_.add(m);
                } else {
                  statusesBuilder_.addMessage(m);
                }
                break;
              } // case 58
              case 66: {
                diagnosticMessage_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 162: {
                input.readMessage(
                    internalGetRegisterFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 20;
                break;
              } // case 162
              case 170: {
                input.readMessage(
                    internalGetAddItemFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 21;
                break;
              } // case 170
              case 178: {
                input.readMessage(
                    internalGetAddItem2FieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 22;
                break;
              } // case 178
              case 186: {
                input.readMessage(
                    internalGetAddBufferedItemFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 23;
                break;
              } // case 186
              case 194: {
                input.readMessage(
                    internalGetSuspendFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 24;
                break;
              } // case 194
              case 202: {
                input.readMessage(
                    internalGetActivateFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 25;
                break;
              } // case 202
              case 210: {
                input.readMessage(
                    internalGetAuthenticateUserFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 26;
                break;
              } // case 210
              case 218: {
                input.readMessage(
                    internalGetArchestraUserToIdFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 27;
                break;
              } // case 218
              case 226: {
                input.readMessage(
                    internalGetAddItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 28;
                break;
              } // case 226
              case 234: {
                input.readMessage(
                    internalGetAdviseItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 29;
                break;
              } // case 234
              case 242: {
                input.readMessage(
                    internalGetRemoveItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 30;
                break;
              } // case 242
              case 250: {
                input.readMessage(
                    internalGetUnAdviseItemBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 31;
                break;
              } // case 250
              case 258: {
                input.readMessage(
                    internalGetSubscribeBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 32;
                break;
              } // case 258
              case 266: {
                input.readMessage(
                    internalGetUnsubscribeBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 33;
                break;
              } // case 266
              case 274: {
                input.readMessage(
                    internalGetAcknowledgeAlarmFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 34;
                break;
              } // case 274
              case 282: {
                input.readMessage(
                    internalGetQueryActiveAlarmsFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 35;
                break;
              } // case 282
              case 290: {
                input.readMessage(
                    internalGetWriteBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 36;
                break;
              } // case 290
              case 298: {
                input.readMessage(
                    internalGetWrite2BulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 37;
                break;
              } // case 298
              case 306: {
                input.readMessage(
                    internalGetWriteSecuredBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 38;
                break;
              } // case 306
              case 314: {
                input.readMessage(
                    internalGetWriteSecured2BulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 39;
                break;
              } // case 314
              case 322: {
                input.readMessage(
                    internalGetReadBulkFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 40;
                break;
              } // case 322
              case 802: {
                input.readMessage(
                    internalGetSessionStateFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 100;
                break;
              } // case 802
              case 810: {
                input.readMessage(
                    internalGetWorkerInfoFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 101;
                break;
              } // case 810
              case 818: {
                input.readMessage(
                    internalGetDrainEventsFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 102;
                break;
              } // case 818
              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 payloadCase_ = 0;
      private java.lang.Object payload_;
      public PayloadCase
          getPayloadCase() {
        return PayloadCase.forNumber(
            payloadCase_);
      }

      public Builder clearPayload() {
        payloadCase_ = 0;
        payload_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private java.lang.Object sessionId_ = "";
      /**
       * <code>string session_id = 1;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 1;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object correlationId_ = "";
      /**
       * <code>string correlation_id = 2;</code>
       * @return The correlationId.
       */
      public java.lang.String getCorrelationId() {
        java.lang.Object ref = correlationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          correlationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @return The bytes for correlationId.
       */
      public com.google.protobuf.ByteString
          getCorrelationIdBytes() {
        java.lang.Object ref = correlationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          correlationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @param value The correlationId to set.
       * @return This builder for chaining.
       */
      public Builder setCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        correlationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCorrelationId() {
        correlationId_ = getDefaultInstance().getCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @param value The bytes for correlationId to set.
       * @return This builder for chaining.
       */
      public Builder setCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        correlationId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int kind_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
       * @return The enum numeric value on the wire for kind.
       */
      @java.lang.Override public int getKindValue() {
        return kind_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
       * @param value The enum numeric value on the wire for kind to set.
       * @return This builder for chaining.
       */
      public Builder setKindValue(int value) {
        kind_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
       * @return The kind.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandKind getKind() {
        mxaccess_gateway.v1.MxaccessGateway.MxCommandKind result = mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.forNumber(kind_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommandKind.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
       * @param value The kind to set.
       * @return This builder for chaining.
       */
      public Builder setKind(mxaccess_gateway.v1.MxaccessGateway.MxCommandKind value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000004;
        kind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandKind kind = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000004);
        kind_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> protocolStatusBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       * @return Whether the protocolStatus field is set.
       */
      public boolean hasProtocolStatus() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       * @return The protocolStatus.
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
        if (protocolStatusBuilder_ == null) {
          return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        } else {
          return protocolStatusBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       */
      public Builder setProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          protocolStatus_ = value;
        } else {
          protocolStatusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       */
      public Builder setProtocolStatus(
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder builderForValue) {
        if (protocolStatusBuilder_ == null) {
          protocolStatus_ = builderForValue.build();
        } else {
          protocolStatusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       */
      public Builder mergeProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            protocolStatus_ != null &&
            protocolStatus_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance()) {
            getProtocolStatusBuilder().mergeFrom(value);
          } else {
            protocolStatus_ = value;
          }
        } else {
          protocolStatusBuilder_.mergeFrom(value);
        }
        if (protocolStatus_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       */
      public Builder clearProtocolStatus() {
        bitField0_ = (bitField0_ & ~0x00000008);
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder getProtocolStatusBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetProtocolStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
        if (protocolStatusBuilder_ != null) {
          return protocolStatusBuilder_.getMessageOrBuilder();
        } else {
          return protocolStatus_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> 
          internalGetProtocolStatusFieldBuilder() {
        if (protocolStatusBuilder_ == null) {
          protocolStatusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder>(
                  getProtocolStatus(),
                  getParentForChildren(),
                  isClean());
          protocolStatus_ = null;
        }
        return protocolStatusBuilder_;
      }

      private int hresult_ ;
      /**
       * <pre>
       * HRESULT captured from MXAccess or a COM exception. This remains separate
       * from gateway protocol status so MXAccess parity details are not hidden by
       * transport failures.
       * </pre>
       *
       * <code>optional int32 hresult = 5;</code>
       * @return Whether the hresult field is set.
       */
      @java.lang.Override
      public boolean hasHresult() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * HRESULT captured from MXAccess or a COM exception. This remains separate
       * from gateway protocol status so MXAccess parity details are not hidden by
       * transport failures.
       * </pre>
       *
       * <code>optional int32 hresult = 5;</code>
       * @return The hresult.
       */
      @java.lang.Override
      public int getHresult() {
        return hresult_;
      }
      /**
       * <pre>
       * HRESULT captured from MXAccess or a COM exception. This remains separate
       * from gateway protocol status so MXAccess parity details are not hidden by
       * transport failures.
       * </pre>
       *
       * <code>optional int32 hresult = 5;</code>
       * @param value The hresult to set.
       * @return This builder for chaining.
       */
      public Builder setHresult(int value) {

        hresult_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * HRESULT captured from MXAccess or a COM exception. This remains separate
       * from gateway protocol status so MXAccess parity details are not hidden by
       * transport failures.
       * </pre>
       *
       * <code>optional int32 hresult = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearHresult() {
        bitField0_ = (bitField0_ & ~0x00000010);
        hresult_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue returnValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> returnValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       * @return Whether the returnValue field is set.
       */
      public boolean hasReturnValue() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       * @return The returnValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getReturnValue() {
        if (returnValueBuilder_ == null) {
          return returnValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : returnValue_;
        } else {
          return returnValueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       */
      public Builder setReturnValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (returnValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          returnValue_ = value;
        } else {
          returnValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       */
      public Builder setReturnValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (returnValueBuilder_ == null) {
          returnValue_ = builderForValue.build();
        } else {
          returnValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       */
      public Builder mergeReturnValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (returnValueBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            returnValue_ != null &&
            returnValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getReturnValueBuilder().mergeFrom(value);
          } else {
            returnValue_ = value;
          }
        } else {
          returnValueBuilder_.mergeFrom(value);
        }
        if (returnValue_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       */
      public Builder clearReturnValue() {
        bitField0_ = (bitField0_ & ~0x00000020);
        returnValue_ = null;
        if (returnValueBuilder_ != null) {
          returnValueBuilder_.dispose();
          returnValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getReturnValueBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return internalGetReturnValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getReturnValueOrBuilder() {
        if (returnValueBuilder_ != null) {
          return returnValueBuilder_.getMessageOrBuilder();
        } else {
          return returnValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : returnValue_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue return_value = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetReturnValueFieldBuilder() {
        if (returnValueBuilder_ == null) {
          returnValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getReturnValue(),
                  getParentForChildren(),
                  isClean());
          returnValue_ = null;
        }
        return returnValueBuilder_;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_ =
        java.util.Collections.emptyList();
      private void ensureStatusesIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          statuses_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy>(statuses_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> statusesBuilder_;

      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
        if (statusesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(statuses_);
        } else {
          return statusesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public int getStatusesCount() {
        if (statusesBuilder_ == null) {
          return statuses_.size();
        } else {
          return statusesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);
        } else {
          return statusesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.set(index, value);
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.set(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder addStatuses(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(index, value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder addStatuses(
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder addAllStatuses(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> values) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, statuses_);
          onChanged();
        } else {
          statusesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder clearStatuses() {
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          statusesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public Builder removeStatuses(int index) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.remove(index);
          onChanged();
        } else {
          statusesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder getStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
          int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);  } else {
          return statusesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
           getStatusesOrBuilderList() {
        if (statusesBuilder_ != null) {
          return statusesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(statuses_);
        }
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder() {
        return internalGetStatusesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <pre>
       * Correlated per-item outcome rows. For WRITE / WRITE2 / WRITE_SECURED /
       * WRITE_SECURED2 replies the worker holds the reply for a bounded window
       * (default 1.5 s, MXGATEWAY_WORKER_WRITE_COMPLETION_WAIT_MS) waiting for
       * the matching MXAccess OnWriteComplete callback and copies its status rows
       * here, so statuses[0] carries the real MXAccess commit outcome (success OR
       * failure) while protocol_status/hresult still describe command acceptance
       * only. Empty statuses on a write reply means the completion did not arrive
       * within the window — the write is unconfirmed, not failed. Correlation is
       * best-effort per (server_handle, item_handle): MXAccess's callback carries
       * no transaction id, so concurrent writes to the same item within the
       * window can swap rows. The OnWriteComplete event still flows on the event
       * stream unchanged. Bulk write kinds and all non-write kinds leave this
       * field as before.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 7;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder> 
           getStatusesBuilderList() {
        return internalGetStatusesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
          internalGetStatusesFieldBuilder() {
        if (statusesBuilder_ == null) {
          statusesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder>(
                  statuses_,
                  ((bitField0_ & 0x00000040) != 0),
                  getParentForChildren(),
                  isClean());
          statuses_ = null;
        }
        return statusesBuilder_;
      }

      private java.lang.Object diagnosticMessage_ = "";
      /**
       * <code>string diagnostic_message = 8;</code>
       * @return The diagnosticMessage.
       */
      public java.lang.String getDiagnosticMessage() {
        java.lang.Object ref = diagnosticMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          diagnosticMessage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string diagnostic_message = 8;</code>
       * @return The bytes for diagnosticMessage.
       */
      public com.google.protobuf.ByteString
          getDiagnosticMessageBytes() {
        java.lang.Object ref = diagnosticMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          diagnosticMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string diagnostic_message = 8;</code>
       * @param value The diagnosticMessage to set.
       * @return This builder for chaining.
       */
      public Builder setDiagnosticMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        diagnosticMessage_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>string diagnostic_message = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiagnosticMessage() {
        diagnosticMessage_ = getDefaultInstance().getDiagnosticMessage();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>string diagnostic_message = 8;</code>
       * @param value The bytes for diagnosticMessage to set.
       * @return This builder for chaining.
       */
      public Builder setDiagnosticMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        diagnosticMessage_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RegisterReply, mxaccess_gateway.v1.MxaccessGateway.RegisterReply.Builder, mxaccess_gateway.v1.MxaccessGateway.RegisterReplyOrBuilder> registerBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       * @return Whether the register field is set.
       */
      @java.lang.Override
      public boolean hasRegister() {
        return payloadCase_ == 20;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       * @return The register.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterReply getRegister() {
        if (registerBuilder_ == null) {
          if (payloadCase_ == 20) {
            return (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 20) {
            return registerBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       */
      public Builder setRegister(mxaccess_gateway.v1.MxaccessGateway.RegisterReply value) {
        if (registerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          registerBuilder_.setMessage(value);
        }
        payloadCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       */
      public Builder setRegister(
          mxaccess_gateway.v1.MxaccessGateway.RegisterReply.Builder builderForValue) {
        if (registerBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          registerBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       */
      public Builder mergeRegister(mxaccess_gateway.v1.MxaccessGateway.RegisterReply value) {
        if (registerBuilder_ == null) {
          if (payloadCase_ == 20 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RegisterReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 20) {
            registerBuilder_.mergeFrom(value);
          } else {
            registerBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       */
      public Builder clearRegister() {
        if (registerBuilder_ == null) {
          if (payloadCase_ == 20) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 20) {
            payloadCase_ = 0;
            payload_ = null;
          }
          registerBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.RegisterReply.Builder getRegisterBuilder() {
        return internalGetRegisterFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterReplyOrBuilder getRegisterOrBuilder() {
        if ((payloadCase_ == 20) && (registerBuilder_ != null)) {
          return registerBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 20) {
            return (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RegisterReply register = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RegisterReply, mxaccess_gateway.v1.MxaccessGateway.RegisterReply.Builder, mxaccess_gateway.v1.MxaccessGateway.RegisterReplyOrBuilder> 
          internalGetRegisterFieldBuilder() {
        if (registerBuilder_ == null) {
          if (!(payloadCase_ == 20)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance();
          }
          registerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.RegisterReply, mxaccess_gateway.v1.MxaccessGateway.RegisterReply.Builder, mxaccess_gateway.v1.MxaccessGateway.RegisterReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 20;
        onChanged();
        return registerBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItemReply, mxaccess_gateway.v1.MxaccessGateway.AddItemReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemReplyOrBuilder> addItemBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       * @return Whether the addItem field is set.
       */
      @java.lang.Override
      public boolean hasAddItem() {
        return payloadCase_ == 21;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       * @return The addItem.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemReply getAddItem() {
        if (addItemBuilder_ == null) {
          if (payloadCase_ == 21) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 21) {
            return addItemBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       */
      public Builder setAddItem(mxaccess_gateway.v1.MxaccessGateway.AddItemReply value) {
        if (addItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addItemBuilder_.setMessage(value);
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       */
      public Builder setAddItem(
          mxaccess_gateway.v1.MxaccessGateway.AddItemReply.Builder builderForValue) {
        if (addItemBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addItemBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       */
      public Builder mergeAddItem(mxaccess_gateway.v1.MxaccessGateway.AddItemReply value) {
        if (addItemBuilder_ == null) {
          if (payloadCase_ == 21 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItemReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 21) {
            addItemBuilder_.mergeFrom(value);
          } else {
            addItemBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       */
      public Builder clearAddItem() {
        if (addItemBuilder_ == null) {
          if (payloadCase_ == 21) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 21) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addItemBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AddItemReply.Builder getAddItemBuilder() {
        return internalGetAddItemFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemReplyOrBuilder getAddItemOrBuilder() {
        if ((payloadCase_ == 21) && (addItemBuilder_ != null)) {
          return addItemBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 21) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItemReply add_item = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItemReply, mxaccess_gateway.v1.MxaccessGateway.AddItemReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemReplyOrBuilder> 
          internalGetAddItemFieldBuilder() {
        if (addItemBuilder_ == null) {
          if (!(payloadCase_ == 21)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance();
          }
          addItemBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AddItemReply, mxaccess_gateway.v1.MxaccessGateway.AddItemReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItemReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 21;
        onChanged();
        return addItemBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply, mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItem2ReplyOrBuilder> addItem2Builder_;
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       * @return Whether the addItem2 field is set.
       */
      @java.lang.Override
      public boolean hasAddItem2() {
        return payloadCase_ == 22;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       * @return The addItem2.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply getAddItem2() {
        if (addItem2Builder_ == null) {
          if (payloadCase_ == 22) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance();
        } else {
          if (payloadCase_ == 22) {
            return addItem2Builder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       */
      public Builder setAddItem2(mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply value) {
        if (addItem2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addItem2Builder_.setMessage(value);
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       */
      public Builder setAddItem2(
          mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.Builder builderForValue) {
        if (addItem2Builder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addItem2Builder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       */
      public Builder mergeAddItem2(mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply value) {
        if (addItem2Builder_ == null) {
          if (payloadCase_ == 22 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 22) {
            addItem2Builder_.mergeFrom(value);
          } else {
            addItem2Builder_.setMessage(value);
          }
        }
        payloadCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       */
      public Builder clearAddItem2() {
        if (addItem2Builder_ == null) {
          if (payloadCase_ == 22) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 22) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addItem2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.Builder getAddItem2Builder() {
        return internalGetAddItem2FieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2ReplyOrBuilder getAddItem2OrBuilder() {
        if ((payloadCase_ == 22) && (addItem2Builder_ != null)) {
          return addItem2Builder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 22) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddItem2Reply add_item2 = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply, mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItem2ReplyOrBuilder> 
          internalGetAddItem2FieldBuilder() {
        if (addItem2Builder_ == null) {
          if (!(payloadCase_ == 22)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance();
          }
          addItem2Builder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply, mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddItem2ReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 22;
        onChanged();
        return addItem2Builder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReplyOrBuilder> addBufferedItemBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       * @return Whether the addBufferedItem field is set.
       */
      @java.lang.Override
      public boolean hasAddBufferedItem() {
        return payloadCase_ == 23;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       * @return The addBufferedItem.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply getAddBufferedItem() {
        if (addBufferedItemBuilder_ == null) {
          if (payloadCase_ == 23) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 23) {
            return addBufferedItemBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       */
      public Builder setAddBufferedItem(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply value) {
        if (addBufferedItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addBufferedItemBuilder_.setMessage(value);
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       */
      public Builder setAddBufferedItem(
          mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.Builder builderForValue) {
        if (addBufferedItemBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addBufferedItemBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       */
      public Builder mergeAddBufferedItem(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply value) {
        if (addBufferedItemBuilder_ == null) {
          if (payloadCase_ == 23 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 23) {
            addBufferedItemBuilder_.mergeFrom(value);
          } else {
            addBufferedItemBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       */
      public Builder clearAddBufferedItem() {
        if (addBufferedItemBuilder_ == null) {
          if (payloadCase_ == 23) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 23) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addBufferedItemBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.Builder getAddBufferedItemBuilder() {
        return internalGetAddBufferedItemFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReplyOrBuilder getAddBufferedItemOrBuilder() {
        if ((payloadCase_ == 23) && (addBufferedItemBuilder_ != null)) {
          return addBufferedItemBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 23) {
            return (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AddBufferedItemReply add_buffered_item = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReplyOrBuilder> 
          internalGetAddBufferedItemFieldBuilder() {
        if (addBufferedItemBuilder_ == null) {
          if (!(payloadCase_ == 23)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance();
          }
          addBufferedItemBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 23;
        onChanged();
        return addBufferedItemBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SuspendReply, mxaccess_gateway.v1.MxaccessGateway.SuspendReply.Builder, mxaccess_gateway.v1.MxaccessGateway.SuspendReplyOrBuilder> suspendBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       * @return Whether the suspend field is set.
       */
      @java.lang.Override
      public boolean hasSuspend() {
        return payloadCase_ == 24;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       * @return The suspend.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendReply getSuspend() {
        if (suspendBuilder_ == null) {
          if (payloadCase_ == 24) {
            return (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 24) {
            return suspendBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       */
      public Builder setSuspend(mxaccess_gateway.v1.MxaccessGateway.SuspendReply value) {
        if (suspendBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          suspendBuilder_.setMessage(value);
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       */
      public Builder setSuspend(
          mxaccess_gateway.v1.MxaccessGateway.SuspendReply.Builder builderForValue) {
        if (suspendBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          suspendBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       */
      public Builder mergeSuspend(mxaccess_gateway.v1.MxaccessGateway.SuspendReply value) {
        if (suspendBuilder_ == null) {
          if (payloadCase_ == 24 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SuspendReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 24) {
            suspendBuilder_.mergeFrom(value);
          } else {
            suspendBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       */
      public Builder clearSuspend() {
        if (suspendBuilder_ == null) {
          if (payloadCase_ == 24) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 24) {
            payloadCase_ = 0;
            payload_ = null;
          }
          suspendBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SuspendReply.Builder getSuspendBuilder() {
        return internalGetSuspendFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendReplyOrBuilder getSuspendOrBuilder() {
        if ((payloadCase_ == 24) && (suspendBuilder_ != null)) {
          return suspendBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 24) {
            return (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SuspendReply suspend = 24;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SuspendReply, mxaccess_gateway.v1.MxaccessGateway.SuspendReply.Builder, mxaccess_gateway.v1.MxaccessGateway.SuspendReplyOrBuilder> 
          internalGetSuspendFieldBuilder() {
        if (suspendBuilder_ == null) {
          if (!(payloadCase_ == 24)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance();
          }
          suspendBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.SuspendReply, mxaccess_gateway.v1.MxaccessGateway.SuspendReply.Builder, mxaccess_gateway.v1.MxaccessGateway.SuspendReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 24;
        onChanged();
        return suspendBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActivateReply, mxaccess_gateway.v1.MxaccessGateway.ActivateReply.Builder, mxaccess_gateway.v1.MxaccessGateway.ActivateReplyOrBuilder> activateBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       * @return Whether the activate field is set.
       */
      @java.lang.Override
      public boolean hasActivate() {
        return payloadCase_ == 25;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       * @return The activate.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateReply getActivate() {
        if (activateBuilder_ == null) {
          if (payloadCase_ == 25) {
            return (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 25) {
            return activateBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       */
      public Builder setActivate(mxaccess_gateway.v1.MxaccessGateway.ActivateReply value) {
        if (activateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          activateBuilder_.setMessage(value);
        }
        payloadCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       */
      public Builder setActivate(
          mxaccess_gateway.v1.MxaccessGateway.ActivateReply.Builder builderForValue) {
        if (activateBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          activateBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       */
      public Builder mergeActivate(mxaccess_gateway.v1.MxaccessGateway.ActivateReply value) {
        if (activateBuilder_ == null) {
          if (payloadCase_ == 25 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ActivateReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 25) {
            activateBuilder_.mergeFrom(value);
          } else {
            activateBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       */
      public Builder clearActivate() {
        if (activateBuilder_ == null) {
          if (payloadCase_ == 25) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 25) {
            payloadCase_ = 0;
            payload_ = null;
          }
          activateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActivateReply.Builder getActivateBuilder() {
        return internalGetActivateFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateReplyOrBuilder getActivateOrBuilder() {
        if ((payloadCase_ == 25) && (activateBuilder_ != null)) {
          return activateBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 25) {
            return (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ActivateReply activate = 25;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActivateReply, mxaccess_gateway.v1.MxaccessGateway.ActivateReply.Builder, mxaccess_gateway.v1.MxaccessGateway.ActivateReplyOrBuilder> 
          internalGetActivateFieldBuilder() {
        if (activateBuilder_ == null) {
          if (!(payloadCase_ == 25)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance();
          }
          activateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ActivateReply, mxaccess_gateway.v1.MxaccessGateway.ActivateReply.Builder, mxaccess_gateway.v1.MxaccessGateway.ActivateReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 25;
        onChanged();
        return activateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReplyOrBuilder> authenticateUserBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       * @return Whether the authenticateUser field is set.
       */
      @java.lang.Override
      public boolean hasAuthenticateUser() {
        return payloadCase_ == 26;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       * @return The authenticateUser.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply getAuthenticateUser() {
        if (authenticateUserBuilder_ == null) {
          if (payloadCase_ == 26) {
            return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 26) {
            return authenticateUserBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       */
      public Builder setAuthenticateUser(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply value) {
        if (authenticateUserBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          authenticateUserBuilder_.setMessage(value);
        }
        payloadCase_ = 26;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       */
      public Builder setAuthenticateUser(
          mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.Builder builderForValue) {
        if (authenticateUserBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          authenticateUserBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 26;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       */
      public Builder mergeAuthenticateUser(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply value) {
        if (authenticateUserBuilder_ == null) {
          if (payloadCase_ == 26 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 26) {
            authenticateUserBuilder_.mergeFrom(value);
          } else {
            authenticateUserBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 26;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       */
      public Builder clearAuthenticateUser() {
        if (authenticateUserBuilder_ == null) {
          if (payloadCase_ == 26) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 26) {
            payloadCase_ = 0;
            payload_ = null;
          }
          authenticateUserBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.Builder getAuthenticateUserBuilder() {
        return internalGetAuthenticateUserFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReplyOrBuilder getAuthenticateUserOrBuilder() {
        if ((payloadCase_ == 26) && (authenticateUserBuilder_ != null)) {
          return authenticateUserBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 26) {
            return (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.AuthenticateUserReply authenticate_user = 26;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReplyOrBuilder> 
          internalGetAuthenticateUserFieldBuilder() {
        if (authenticateUserBuilder_ == null) {
          if (!(payloadCase_ == 26)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance();
          }
          authenticateUserBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.Builder, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 26;
        onChanged();
        return authenticateUserBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.Builder, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReplyOrBuilder> archestraUserToIdBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       * @return Whether the archestraUserToId field is set.
       */
      @java.lang.Override
      public boolean hasArchestraUserToId() {
        return payloadCase_ == 27;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       * @return The archestraUserToId.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply getArchestraUserToId() {
        if (archestraUserToIdBuilder_ == null) {
          if (payloadCase_ == 27) {
            return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 27) {
            return archestraUserToIdBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       */
      public Builder setArchestraUserToId(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply value) {
        if (archestraUserToIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          archestraUserToIdBuilder_.setMessage(value);
        }
        payloadCase_ = 27;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       */
      public Builder setArchestraUserToId(
          mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.Builder builderForValue) {
        if (archestraUserToIdBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          archestraUserToIdBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 27;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       */
      public Builder mergeArchestraUserToId(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply value) {
        if (archestraUserToIdBuilder_ == null) {
          if (payloadCase_ == 27 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 27) {
            archestraUserToIdBuilder_.mergeFrom(value);
          } else {
            archestraUserToIdBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 27;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       */
      public Builder clearArchestraUserToId() {
        if (archestraUserToIdBuilder_ == null) {
          if (payloadCase_ == 27) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 27) {
            payloadCase_ = 0;
            payload_ = null;
          }
          archestraUserToIdBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.Builder getArchestraUserToIdBuilder() {
        return internalGetArchestraUserToIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReplyOrBuilder getArchestraUserToIdOrBuilder() {
        if ((payloadCase_ == 27) && (archestraUserToIdBuilder_ != null)) {
          return archestraUserToIdBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 27) {
            return (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ArchestrAUserToIdReply archestra_user_to_id = 27;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.Builder, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReplyOrBuilder> 
          internalGetArchestraUserToIdFieldBuilder() {
        if (archestraUserToIdBuilder_ == null) {
          if (!(payloadCase_ == 27)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance();
          }
          archestraUserToIdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.Builder, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 27;
        onChanged();
        return archestraUserToIdBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> addItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       * @return Whether the addItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasAddItemBulk() {
        return payloadCase_ == 28;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       * @return The addItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getAddItemBulk() {
        if (addItemBulkBuilder_ == null) {
          if (payloadCase_ == 28) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 28) {
            return addItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       */
      public Builder setAddItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (addItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          addItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 28;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       */
      public Builder setAddItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder builderForValue) {
        if (addItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          addItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 28;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       */
      public Builder mergeAddItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (addItemBulkBuilder_ == null) {
          if (payloadCase_ == 28 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 28) {
            addItemBulkBuilder_.mergeFrom(value);
          } else {
            addItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 28;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       */
      public Builder clearAddItemBulk() {
        if (addItemBulkBuilder_ == null) {
          if (payloadCase_ == 28) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 28) {
            payloadCase_ = 0;
            payload_ = null;
          }
          addItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder getAddItemBulkBuilder() {
        return internalGetAddItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getAddItemBulkOrBuilder() {
        if ((payloadCase_ == 28) && (addItemBulkBuilder_ != null)) {
          return addItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 28) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply add_item_bulk = 28;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> 
          internalGetAddItemBulkFieldBuilder() {
        if (addItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 28)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
          }
          addItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 28;
        onChanged();
        return addItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> adviseItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       * @return Whether the adviseItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasAdviseItemBulk() {
        return payloadCase_ == 29;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       * @return The adviseItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getAdviseItemBulk() {
        if (adviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 29) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 29) {
            return adviseItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       */
      public Builder setAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (adviseItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          adviseItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 29;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       */
      public Builder setAdviseItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder builderForValue) {
        if (adviseItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          adviseItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 29;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       */
      public Builder mergeAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (adviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 29 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 29) {
            adviseItemBulkBuilder_.mergeFrom(value);
          } else {
            adviseItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 29;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       */
      public Builder clearAdviseItemBulk() {
        if (adviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 29) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 29) {
            payloadCase_ = 0;
            payload_ = null;
          }
          adviseItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder getAdviseItemBulkBuilder() {
        return internalGetAdviseItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getAdviseItemBulkOrBuilder() {
        if ((payloadCase_ == 29) && (adviseItemBulkBuilder_ != null)) {
          return adviseItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 29) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply advise_item_bulk = 29;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> 
          internalGetAdviseItemBulkFieldBuilder() {
        if (adviseItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 29)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
          }
          adviseItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 29;
        onChanged();
        return adviseItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> removeItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       * @return Whether the removeItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasRemoveItemBulk() {
        return payloadCase_ == 30;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       * @return The removeItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getRemoveItemBulk() {
        if (removeItemBulkBuilder_ == null) {
          if (payloadCase_ == 30) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 30) {
            return removeItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       */
      public Builder setRemoveItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (removeItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          removeItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 30;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       */
      public Builder setRemoveItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder builderForValue) {
        if (removeItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          removeItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 30;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       */
      public Builder mergeRemoveItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (removeItemBulkBuilder_ == null) {
          if (payloadCase_ == 30 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 30) {
            removeItemBulkBuilder_.mergeFrom(value);
          } else {
            removeItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 30;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       */
      public Builder clearRemoveItemBulk() {
        if (removeItemBulkBuilder_ == null) {
          if (payloadCase_ == 30) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 30) {
            payloadCase_ = 0;
            payload_ = null;
          }
          removeItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder getRemoveItemBulkBuilder() {
        return internalGetRemoveItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getRemoveItemBulkOrBuilder() {
        if ((payloadCase_ == 30) && (removeItemBulkBuilder_ != null)) {
          return removeItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 30) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply remove_item_bulk = 30;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> 
          internalGetRemoveItemBulkFieldBuilder() {
        if (removeItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 30)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
          }
          removeItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 30;
        onChanged();
        return removeItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> unAdviseItemBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       * @return Whether the unAdviseItemBulk field is set.
       */
      @java.lang.Override
      public boolean hasUnAdviseItemBulk() {
        return payloadCase_ == 31;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       * @return The unAdviseItemBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getUnAdviseItemBulk() {
        if (unAdviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 31) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 31) {
            return unAdviseItemBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       */
      public Builder setUnAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (unAdviseItemBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unAdviseItemBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 31;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       */
      public Builder setUnAdviseItemBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder builderForValue) {
        if (unAdviseItemBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unAdviseItemBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 31;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       */
      public Builder mergeUnAdviseItemBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (unAdviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 31 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 31) {
            unAdviseItemBulkBuilder_.mergeFrom(value);
          } else {
            unAdviseItemBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 31;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       */
      public Builder clearUnAdviseItemBulk() {
        if (unAdviseItemBulkBuilder_ == null) {
          if (payloadCase_ == 31) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 31) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unAdviseItemBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder getUnAdviseItemBulkBuilder() {
        return internalGetUnAdviseItemBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getUnAdviseItemBulkOrBuilder() {
        if ((payloadCase_ == 31) && (unAdviseItemBulkBuilder_ != null)) {
          return unAdviseItemBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 31) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply un_advise_item_bulk = 31;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> 
          internalGetUnAdviseItemBulkFieldBuilder() {
        if (unAdviseItemBulkBuilder_ == null) {
          if (!(payloadCase_ == 31)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
          }
          unAdviseItemBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 31;
        onChanged();
        return unAdviseItemBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> subscribeBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       * @return Whether the subscribeBulk field is set.
       */
      @java.lang.Override
      public boolean hasSubscribeBulk() {
        return payloadCase_ == 32;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       * @return The subscribeBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getSubscribeBulk() {
        if (subscribeBulkBuilder_ == null) {
          if (payloadCase_ == 32) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 32) {
            return subscribeBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       */
      public Builder setSubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (subscribeBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          subscribeBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 32;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       */
      public Builder setSubscribeBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder builderForValue) {
        if (subscribeBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          subscribeBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 32;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       */
      public Builder mergeSubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (subscribeBulkBuilder_ == null) {
          if (payloadCase_ == 32 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 32) {
            subscribeBulkBuilder_.mergeFrom(value);
          } else {
            subscribeBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 32;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       */
      public Builder clearSubscribeBulk() {
        if (subscribeBulkBuilder_ == null) {
          if (payloadCase_ == 32) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 32) {
            payloadCase_ = 0;
            payload_ = null;
          }
          subscribeBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder getSubscribeBulkBuilder() {
        return internalGetSubscribeBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getSubscribeBulkOrBuilder() {
        if ((payloadCase_ == 32) && (subscribeBulkBuilder_ != null)) {
          return subscribeBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 32) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply subscribe_bulk = 32;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> 
          internalGetSubscribeBulkFieldBuilder() {
        if (subscribeBulkBuilder_ == null) {
          if (!(payloadCase_ == 32)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
          }
          subscribeBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 32;
        onChanged();
        return subscribeBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> unsubscribeBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       * @return Whether the unsubscribeBulk field is set.
       */
      @java.lang.Override
      public boolean hasUnsubscribeBulk() {
        return payloadCase_ == 33;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       * @return The unsubscribeBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getUnsubscribeBulk() {
        if (unsubscribeBulkBuilder_ == null) {
          if (payloadCase_ == 33) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 33) {
            return unsubscribeBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       */
      public Builder setUnsubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (unsubscribeBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          unsubscribeBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 33;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       */
      public Builder setUnsubscribeBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder builderForValue) {
        if (unsubscribeBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          unsubscribeBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 33;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       */
      public Builder mergeUnsubscribeBulk(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply value) {
        if (unsubscribeBulkBuilder_ == null) {
          if (payloadCase_ == 33 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 33) {
            unsubscribeBulkBuilder_.mergeFrom(value);
          } else {
            unsubscribeBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 33;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       */
      public Builder clearUnsubscribeBulk() {
        if (unsubscribeBulkBuilder_ == null) {
          if (payloadCase_ == 33) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 33) {
            payloadCase_ = 0;
            payload_ = null;
          }
          unsubscribeBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder getUnsubscribeBulkBuilder() {
        return internalGetUnsubscribeBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder getUnsubscribeBulkOrBuilder() {
        if ((payloadCase_ == 33) && (unsubscribeBulkBuilder_ != null)) {
          return unsubscribeBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 33) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkSubscribeReply unsubscribe_bulk = 33;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder> 
          internalGetUnsubscribeBulkFieldBuilder() {
        if (unsubscribeBulkBuilder_ == null) {
          if (!(payloadCase_ == 33)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
          }
          unsubscribeBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 33;
        onChanged();
        return unsubscribeBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayloadOrBuilder> acknowledgeAlarmBuilder_;
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       * @return Whether the acknowledgeAlarm field is set.
       */
      @java.lang.Override
      public boolean hasAcknowledgeAlarm() {
        return payloadCase_ == 34;
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       * @return The acknowledgeAlarm.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload getAcknowledgeAlarm() {
        if (acknowledgeAlarmBuilder_ == null) {
          if (payloadCase_ == 34) {
            return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance();
        } else {
          if (payloadCase_ == 34) {
            return acknowledgeAlarmBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       */
      public Builder setAcknowledgeAlarm(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload value) {
        if (acknowledgeAlarmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          acknowledgeAlarmBuilder_.setMessage(value);
        }
        payloadCase_ = 34;
        return this;
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       */
      public Builder setAcknowledgeAlarm(
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.Builder builderForValue) {
        if (acknowledgeAlarmBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          acknowledgeAlarmBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 34;
        return this;
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       */
      public Builder mergeAcknowledgeAlarm(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload value) {
        if (acknowledgeAlarmBuilder_ == null) {
          if (payloadCase_ == 34 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 34) {
            acknowledgeAlarmBuilder_.mergeFrom(value);
          } else {
            acknowledgeAlarmBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 34;
        return this;
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       */
      public Builder clearAcknowledgeAlarm() {
        if (acknowledgeAlarmBuilder_ == null) {
          if (payloadCase_ == 34) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 34) {
            payloadCase_ = 0;
            payload_ = null;
          }
          acknowledgeAlarmBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.Builder getAcknowledgeAlarmBuilder() {
        return internalGetAcknowledgeAlarmFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayloadOrBuilder getAcknowledgeAlarmOrBuilder() {
        if ((payloadCase_ == 34) && (acknowledgeAlarmBuilder_ != null)) {
          return acknowledgeAlarmBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 34) {
            return (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Reply payload for BOTH MX_COMMAND_KIND_ACKNOWLEDGE_ALARM (by GUID)
       * and MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAME. There is intentionally
       * no by-name-specific reply case: the by-name ack carries no outcome
       * detail beyond the native ack return code, so the worker reuses this
       * `acknowledge_alarm` payload for both command kinds (the worker's
       * MxAccessCommandExecutor sets `acknowledge_alarm` for the by-name arm
       * too). Consumers must dispatch on MxCommandReply.kind, not on the
       * payload case, to tell the two acks apart. The top-level `hresult`
       * mirrors AcknowledgeAlarmReplyPayload.native_status and is preferred.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload acknowledge_alarm = 34;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayloadOrBuilder> 
          internalGetAcknowledgeAlarmFieldBuilder() {
        if (acknowledgeAlarmBuilder_ == null) {
          if (!(payloadCase_ == 34)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance();
          }
          acknowledgeAlarmBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.Builder, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayloadOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 34;
        onChanged();
        return acknowledgeAlarmBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.Builder, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayloadOrBuilder> queryActiveAlarmsBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       * @return Whether the queryActiveAlarms field is set.
       */
      @java.lang.Override
      public boolean hasQueryActiveAlarms() {
        return payloadCase_ == 35;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       * @return The queryActiveAlarms.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload getQueryActiveAlarms() {
        if (queryActiveAlarmsBuilder_ == null) {
          if (payloadCase_ == 35) {
            return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance();
        } else {
          if (payloadCase_ == 35) {
            return queryActiveAlarmsBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       */
      public Builder setQueryActiveAlarms(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload value) {
        if (queryActiveAlarmsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          queryActiveAlarmsBuilder_.setMessage(value);
        }
        payloadCase_ = 35;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       */
      public Builder setQueryActiveAlarms(
          mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.Builder builderForValue) {
        if (queryActiveAlarmsBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          queryActiveAlarmsBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 35;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       */
      public Builder mergeQueryActiveAlarms(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload value) {
        if (queryActiveAlarmsBuilder_ == null) {
          if (payloadCase_ == 35 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.newBuilder((mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 35) {
            queryActiveAlarmsBuilder_.mergeFrom(value);
          } else {
            queryActiveAlarmsBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 35;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       */
      public Builder clearQueryActiveAlarms() {
        if (queryActiveAlarmsBuilder_ == null) {
          if (payloadCase_ == 35) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 35) {
            payloadCase_ = 0;
            payload_ = null;
          }
          queryActiveAlarmsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.Builder getQueryActiveAlarmsBuilder() {
        return internalGetQueryActiveAlarmsFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayloadOrBuilder getQueryActiveAlarmsOrBuilder() {
        if ((payloadCase_ == 35) && (queryActiveAlarmsBuilder_ != null)) {
          return queryActiveAlarmsBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 35) {
            return (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload query_active_alarms = 35;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.Builder, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayloadOrBuilder> 
          internalGetQueryActiveAlarmsFieldBuilder() {
        if (queryActiveAlarmsBuilder_ == null) {
          if (!(payloadCase_ == 35)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance();
          }
          queryActiveAlarmsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.Builder, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayloadOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 35;
        onChanged();
        return queryActiveAlarmsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> writeBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       * @return Whether the writeBulk field is set.
       */
      @java.lang.Override
      public boolean hasWriteBulk() {
        return payloadCase_ == 36;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       * @return The writeBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteBulk() {
        if (writeBulkBuilder_ == null) {
          if (payloadCase_ == 36) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 36) {
            return writeBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       */
      public Builder setWriteBulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (writeBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 36;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       */
      public Builder setWriteBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder builderForValue) {
        if (writeBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 36;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       */
      public Builder mergeWriteBulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (writeBulkBuilder_ == null) {
          if (payloadCase_ == 36 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 36) {
            writeBulkBuilder_.mergeFrom(value);
          } else {
            writeBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 36;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       */
      public Builder clearWriteBulk() {
        if (writeBulkBuilder_ == null) {
          if (payloadCase_ == 36) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 36) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder getWriteBulkBuilder() {
        return internalGetWriteBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteBulkOrBuilder() {
        if ((payloadCase_ == 36) && (writeBulkBuilder_ != null)) {
          return writeBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 36) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_bulk = 36;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> 
          internalGetWriteBulkFieldBuilder() {
        if (writeBulkBuilder_ == null) {
          if (!(payloadCase_ == 36)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
          }
          writeBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 36;
        onChanged();
        return writeBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> write2BulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       * @return Whether the write2Bulk field is set.
       */
      @java.lang.Override
      public boolean hasWrite2Bulk() {
        return payloadCase_ == 37;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       * @return The write2Bulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWrite2Bulk() {
        if (write2BulkBuilder_ == null) {
          if (payloadCase_ == 37) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 37) {
            return write2BulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       */
      public Builder setWrite2Bulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (write2BulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          write2BulkBuilder_.setMessage(value);
        }
        payloadCase_ = 37;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       */
      public Builder setWrite2Bulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder builderForValue) {
        if (write2BulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          write2BulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 37;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       */
      public Builder mergeWrite2Bulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (write2BulkBuilder_ == null) {
          if (payloadCase_ == 37 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 37) {
            write2BulkBuilder_.mergeFrom(value);
          } else {
            write2BulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 37;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       */
      public Builder clearWrite2Bulk() {
        if (write2BulkBuilder_ == null) {
          if (payloadCase_ == 37) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 37) {
            payloadCase_ = 0;
            payload_ = null;
          }
          write2BulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder getWrite2BulkBuilder() {
        return internalGetWrite2BulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWrite2BulkOrBuilder() {
        if ((payloadCase_ == 37) && (write2BulkBuilder_ != null)) {
          return write2BulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 37) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write2_bulk = 37;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> 
          internalGetWrite2BulkFieldBuilder() {
        if (write2BulkBuilder_ == null) {
          if (!(payloadCase_ == 37)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
          }
          write2BulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 37;
        onChanged();
        return write2BulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> writeSecuredBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       * @return Whether the writeSecuredBulk field is set.
       */
      @java.lang.Override
      public boolean hasWriteSecuredBulk() {
        return payloadCase_ == 38;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       * @return The writeSecuredBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteSecuredBulk() {
        if (writeSecuredBulkBuilder_ == null) {
          if (payloadCase_ == 38) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 38) {
            return writeSecuredBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       */
      public Builder setWriteSecuredBulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (writeSecuredBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeSecuredBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 38;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       */
      public Builder setWriteSecuredBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder builderForValue) {
        if (writeSecuredBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeSecuredBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 38;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       */
      public Builder mergeWriteSecuredBulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (writeSecuredBulkBuilder_ == null) {
          if (payloadCase_ == 38 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 38) {
            writeSecuredBulkBuilder_.mergeFrom(value);
          } else {
            writeSecuredBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 38;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       */
      public Builder clearWriteSecuredBulk() {
        if (writeSecuredBulkBuilder_ == null) {
          if (payloadCase_ == 38) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 38) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeSecuredBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder getWriteSecuredBulkBuilder() {
        return internalGetWriteSecuredBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteSecuredBulkOrBuilder() {
        if ((payloadCase_ == 38) && (writeSecuredBulkBuilder_ != null)) {
          return writeSecuredBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 38) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured_bulk = 38;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> 
          internalGetWriteSecuredBulkFieldBuilder() {
        if (writeSecuredBulkBuilder_ == null) {
          if (!(payloadCase_ == 38)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
          }
          writeSecuredBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 38;
        onChanged();
        return writeSecuredBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> writeSecured2BulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       * @return Whether the writeSecured2Bulk field is set.
       */
      @java.lang.Override
      public boolean hasWriteSecured2Bulk() {
        return payloadCase_ == 39;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       * @return The writeSecured2Bulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getWriteSecured2Bulk() {
        if (writeSecured2BulkBuilder_ == null) {
          if (payloadCase_ == 39) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 39) {
            return writeSecured2BulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       */
      public Builder setWriteSecured2Bulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (writeSecured2BulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          writeSecured2BulkBuilder_.setMessage(value);
        }
        payloadCase_ = 39;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       */
      public Builder setWriteSecured2Bulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder builderForValue) {
        if (writeSecured2BulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          writeSecured2BulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 39;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       */
      public Builder mergeWriteSecured2Bulk(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply value) {
        if (writeSecured2BulkBuilder_ == null) {
          if (payloadCase_ == 39 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 39) {
            writeSecured2BulkBuilder_.mergeFrom(value);
          } else {
            writeSecured2BulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 39;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       */
      public Builder clearWriteSecured2Bulk() {
        if (writeSecured2BulkBuilder_ == null) {
          if (payloadCase_ == 39) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 39) {
            payloadCase_ = 0;
            payload_ = null;
          }
          writeSecured2BulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder getWriteSecured2BulkBuilder() {
        return internalGetWriteSecured2BulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder getWriteSecured2BulkOrBuilder() {
        if ((payloadCase_ == 39) && (writeSecured2BulkBuilder_ != null)) {
          return writeSecured2BulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 39) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkWriteReply write_secured2_bulk = 39;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder> 
          internalGetWriteSecured2BulkFieldBuilder() {
        if (writeSecured2BulkBuilder_ == null) {
          if (!(payloadCase_ == 39)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
          }
          writeSecured2BulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 39;
        onChanged();
        return writeSecured2BulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkReadReply, mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkReadReplyOrBuilder> readBulkBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       * @return Whether the readBulk field is set.
       */
      @java.lang.Override
      public boolean hasReadBulk() {
        return payloadCase_ == 40;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       * @return The readBulk.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadReply getReadBulk() {
        if (readBulkBuilder_ == null) {
          if (payloadCase_ == 40) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 40) {
            return readBulkBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       */
      public Builder setReadBulk(mxaccess_gateway.v1.MxaccessGateway.BulkReadReply value) {
        if (readBulkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          readBulkBuilder_.setMessage(value);
        }
        payloadCase_ = 40;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       */
      public Builder setReadBulk(
          mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.Builder builderForValue) {
        if (readBulkBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          readBulkBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 40;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       */
      public Builder mergeReadBulk(mxaccess_gateway.v1.MxaccessGateway.BulkReadReply value) {
        if (readBulkBuilder_ == null) {
          if (payloadCase_ == 40 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 40) {
            readBulkBuilder_.mergeFrom(value);
          } else {
            readBulkBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 40;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       */
      public Builder clearReadBulk() {
        if (readBulkBuilder_ == null) {
          if (payloadCase_ == 40) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 40) {
            payloadCase_ = 0;
            payload_ = null;
          }
          readBulkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.Builder getReadBulkBuilder() {
        return internalGetReadBulkFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadReplyOrBuilder getReadBulkOrBuilder() {
        if ((payloadCase_ == 40) && (readBulkBuilder_ != null)) {
          return readBulkBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 40) {
            return (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BulkReadReply read_bulk = 40;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkReadReply, mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkReadReplyOrBuilder> 
          internalGetReadBulkFieldBuilder() {
        if (readBulkBuilder_ == null) {
          if (!(payloadCase_ == 40)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance();
          }
          readBulkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkReadReply, mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkReadReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 40;
        onChanged();
        return readBulkBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SessionStateReply, mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.Builder, mxaccess_gateway.v1.MxaccessGateway.SessionStateReplyOrBuilder> sessionStateBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       * @return Whether the sessionState field is set.
       */
      @java.lang.Override
      public boolean hasSessionState() {
        return payloadCase_ == 100;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       * @return The sessionState.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SessionStateReply getSessionState() {
        if (sessionStateBuilder_ == null) {
          if (payloadCase_ == 100) {
            return (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 100) {
            return sessionStateBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       */
      public Builder setSessionState(mxaccess_gateway.v1.MxaccessGateway.SessionStateReply value) {
        if (sessionStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          sessionStateBuilder_.setMessage(value);
        }
        payloadCase_ = 100;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       */
      public Builder setSessionState(
          mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.Builder builderForValue) {
        if (sessionStateBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          sessionStateBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 100;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       */
      public Builder mergeSessionState(mxaccess_gateway.v1.MxaccessGateway.SessionStateReply value) {
        if (sessionStateBuilder_ == null) {
          if (payloadCase_ == 100 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 100) {
            sessionStateBuilder_.mergeFrom(value);
          } else {
            sessionStateBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 100;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       */
      public Builder clearSessionState() {
        if (sessionStateBuilder_ == null) {
          if (payloadCase_ == 100) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 100) {
            payloadCase_ = 0;
            payload_ = null;
          }
          sessionStateBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.Builder getSessionStateBuilder() {
        return internalGetSessionStateFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SessionStateReplyOrBuilder getSessionStateOrBuilder() {
        if ((payloadCase_ == 100) && (sessionStateBuilder_ != null)) {
          return sessionStateBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 100) {
            return (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionStateReply session_state = 100;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SessionStateReply, mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.Builder, mxaccess_gateway.v1.MxaccessGateway.SessionStateReplyOrBuilder> 
          internalGetSessionStateFieldBuilder() {
        if (sessionStateBuilder_ == null) {
          if (!(payloadCase_ == 100)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance();
          }
          sessionStateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.SessionStateReply, mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.Builder, mxaccess_gateway.v1.MxaccessGateway.SessionStateReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 100;
        onChanged();
        return sessionStateBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.Builder, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReplyOrBuilder> workerInfoBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       * @return Whether the workerInfo field is set.
       */
      @java.lang.Override
      public boolean hasWorkerInfo() {
        return payloadCase_ == 101;
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       * @return The workerInfo.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply getWorkerInfo() {
        if (workerInfoBuilder_ == null) {
          if (payloadCase_ == 101) {
            return (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 101) {
            return workerInfoBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       */
      public Builder setWorkerInfo(mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply value) {
        if (workerInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          workerInfoBuilder_.setMessage(value);
        }
        payloadCase_ = 101;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       */
      public Builder setWorkerInfo(
          mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.Builder builderForValue) {
        if (workerInfoBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          workerInfoBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 101;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       */
      public Builder mergeWorkerInfo(mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply value) {
        if (workerInfoBuilder_ == null) {
          if (payloadCase_ == 101 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 101) {
            workerInfoBuilder_.mergeFrom(value);
          } else {
            workerInfoBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 101;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       */
      public Builder clearWorkerInfo() {
        if (workerInfoBuilder_ == null) {
          if (payloadCase_ == 101) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 101) {
            payloadCase_ = 0;
            payload_ = null;
          }
          workerInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.Builder getWorkerInfoBuilder() {
        return internalGetWorkerInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReplyOrBuilder getWorkerInfoOrBuilder() {
        if ((payloadCase_ == 101) && (workerInfoBuilder_ != null)) {
          return workerInfoBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 101) {
            return (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.WorkerInfoReply worker_info = 101;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.Builder, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReplyOrBuilder> 
          internalGetWorkerInfoFieldBuilder() {
        if (workerInfoBuilder_ == null) {
          if (!(payloadCase_ == 101)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance();
          }
          workerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.Builder, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 101;
        onChanged();
        return workerInfoBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.Builder, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReplyOrBuilder> drainEventsBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       * @return Whether the drainEvents field is set.
       */
      @java.lang.Override
      public boolean hasDrainEvents() {
        return payloadCase_ == 102;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       * @return The drainEvents.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply getDrainEvents() {
        if (drainEventsBuilder_ == null) {
          if (payloadCase_ == 102) {
            return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance();
        } else {
          if (payloadCase_ == 102) {
            return drainEventsBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       */
      public Builder setDrainEvents(mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply value) {
        if (drainEventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          drainEventsBuilder_.setMessage(value);
        }
        payloadCase_ = 102;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       */
      public Builder setDrainEvents(
          mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.Builder builderForValue) {
        if (drainEventsBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          drainEventsBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 102;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       */
      public Builder mergeDrainEvents(mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply value) {
        if (drainEventsBuilder_ == null) {
          if (payloadCase_ == 102 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.newBuilder((mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 102) {
            drainEventsBuilder_.mergeFrom(value);
          } else {
            drainEventsBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 102;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       */
      public Builder clearDrainEvents() {
        if (drainEventsBuilder_ == null) {
          if (payloadCase_ == 102) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 102) {
            payloadCase_ = 0;
            payload_ = null;
          }
          drainEventsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.Builder getDrainEventsBuilder() {
        return internalGetDrainEventsFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReplyOrBuilder getDrainEventsOrBuilder() {
        if ((payloadCase_ == 102) && (drainEventsBuilder_ != null)) {
          return drainEventsBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 102) {
            return (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.DrainEventsReply drain_events = 102;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.Builder, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReplyOrBuilder> 
          internalGetDrainEventsFieldBuilder() {
        if (drainEventsBuilder_ == null) {
          if (!(payloadCase_ == 102)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance();
          }
          drainEventsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.Builder, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReplyOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 102;
        onChanged();
        return drainEventsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxCommandReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxCommandReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxCommandReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxCommandReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxCommandReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxCommandReply>
        PARSER = new com.google.protobuf.AbstractParser<MxCommandReply>() {
      @java.lang.Override
      public MxCommandReply 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<MxCommandReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxCommandReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RegisterReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.RegisterReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.RegisterReply}
   */
  public static final class RegisterReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.RegisterReply)
      RegisterReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "RegisterReply");
    }
    // Use RegisterReply.newBuilder() to construct.
    private RegisterReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private RegisterReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.RegisterReply.class, mxaccess_gateway.v1.MxaccessGateway.RegisterReply.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.RegisterReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.RegisterReply other = (mxaccess_gateway.v1.MxaccessGateway.RegisterReply) obj;

      if (getServerHandle()
          != other.getServerHandle()) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply 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 mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply 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 mxaccess_gateway.v1.MxaccessGateway.RegisterReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply 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(mxaccess_gateway.v1.MxaccessGateway.RegisterReply 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 mxaccess_gateway.v1.RegisterReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.RegisterReply)
        mxaccess_gateway.v1.MxaccessGateway.RegisterReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.RegisterReply.class, mxaccess_gateway.v1.MxaccessGateway.RegisterReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.RegisterReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RegisterReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterReply build() {
        mxaccess_gateway.v1.MxaccessGateway.RegisterReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RegisterReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.RegisterReply result = new mxaccess_gateway.v1.MxaccessGateway.RegisterReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.RegisterReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.RegisterReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.RegisterReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.RegisterReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.RegisterReply.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.RegisterReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.RegisterReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.RegisterReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.RegisterReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RegisterReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RegisterReply>
        PARSER = new com.google.protobuf.AbstractParser<RegisterReply>() {
      @java.lang.Override
      public RegisterReply 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<RegisterReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RegisterReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddItemReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AddItemReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AddItemReply}
   */
  public static final class AddItemReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AddItemReply)
      AddItemReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AddItemReply");
    }
    // Use AddItemReply.newBuilder() to construct.
    private AddItemReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AddItemReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AddItemReply.class, mxaccess_gateway.v1.MxaccessGateway.AddItemReply.Builder.class);
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 1;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    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 (itemHandle_ != 0) {
        output.writeInt32(1, itemHandle_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AddItemReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AddItemReply other = (mxaccess_gateway.v1.MxaccessGateway.AddItemReply) obj;

      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply 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 mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply 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 mxaccess_gateway.v1.MxaccessGateway.AddItemReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply 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(mxaccess_gateway.v1.MxaccessGateway.AddItemReply 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 mxaccess_gateway.v1.AddItemReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AddItemReply)
        mxaccess_gateway.v1.MxaccessGateway.AddItemReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AddItemReply.class, mxaccess_gateway.v1.MxaccessGateway.AddItemReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AddItemReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItemReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemReply build() {
        mxaccess_gateway.v1.MxaccessGateway.AddItemReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItemReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AddItemReply result = new mxaccess_gateway.v1.MxaccessGateway.AddItemReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AddItemReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AddItemReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AddItemReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AddItemReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AddItemReply.getDefaultInstance()) return this;
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int itemHandle_ ;
      /**
       * <code>int32 item_handle = 1;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AddItemReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AddItemReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.AddItemReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AddItemReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItemReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AddItemReply>
        PARSER = new com.google.protobuf.AbstractParser<AddItemReply>() {
      @java.lang.Override
      public AddItemReply 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<AddItemReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItemReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddItem2ReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AddItem2Reply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AddItem2Reply}
   */
  public static final class AddItem2Reply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AddItem2Reply)
      AddItem2ReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AddItem2Reply");
    }
    // Use AddItem2Reply.newBuilder() to construct.
    private AddItem2Reply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AddItem2Reply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Reply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Reply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.class, mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.Builder.class);
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 1;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    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 (itemHandle_ != 0) {
        output.writeInt32(1, itemHandle_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply other = (mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) obj;

      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply 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 mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply 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 mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply 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(mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply 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 mxaccess_gateway.v1.AddItem2Reply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AddItem2Reply)
        mxaccess_gateway.v1.MxaccessGateway.AddItem2ReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Reply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Reply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.class, mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddItem2Reply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply build() {
        mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply result = new mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply.getDefaultInstance()) return this;
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int itemHandle_ ;
      /**
       * <code>int32 item_handle = 1;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AddItem2Reply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AddItem2Reply)
    private static final mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AddItem2Reply>
        PARSER = new com.google.protobuf.AbstractParser<AddItem2Reply>() {
      @java.lang.Override
      public AddItem2Reply 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<AddItem2Reply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddItem2Reply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddBufferedItemReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AddBufferedItemReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    int getItemHandle();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AddBufferedItemReply}
   */
  public static final class AddBufferedItemReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AddBufferedItemReply)
      AddBufferedItemReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AddBufferedItemReply");
    }
    // Use AddBufferedItemReply.newBuilder() to construct.
    private AddBufferedItemReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AddBufferedItemReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.class, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.Builder.class);
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 1;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 1;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    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 (itemHandle_ != 0) {
        output.writeInt32(1, itemHandle_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemHandle_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply other = (mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) obj;

      if (getItemHandle()
          != other.getItemHandle()) 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();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply 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 mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply 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 mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply 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(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply 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 mxaccess_gateway.v1.AddBufferedItemReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AddBufferedItemReply)
        mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.class, mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        itemHandle_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AddBufferedItemReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply build() {
        mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply result = new mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply.getDefaultInstance()) return this;
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        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 8: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int itemHandle_ ;
      /**
       * <code>int32 item_handle = 1;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AddBufferedItemReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AddBufferedItemReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AddBufferedItemReply>
        PARSER = new com.google.protobuf.AbstractParser<AddBufferedItemReply>() {
      @java.lang.Override
      public AddBufferedItemReply 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<AddBufferedItemReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AddBufferedItemReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SuspendReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.SuspendReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return The status.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus();
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.SuspendReply}
   */
  public static final class SuspendReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.SuspendReply)
      SuspendReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SuspendReply");
    }
    // Use SuspendReply.newBuilder() to construct.
    private SuspendReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SuspendReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.SuspendReply.class, mxaccess_gateway.v1.MxaccessGateway.SuspendReply.Builder.class);
    }

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 1;
    private mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy status_;
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return The status.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getStatus());
      }
      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.CodedOutputStream
          .computeMessageSize(1, getStatus());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.SuspendReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.SuspendReply other = (mxaccess_gateway.v1.MxaccessGateway.SuspendReply) obj;

      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (!getStatus()
            .equals(other.getStatus())) 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();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply 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 mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply 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 mxaccess_gateway.v1.MxaccessGateway.SuspendReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply 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(mxaccess_gateway.v1.MxaccessGateway.SuspendReply 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 mxaccess_gateway.v1.SuspendReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.SuspendReply)
        mxaccess_gateway.v1.MxaccessGateway.SuspendReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.SuspendReply.class, mxaccess_gateway.v1.MxaccessGateway.SuspendReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.SuspendReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetStatusFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        status_ = null;
        if (statusBuilder_ != null) {
          statusBuilder_.dispose();
          statusBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SuspendReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendReply build() {
        mxaccess_gateway.v1.MxaccessGateway.SuspendReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SuspendReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.SuspendReply result = new mxaccess_gateway.v1.MxaccessGateway.SuspendReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.SuspendReply result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.status_ = statusBuilder_ == null
              ? status_
              : statusBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.SuspendReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.SuspendReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.SuspendReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.SuspendReply.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        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: {
                input.readMessage(
                    internalGetStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              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 mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy status_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> statusBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       * @return The status.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder setStatus(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder setStatus(
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder mergeStatus(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            status_ != null &&
            status_ != mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance()) {
            getStatusBuilder().mergeFrom(value);
          } else {
            status_ = value;
          }
        } else {
          statusBuilder_.mergeFrom(value);
        }
        if (status_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = null;
        if (statusBuilder_ != null) {
          statusBuilder_.dispose();
          statusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder getStatusBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
          internalGetStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder>(
                  getStatus(),
                  getParentForChildren(),
                  isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.SuspendReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.SuspendReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.SuspendReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.SuspendReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SuspendReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SuspendReply>
        PARSER = new com.google.protobuf.AbstractParser<SuspendReply>() {
      @java.lang.Override
      public SuspendReply 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<SuspendReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SuspendReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActivateReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ActivateReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return The status.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus();
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.ActivateReply}
   */
  public static final class ActivateReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ActivateReply)
      ActivateReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ActivateReply");
    }
    // Use ActivateReply.newBuilder() to construct.
    private ActivateReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ActivateReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ActivateReply.class, mxaccess_gateway.v1.MxaccessGateway.ActivateReply.Builder.class);
    }

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 1;
    private mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy status_;
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     * @return The status.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getStatus());
      }
      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.CodedOutputStream
          .computeMessageSize(1, getStatus());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ActivateReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ActivateReply other = (mxaccess_gateway.v1.MxaccessGateway.ActivateReply) obj;

      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (!getStatus()
            .equals(other.getStatus())) 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();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply 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 mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply 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 mxaccess_gateway.v1.MxaccessGateway.ActivateReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply 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(mxaccess_gateway.v1.MxaccessGateway.ActivateReply 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 mxaccess_gateway.v1.ActivateReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ActivateReply)
        mxaccess_gateway.v1.MxaccessGateway.ActivateReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ActivateReply.class, mxaccess_gateway.v1.MxaccessGateway.ActivateReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ActivateReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetStatusFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        status_ = null;
        if (statusBuilder_ != null) {
          statusBuilder_.dispose();
          statusBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActivateReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateReply build() {
        mxaccess_gateway.v1.MxaccessGateway.ActivateReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActivateReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ActivateReply result = new mxaccess_gateway.v1.MxaccessGateway.ActivateReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ActivateReply result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.status_ = statusBuilder_ == null
              ? status_
              : statusBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ActivateReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ActivateReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ActivateReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ActivateReply.getDefaultInstance()) return this;
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        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: {
                input.readMessage(
                    internalGetStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              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 mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy status_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> statusBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       * @return The status.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder setStatus(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder setStatus(
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder mergeStatus(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            status_ != null &&
            status_ != mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance()) {
            getStatusBuilder().mergeFrom(value);
          } else {
            status_ = value;
          }
        } else {
          statusBuilder_.mergeFrom(value);
        }
        if (status_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = null;
        if (statusBuilder_ != null) {
          statusBuilder_.dispose();
          statusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder getStatusBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
          internalGetStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder>(
                  getStatus(),
                  getParentForChildren(),
                  isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ActivateReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ActivateReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.ActivateReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ActivateReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActivateReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ActivateReply>
        PARSER = new com.google.protobuf.AbstractParser<ActivateReply>() {
      @java.lang.Override
      public ActivateReply 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<ActivateReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActivateReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AuthenticateUserReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AuthenticateUserReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 user_id = 1;</code>
     * @return The userId.
     */
    int getUserId();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AuthenticateUserReply}
   */
  public static final class AuthenticateUserReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AuthenticateUserReply)
      AuthenticateUserReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AuthenticateUserReply");
    }
    // Use AuthenticateUserReply.newBuilder() to construct.
    private AuthenticateUserReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AuthenticateUserReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.class, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.Builder.class);
    }

    public static final int USER_ID_FIELD_NUMBER = 1;
    private int userId_ = 0;
    /**
     * <code>int32 user_id = 1;</code>
     * @return The userId.
     */
    @java.lang.Override
    public int getUserId() {
      return userId_;
    }

    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 (userId_ != 0) {
        output.writeInt32(1, userId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, userId_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply other = (mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) obj;

      if (getUserId()
          != other.getUserId()) 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();
      hash = (37 * hash) + USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply 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 mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply 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 mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply 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(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply 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 mxaccess_gateway.v1.AuthenticateUserReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AuthenticateUserReply)
        mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.class, mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        userId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AuthenticateUserReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply build() {
        mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply result = new mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.userId_ = userId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply.getDefaultInstance()) return this;
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        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 8: {
                userId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int userId_ ;
      /**
       * <code>int32 user_id = 1;</code>
       * @return The userId.
       */
      @java.lang.Override
      public int getUserId() {
        return userId_;
      }
      /**
       * <code>int32 user_id = 1;</code>
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 user_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        userId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AuthenticateUserReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AuthenticateUserReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AuthenticateUserReply>
        PARSER = new com.google.protobuf.AbstractParser<AuthenticateUserReply>() {
      @java.lang.Override
      public AuthenticateUserReply 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<AuthenticateUserReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AuthenticateUserReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ArchestrAUserToIdReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ArchestrAUserToIdReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 user_id = 1;</code>
     * @return The userId.
     */
    int getUserId();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.ArchestrAUserToIdReply}
   */
  public static final class ArchestrAUserToIdReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ArchestrAUserToIdReply)
      ArchestrAUserToIdReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ArchestrAUserToIdReply");
    }
    // Use ArchestrAUserToIdReply.newBuilder() to construct.
    private ArchestrAUserToIdReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ArchestrAUserToIdReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.class, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.Builder.class);
    }

    public static final int USER_ID_FIELD_NUMBER = 1;
    private int userId_ = 0;
    /**
     * <code>int32 user_id = 1;</code>
     * @return The userId.
     */
    @java.lang.Override
    public int getUserId() {
      return userId_;
    }

    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 (userId_ != 0) {
        output.writeInt32(1, userId_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, userId_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply other = (mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) obj;

      if (getUserId()
          != other.getUserId()) 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();
      hash = (37 * hash) + USER_ID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply 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 mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply 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 mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply 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(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply 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 mxaccess_gateway.v1.ArchestrAUserToIdReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ArchestrAUserToIdReply)
        mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.class, mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        userId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply build() {
        mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply result = new mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.userId_ = userId_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply.getDefaultInstance()) return this;
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        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 8: {
                userId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int userId_ ;
      /**
       * <code>int32 user_id = 1;</code>
       * @return The userId.
       */
      @java.lang.Override
      public int getUserId() {
        return userId_;
      }
      /**
       * <code>int32 user_id = 1;</code>
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 user_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        userId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ArchestrAUserToIdReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ArchestrAUserToIdReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ArchestrAUserToIdReply>
        PARSER = new com.google.protobuf.AbstractParser<ArchestrAUserToIdReply>() {
      @java.lang.Override
      public ArchestrAUserToIdReply 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<ArchestrAUserToIdReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ArchestrAUserToIdReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SubscribeResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.SubscribeResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>string tag_address = 2;</code>
     * @return The tagAddress.
     */
    java.lang.String getTagAddress();
    /**
     * <code>string tag_address = 2;</code>
     * @return The bytes for tagAddress.
     */
    com.google.protobuf.ByteString
        getTagAddressBytes();

    /**
     * <code>int32 item_handle = 3;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>bool was_successful = 4;</code>
     * @return The wasSuccessful.
     */
    boolean getWasSuccessful();

    /**
     * <code>string error_message = 5;</code>
     * @return The errorMessage.
     */
    java.lang.String getErrorMessage();
    /**
     * <code>string error_message = 5;</code>
     * @return The bytes for errorMessage.
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.SubscribeResult}
   */
  public static final class SubscribeResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.SubscribeResult)
      SubscribeResultOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SubscribeResult");
    }
    // Use SubscribeResult.newBuilder() to construct.
    private SubscribeResult(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SubscribeResult() {
      tagAddress_ = "";
      errorMessage_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.class, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder.class);
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int TAG_ADDRESS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object tagAddress_ = "";
    /**
     * <code>string tag_address = 2;</code>
     * @return The tagAddress.
     */
    @java.lang.Override
    public java.lang.String getTagAddress() {
      java.lang.Object ref = tagAddress_;
      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();
        tagAddress_ = s;
        return s;
      }
    }
    /**
     * <code>string tag_address = 2;</code>
     * @return The bytes for tagAddress.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTagAddressBytes() {
      java.lang.Object ref = tagAddress_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tagAddress_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 3;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 3;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int WAS_SUCCESSFUL_FIELD_NUMBER = 4;
    private boolean wasSuccessful_ = false;
    /**
     * <code>bool was_successful = 4;</code>
     * @return The wasSuccessful.
     */
    @java.lang.Override
    public boolean getWasSuccessful() {
      return wasSuccessful_;
    }

    public static final int ERROR_MESSAGE_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object errorMessage_ = "";
    /**
     * <code>string error_message = 5;</code>
     * @return The errorMessage.
     */
    @java.lang.Override
    public java.lang.String getErrorMessage() {
      java.lang.Object ref = errorMessage_;
      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();
        errorMessage_ = s;
        return s;
      }
    }
    /**
     * <code>string error_message = 5;</code>
     * @return The bytes for errorMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrorMessageBytes() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errorMessage_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagAddress_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, tagAddress_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(3, itemHandle_);
      }
      if (wasSuccessful_ != false) {
        output.writeBool(4, wasSuccessful_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(errorMessage_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, errorMessage_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagAddress_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, tagAddress_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, itemHandle_);
      }
      if (wasSuccessful_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, wasSuccessful_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(errorMessage_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, errorMessage_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.SubscribeResult)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.SubscribeResult other = (mxaccess_gateway.v1.MxaccessGateway.SubscribeResult) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getTagAddress()
          .equals(other.getTagAddress())) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (getWasSuccessful()
          != other.getWasSuccessful()) return false;
      if (!getErrorMessage()
          .equals(other.getErrorMessage())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + TAG_ADDRESS_FIELD_NUMBER;
      hash = (53 * hash) + getTagAddress().hashCode();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (37 * hash) + WAS_SUCCESSFUL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getWasSuccessful());
      hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getErrorMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult 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 mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult 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 mxaccess_gateway.v1.MxaccessGateway.SubscribeResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult 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(mxaccess_gateway.v1.MxaccessGateway.SubscribeResult 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 mxaccess_gateway.v1.SubscribeResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.SubscribeResult)
        mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.class, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        tagAddress_ = "";
        itemHandle_ = 0;
        wasSuccessful_ = false;
        errorMessage_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SubscribeResult_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult build() {
        mxaccess_gateway.v1.MxaccessGateway.SubscribeResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.SubscribeResult result = new mxaccess_gateway.v1.MxaccessGateway.SubscribeResult(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.SubscribeResult result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tagAddress_ = tagAddress_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.wasSuccessful_ = wasSuccessful_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.errorMessage_ = errorMessage_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.SubscribeResult) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.SubscribeResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.SubscribeResult other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.getTagAddress().isEmpty()) {
          tagAddress_ = other.tagAddress_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.getWasSuccessful() != false) {
          setWasSuccessful(other.getWasSuccessful());
        }
        if (!other.getErrorMessage().isEmpty()) {
          errorMessage_ = other.errorMessage_;
          bitField0_ |= 0x00000010;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                tagAddress_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                wasSuccessful_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                errorMessage_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object tagAddress_ = "";
      /**
       * <code>string tag_address = 2;</code>
       * @return The tagAddress.
       */
      public java.lang.String getTagAddress() {
        java.lang.Object ref = tagAddress_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tagAddress_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tag_address = 2;</code>
       * @return The bytes for tagAddress.
       */
      public com.google.protobuf.ByteString
          getTagAddressBytes() {
        java.lang.Object ref = tagAddress_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tagAddress_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tag_address = 2;</code>
       * @param value The tagAddress to set.
       * @return This builder for chaining.
       */
      public Builder setTagAddress(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tagAddress_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string tag_address = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagAddress() {
        tagAddress_ = getDefaultInstance().getTagAddress();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string tag_address = 2;</code>
       * @param value The bytes for tagAddress to set.
       * @return This builder for chaining.
       */
      public Builder setTagAddressBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        tagAddress_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 3;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 3;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private boolean wasSuccessful_ ;
      /**
       * <code>bool was_successful = 4;</code>
       * @return The wasSuccessful.
       */
      @java.lang.Override
      public boolean getWasSuccessful() {
        return wasSuccessful_;
      }
      /**
       * <code>bool was_successful = 4;</code>
       * @param value The wasSuccessful to set.
       * @return This builder for chaining.
       */
      public Builder setWasSuccessful(boolean value) {

        wasSuccessful_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>bool was_successful = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearWasSuccessful() {
        bitField0_ = (bitField0_ & ~0x00000008);
        wasSuccessful_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object errorMessage_ = "";
      /**
       * <code>string error_message = 5;</code>
       * @return The errorMessage.
       */
      public java.lang.String getErrorMessage() {
        java.lang.Object ref = errorMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errorMessage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string error_message = 5;</code>
       * @return The bytes for errorMessage.
       */
      public com.google.protobuf.ByteString
          getErrorMessageBytes() {
        java.lang.Object ref = errorMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errorMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string error_message = 5;</code>
       * @param value The errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        errorMessage_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>string error_message = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorMessage() {
        errorMessage_ = getDefaultInstance().getErrorMessage();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>string error_message = 5;</code>
       * @param value The bytes for errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        errorMessage_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.SubscribeResult)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.SubscribeResult)
    private static final mxaccess_gateway.v1.MxaccessGateway.SubscribeResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.SubscribeResult();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SubscribeResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SubscribeResult>
        PARSER = new com.google.protobuf.AbstractParser<SubscribeResult>() {
      @java.lang.Override
      public SubscribeResult 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<SubscribeResult> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BulkSubscribeReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.BulkSubscribeReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.SubscribeResult> 
        getResultsList();
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SubscribeResult getResults(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    int getResultsCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder> 
        getResultsOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder getResultsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.BulkSubscribeReply}
   */
  public static final class BulkSubscribeReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.BulkSubscribeReply)
      BulkSubscribeReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BulkSubscribeReply");
    }
    // Use BulkSubscribeReply.newBuilder() to construct.
    private BulkSubscribeReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BulkSubscribeReply() {
      results_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkSubscribeReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkSubscribeReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.class, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder.class);
    }

    public static final int RESULTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.SubscribeResult> results_;
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.SubscribeResult> getResultsList() {
      return results_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder> 
        getResultsOrBuilderList() {
      return results_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    @java.lang.Override
    public int getResultsCount() {
      return results_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult getResults(int index) {
      return results_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder getResultsOrBuilder(
        int index) {
      return results_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      for (int i = 0; i < results_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, results_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply other = (mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) obj;

      if (!getResultsList()
          .equals(other.getResultsList())) 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 (getResultsCount() > 0) {
        hash = (37 * hash) + RESULTS_FIELD_NUMBER;
        hash = (53 * hash) + getResultsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply 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 mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply 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 mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply 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(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply 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 mxaccess_gateway.v1.BulkSubscribeReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.BulkSubscribeReply)
        mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkSubscribeReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkSubscribeReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.class, mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (resultsBuilder_ == null) {
          results_ = java.util.Collections.emptyList();
        } else {
          results_ = null;
          resultsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkSubscribeReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply build() {
        mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply result = new mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply result) {
        if (resultsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            results_ = java.util.Collections.unmodifiableList(results_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.results_ = results_;
        } else {
          result.results_ = resultsBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply.getDefaultInstance()) return this;
        if (resultsBuilder_ == null) {
          if (!other.results_.isEmpty()) {
            if (results_.isEmpty()) {
              results_ = other.results_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureResultsIsMutable();
              results_.addAll(other.results_);
            }
            onChanged();
          }
        } else {
          if (!other.results_.isEmpty()) {
            if (resultsBuilder_.isEmpty()) {
              resultsBuilder_.dispose();
              resultsBuilder_ = null;
              results_ = other.results_;
              bitField0_ = (bitField0_ & ~0x00000001);
              resultsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetResultsFieldBuilder() : null;
            } else {
              resultsBuilder_.addAllMessages(other.results_);
            }
          }
        }
        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: {
                mxaccess_gateway.v1.MxaccessGateway.SubscribeResult m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.parser(),
                        extensionRegistry);
                if (resultsBuilder_ == null) {
                  ensureResultsIsMutable();
                  results_.add(m);
                } else {
                  resultsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              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.util.List<mxaccess_gateway.v1.MxaccessGateway.SubscribeResult> results_ =
        java.util.Collections.emptyList();
      private void ensureResultsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          results_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.SubscribeResult>(results_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SubscribeResult, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder> resultsBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.SubscribeResult> getResultsList() {
        if (resultsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(results_);
        } else {
          return resultsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public int getResultsCount() {
        if (resultsBuilder_ == null) {
          return results_.size();
        } else {
          return resultsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult getResults(int index) {
        if (resultsBuilder_ == null) {
          return results_.get(index);
        } else {
          return resultsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder setResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.set(index, value);
          onChanged();
        } else {
          resultsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder setResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.set(index, builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder addResults(mxaccess_gateway.v1.MxaccessGateway.SubscribeResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.add(value);
          onChanged();
        } else {
          resultsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder addResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.add(index, value);
          onChanged();
        } else {
          resultsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder addResults(
          mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.add(builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder addResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.add(index, builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder addAllResults(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.SubscribeResult> values) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, results_);
          onChanged();
        } else {
          resultsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder clearResults() {
        if (resultsBuilder_ == null) {
          results_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          resultsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public Builder removeResults(int index) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.remove(index);
          onChanged();
        } else {
          resultsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder getResultsBuilder(
          int index) {
        return internalGetResultsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder getResultsOrBuilder(
          int index) {
        if (resultsBuilder_ == null) {
          return results_.get(index);  } else {
          return resultsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder> 
           getResultsOrBuilderList() {
        if (resultsBuilder_ != null) {
          return resultsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(results_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder addResultsBuilder() {
        return internalGetResultsFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder addResultsBuilder(
          int index) {
        return internalGetResultsFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.SubscribeResult results = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder> 
           getResultsBuilderList() {
        return internalGetResultsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.SubscribeResult, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder> 
          internalGetResultsFieldBuilder() {
        if (resultsBuilder_ == null) {
          resultsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.SubscribeResult, mxaccess_gateway.v1.MxaccessGateway.SubscribeResult.Builder, mxaccess_gateway.v1.MxaccessGateway.SubscribeResultOrBuilder>(
                  results_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          results_ = null;
        }
        return resultsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.BulkSubscribeReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.BulkSubscribeReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BulkSubscribeReply>
        PARSER = new com.google.protobuf.AbstractParser<BulkSubscribeReply>() {
      @java.lang.Override
      public BulkSubscribeReply 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<BulkSubscribeReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkSubscribeReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BulkWriteResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.BulkWriteResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>bool was_successful = 3;</code>
     * @return The wasSuccessful.
     */
    boolean getWasSuccessful();

    /**
     * <code>optional int32 hresult = 4;</code>
     * @return Whether the hresult field is set.
     */
    boolean hasHresult();
    /**
     * <code>optional int32 hresult = 4;</code>
     * @return The hresult.
     */
    int getHresult();

    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> 
        getStatusesList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    int getStatusesCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index);

    /**
     * <code>string error_message = 6;</code>
     * @return The errorMessage.
     */
    java.lang.String getErrorMessage();
    /**
     * <code>string error_message = 6;</code>
     * @return The bytes for errorMessage.
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes();
  }
  /**
   * <pre>
   * Per-item result for the four bulk write families. `item_handle` mirrors the
   * request entry's item_handle so callers can correlate inputs to outputs even
   * when the gateway's per-entry `IConstraintEnforcer.CheckWriteHandleAsync`
   * filter (see `MxAccessGatewayService.ReplaceWriteBulkEntries` and
   * `docs/Authorization.md`) dropped some entries before reaching the worker.
   * Per-item failures populate `error_message` + `hresult` and never raise —
   * callers iterate and inspect each entry.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.BulkWriteResult}
   */
  public static final class BulkWriteResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.BulkWriteResult)
      BulkWriteResultOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BulkWriteResult");
    }
    // Use BulkWriteResult.newBuilder() to construct.
    private BulkWriteResult(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BulkWriteResult() {
      statuses_ = java.util.Collections.emptyList();
      errorMessage_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.class, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder.class);
    }

    private int bitField0_;
    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 2;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 2;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int WAS_SUCCESSFUL_FIELD_NUMBER = 3;
    private boolean wasSuccessful_ = false;
    /**
     * <code>bool was_successful = 3;</code>
     * @return The wasSuccessful.
     */
    @java.lang.Override
    public boolean getWasSuccessful() {
      return wasSuccessful_;
    }

    public static final int HRESULT_FIELD_NUMBER = 4;
    private int hresult_ = 0;
    /**
     * <code>optional int32 hresult = 4;</code>
     * @return Whether the hresult field is set.
     */
    @java.lang.Override
    public boolean hasHresult() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 hresult = 4;</code>
     * @return The hresult.
     */
    @java.lang.Override
    public int getHresult() {
      return hresult_;
    }

    public static final int STATUSES_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_;
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
      return statuses_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList() {
      return statuses_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    @java.lang.Override
    public int getStatusesCount() {
      return statuses_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
      return statuses_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index) {
      return statuses_.get(index);
    }

    public static final int ERROR_MESSAGE_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object errorMessage_ = "";
    /**
     * <code>string error_message = 6;</code>
     * @return The errorMessage.
     */
    @java.lang.Override
    public java.lang.String getErrorMessage() {
      java.lang.Object ref = errorMessage_;
      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();
        errorMessage_ = s;
        return s;
      }
    }
    /**
     * <code>string error_message = 6;</code>
     * @return The bytes for errorMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrorMessageBytes() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errorMessage_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(2, itemHandle_);
      }
      if (wasSuccessful_ != false) {
        output.writeBool(3, wasSuccessful_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(4, hresult_);
      }
      for (int i = 0; i < statuses_.size(); i++) {
        output.writeMessage(5, statuses_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(errorMessage_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, errorMessage_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemHandle_);
      }
      if (wasSuccessful_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, wasSuccessful_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, hresult_);
      }
      for (int i = 0; i < statuses_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, statuses_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(errorMessage_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, errorMessage_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult other = (mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (getWasSuccessful()
          != other.getWasSuccessful()) return false;
      if (hasHresult() != other.hasHresult()) return false;
      if (hasHresult()) {
        if (getHresult()
            != other.getHresult()) return false;
      }
      if (!getStatusesList()
          .equals(other.getStatusesList())) return false;
      if (!getErrorMessage()
          .equals(other.getErrorMessage())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (37 * hash) + WAS_SUCCESSFUL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getWasSuccessful());
      if (hasHresult()) {
        hash = (37 * hash) + HRESULT_FIELD_NUMBER;
        hash = (53 * hash) + getHresult();
      }
      if (getStatusesCount() > 0) {
        hash = (37 * hash) + STATUSES_FIELD_NUMBER;
        hash = (53 * hash) + getStatusesList().hashCode();
      }
      hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getErrorMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult 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 mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult 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 mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult 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(mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult 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;
    }
    /**
     * <pre>
     * Per-item result for the four bulk write families. `item_handle` mirrors the
     * request entry's item_handle so callers can correlate inputs to outputs even
     * when the gateway's per-entry `IConstraintEnforcer.CheckWriteHandleAsync`
     * filter (see `MxAccessGatewayService.ReplaceWriteBulkEntries` and
     * `docs/Authorization.md`) dropped some entries before reaching the worker.
     * Per-item failures populate `error_message` + `hresult` and never raise —
     * callers iterate and inspect each entry.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.BulkWriteResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.BulkWriteResult)
        mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.class, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        itemHandle_ = 0;
        wasSuccessful_ = false;
        hresult_ = 0;
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
        } else {
          statuses_ = null;
          statusesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        errorMessage_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteResult_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult build() {
        mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult result = new mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult result) {
        if (statusesBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            statuses_ = java.util.Collections.unmodifiableList(statuses_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.statuses_ = statuses_;
        } else {
          result.statuses_ = statusesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.wasSuccessful_ = wasSuccessful_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.hresult_ = hresult_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.errorMessage_ = errorMessage_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.getWasSuccessful() != false) {
          setWasSuccessful(other.getWasSuccessful());
        }
        if (other.hasHresult()) {
          setHresult(other.getHresult());
        }
        if (statusesBuilder_ == null) {
          if (!other.statuses_.isEmpty()) {
            if (statuses_.isEmpty()) {
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureStatusesIsMutable();
              statuses_.addAll(other.statuses_);
            }
            onChanged();
          }
        } else {
          if (!other.statuses_.isEmpty()) {
            if (statusesBuilder_.isEmpty()) {
              statusesBuilder_.dispose();
              statusesBuilder_ = null;
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000010);
              statusesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetStatusesFieldBuilder() : null;
            } else {
              statusesBuilder_.addAllMessages(other.statuses_);
            }
          }
        }
        if (!other.getErrorMessage().isEmpty()) {
          errorMessage_ = other.errorMessage_;
          bitField0_ |= 0x00000020;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                wasSuccessful_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                hresult_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.parser(),
                        extensionRegistry);
                if (statusesBuilder_ == null) {
                  ensureStatusesIsMutable();
                  statuses_.add(m);
                } else {
                  statusesBuilder_.addMessage(m);
                }
                break;
              } // case 42
              case 50: {
                errorMessage_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 2;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private boolean wasSuccessful_ ;
      /**
       * <code>bool was_successful = 3;</code>
       * @return The wasSuccessful.
       */
      @java.lang.Override
      public boolean getWasSuccessful() {
        return wasSuccessful_;
      }
      /**
       * <code>bool was_successful = 3;</code>
       * @param value The wasSuccessful to set.
       * @return This builder for chaining.
       */
      public Builder setWasSuccessful(boolean value) {

        wasSuccessful_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>bool was_successful = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearWasSuccessful() {
        bitField0_ = (bitField0_ & ~0x00000004);
        wasSuccessful_ = false;
        onChanged();
        return this;
      }

      private int hresult_ ;
      /**
       * <code>optional int32 hresult = 4;</code>
       * @return Whether the hresult field is set.
       */
      @java.lang.Override
      public boolean hasHresult() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int32 hresult = 4;</code>
       * @return The hresult.
       */
      @java.lang.Override
      public int getHresult() {
        return hresult_;
      }
      /**
       * <code>optional int32 hresult = 4;</code>
       * @param value The hresult to set.
       * @return This builder for chaining.
       */
      public Builder setHresult(int value) {

        hresult_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 hresult = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHresult() {
        bitField0_ = (bitField0_ & ~0x00000008);
        hresult_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_ =
        java.util.Collections.emptyList();
      private void ensureStatusesIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          statuses_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy>(statuses_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> statusesBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
        if (statusesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(statuses_);
        } else {
          return statusesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public int getStatusesCount() {
        if (statusesBuilder_ == null) {
          return statuses_.size();
        } else {
          return statusesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);
        } else {
          return statusesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.set(index, value);
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.set(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder addStatuses(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(index, value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder addStatuses(
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder addAllStatuses(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> values) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, statuses_);
          onChanged();
        } else {
          statusesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder clearStatuses() {
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          statusesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public Builder removeStatuses(int index) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.remove(index);
          onChanged();
        } else {
          statusesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder getStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
          int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);  } else {
          return statusesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
           getStatusesOrBuilderList() {
        if (statusesBuilder_ != null) {
          return statusesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(statuses_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder() {
        return internalGetStatusesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 5;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder> 
           getStatusesBuilderList() {
        return internalGetStatusesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
          internalGetStatusesFieldBuilder() {
        if (statusesBuilder_ == null) {
          statusesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder>(
                  statuses_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          statuses_ = null;
        }
        return statusesBuilder_;
      }

      private java.lang.Object errorMessage_ = "";
      /**
       * <code>string error_message = 6;</code>
       * @return The errorMessage.
       */
      public java.lang.String getErrorMessage() {
        java.lang.Object ref = errorMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errorMessage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string error_message = 6;</code>
       * @return The bytes for errorMessage.
       */
      public com.google.protobuf.ByteString
          getErrorMessageBytes() {
        java.lang.Object ref = errorMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errorMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string error_message = 6;</code>
       * @param value The errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        errorMessage_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>string error_message = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorMessage() {
        errorMessage_ = getDefaultInstance().getErrorMessage();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>string error_message = 6;</code>
       * @param value The bytes for errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        errorMessage_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.BulkWriteResult)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.BulkWriteResult)
    private static final mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BulkWriteResult>
        PARSER = new com.google.protobuf.AbstractParser<BulkWriteResult>() {
      @java.lang.Override
      public BulkWriteResult 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<BulkWriteResult> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BulkWriteReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.BulkWriteReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult> 
        getResultsList();
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult getResults(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    int getResultsCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder> 
        getResultsOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder getResultsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.BulkWriteReply}
   */
  public static final class BulkWriteReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.BulkWriteReply)
      BulkWriteReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BulkWriteReply");
    }
    // Use BulkWriteReply.newBuilder() to construct.
    private BulkWriteReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BulkWriteReply() {
      results_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.class, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder.class);
    }

    public static final int RESULTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult> results_;
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult> getResultsList() {
      return results_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder> 
        getResultsOrBuilderList() {
      return results_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    @java.lang.Override
    public int getResultsCount() {
      return results_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult getResults(int index) {
      return results_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder getResultsOrBuilder(
        int index) {
      return results_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      for (int i = 0; i < results_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, results_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply other = (mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) obj;

      if (!getResultsList()
          .equals(other.getResultsList())) 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 (getResultsCount() > 0) {
        hash = (37 * hash) + RESULTS_FIELD_NUMBER;
        hash = (53 * hash) + getResultsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply 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 mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply 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 mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply 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(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply 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 mxaccess_gateway.v1.BulkWriteReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.BulkWriteReply)
        mxaccess_gateway.v1.MxaccessGateway.BulkWriteReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.class, mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (resultsBuilder_ == null) {
          results_ = java.util.Collections.emptyList();
        } else {
          results_ = null;
          resultsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkWriteReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply build() {
        mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply result = new mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply result) {
        if (resultsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            results_ = java.util.Collections.unmodifiableList(results_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.results_ = results_;
        } else {
          result.results_ = resultsBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply.getDefaultInstance()) return this;
        if (resultsBuilder_ == null) {
          if (!other.results_.isEmpty()) {
            if (results_.isEmpty()) {
              results_ = other.results_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureResultsIsMutable();
              results_.addAll(other.results_);
            }
            onChanged();
          }
        } else {
          if (!other.results_.isEmpty()) {
            if (resultsBuilder_.isEmpty()) {
              resultsBuilder_.dispose();
              resultsBuilder_ = null;
              results_ = other.results_;
              bitField0_ = (bitField0_ & ~0x00000001);
              resultsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetResultsFieldBuilder() : null;
            } else {
              resultsBuilder_.addAllMessages(other.results_);
            }
          }
        }
        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: {
                mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.parser(),
                        extensionRegistry);
                if (resultsBuilder_ == null) {
                  ensureResultsIsMutable();
                  results_.add(m);
                } else {
                  resultsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              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.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult> results_ =
        java.util.Collections.emptyList();
      private void ensureResultsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          results_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult>(results_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder> resultsBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult> getResultsList() {
        if (resultsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(results_);
        } else {
          return resultsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public int getResultsCount() {
        if (resultsBuilder_ == null) {
          return results_.size();
        } else {
          return resultsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult getResults(int index) {
        if (resultsBuilder_ == null) {
          return results_.get(index);
        } else {
          return resultsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder setResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.set(index, value);
          onChanged();
        } else {
          resultsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder setResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.set(index, builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder addResults(mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.add(value);
          onChanged();
        } else {
          resultsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder addResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.add(index, value);
          onChanged();
        } else {
          resultsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder addResults(
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.add(builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder addResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.add(index, builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder addAllResults(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult> values) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, results_);
          onChanged();
        } else {
          resultsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder clearResults() {
        if (resultsBuilder_ == null) {
          results_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          resultsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public Builder removeResults(int index) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.remove(index);
          onChanged();
        } else {
          resultsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder getResultsBuilder(
          int index) {
        return internalGetResultsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder getResultsOrBuilder(
          int index) {
        if (resultsBuilder_ == null) {
          return results_.get(index);  } else {
          return resultsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder> 
           getResultsOrBuilderList() {
        if (resultsBuilder_ != null) {
          return resultsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(results_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder addResultsBuilder() {
        return internalGetResultsFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder addResultsBuilder(
          int index) {
        return internalGetResultsFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkWriteResult results = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder> 
           getResultsBuilderList() {
        return internalGetResultsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder> 
          internalGetResultsFieldBuilder() {
        if (resultsBuilder_ == null) {
          resultsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResult.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkWriteResultOrBuilder>(
                  results_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          results_ = null;
        }
        return resultsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.BulkWriteReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.BulkWriteReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BulkWriteReply>
        PARSER = new com.google.protobuf.AbstractParser<BulkWriteReply>() {
      @java.lang.Override
      public BulkWriteReply 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<BulkWriteReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkWriteReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BulkReadResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.BulkReadResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>string tag_address = 2;</code>
     * @return The tagAddress.
     */
    java.lang.String getTagAddress();
    /**
     * <code>string tag_address = 2;</code>
     * @return The bytes for tagAddress.
     */
    com.google.protobuf.ByteString
        getTagAddressBytes();

    /**
     * <code>int32 item_handle = 3;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>bool was_successful = 4;</code>
     * @return The wasSuccessful.
     */
    boolean getWasSuccessful();

    /**
     * <code>bool was_cached = 5;</code>
     * @return The wasCached.
     */
    boolean getWasCached();

    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>int32 quality = 7;</code>
     * @return The quality.
     */
    int getQuality();

    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
     * @return Whether the sourceTimestamp field is set.
     */
    boolean hasSourceTimestamp();
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
     * @return The sourceTimestamp.
     */
    com.google.protobuf.Timestamp getSourceTimestamp();
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
     */
    com.google.protobuf.TimestampOrBuilder getSourceTimestampOrBuilder();

    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> 
        getStatusesList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    int getStatusesCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index);

    /**
     * <code>string error_message = 10;</code>
     * @return The errorMessage.
     */
    java.lang.String getErrorMessage();
    /**
     * <code>string error_message = 10;</code>
     * @return The bytes for errorMessage.
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes();
  }
  /**
   * <pre>
   * Per-tag result for ReadBulk. `was_cached` is true when the value came from
   * an existing live subscription's last OnDataChange (the worker did not touch
   * the subscription); false when the worker took the AddItem + Advise + wait +
   * UnAdvise + RemoveItem snapshot lifecycle itself.
   *
   * On `was_successful = true`, `value`, `quality`, `source_timestamp`, and
   * `statuses` carry the read data (from the cached subscription or the snapshot
   * lifecycle, depending on `was_cached`) and `error_message` is empty. On
   * `was_successful = false`, only `server_handle`, `tag_address`, `item_handle`
   * (when allocated), `was_cached`, and `error_message` are populated; `value`,
   * `quality`, `source_timestamp`, and `statuses` are left at their proto3
   * defaults (null / 0 / null / empty) and must not be read as data — they are
   * wire-indistinguishable from "value is null with quality bad" data and serve
   * only as absent markers. ReadBulk has no `hresult` field by design (its
   * outcomes are timeout / cache / lifecycle states, not MXAccess COM return
   * codes — see `docs/DesignDecisions.md` "Bulk Command Family"). Per-tag
   * failures populate `error_message` and never raise — callers iterate and
   * inspect each entry.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.BulkReadResult}
   */
  public static final class BulkReadResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.BulkReadResult)
      BulkReadResultOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BulkReadResult");
    }
    // Use BulkReadResult.newBuilder() to construct.
    private BulkReadResult(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BulkReadResult() {
      tagAddress_ = "";
      statuses_ = java.util.Collections.emptyList();
      errorMessage_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.class, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder.class);
    }

    private int bitField0_;
    public static final int SERVER_HANDLE_FIELD_NUMBER = 1;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 1;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int TAG_ADDRESS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object tagAddress_ = "";
    /**
     * <code>string tag_address = 2;</code>
     * @return The tagAddress.
     */
    @java.lang.Override
    public java.lang.String getTagAddress() {
      java.lang.Object ref = tagAddress_;
      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();
        tagAddress_ = s;
        return s;
      }
    }
    /**
     * <code>string tag_address = 2;</code>
     * @return The bytes for tagAddress.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTagAddressBytes() {
      java.lang.Object ref = tagAddress_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tagAddress_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 3;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 3;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int WAS_SUCCESSFUL_FIELD_NUMBER = 4;
    private boolean wasSuccessful_ = false;
    /**
     * <code>bool was_successful = 4;</code>
     * @return The wasSuccessful.
     */
    @java.lang.Override
    public boolean getWasSuccessful() {
      return wasSuccessful_;
    }

    public static final int WAS_CACHED_FIELD_NUMBER = 5;
    private boolean wasCached_ = false;
    /**
     * <code>bool was_cached = 5;</code>
     * @return The wasCached.
     */
    @java.lang.Override
    public boolean getWasCached() {
      return wasCached_;
    }

    public static final int VALUE_FIELD_NUMBER = 6;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int QUALITY_FIELD_NUMBER = 7;
    private int quality_ = 0;
    /**
     * <code>int32 quality = 7;</code>
     * @return The quality.
     */
    @java.lang.Override
    public int getQuality() {
      return quality_;
    }

    public static final int SOURCE_TIMESTAMP_FIELD_NUMBER = 8;
    private com.google.protobuf.Timestamp sourceTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
     * @return Whether the sourceTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasSourceTimestamp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
     * @return The sourceTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getSourceTimestamp() {
      return sourceTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getSourceTimestampOrBuilder() {
      return sourceTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
    }

    public static final int STATUSES_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_;
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
      return statuses_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList() {
      return statuses_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    @java.lang.Override
    public int getStatusesCount() {
      return statuses_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
      return statuses_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index) {
      return statuses_.get(index);
    }

    public static final int ERROR_MESSAGE_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private volatile java.lang.Object errorMessage_ = "";
    /**
     * <code>string error_message = 10;</code>
     * @return The errorMessage.
     */
    @java.lang.Override
    public java.lang.String getErrorMessage() {
      java.lang.Object ref = errorMessage_;
      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();
        errorMessage_ = s;
        return s;
      }
    }
    /**
     * <code>string error_message = 10;</code>
     * @return The bytes for errorMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrorMessageBytes() {
      java.lang.Object ref = errorMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        errorMessage_ = 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 (serverHandle_ != 0) {
        output.writeInt32(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagAddress_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, tagAddress_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(3, itemHandle_);
      }
      if (wasSuccessful_ != false) {
        output.writeBool(4, wasSuccessful_);
      }
      if (wasCached_ != false) {
        output.writeBool(5, wasCached_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(6, getValue());
      }
      if (quality_ != 0) {
        output.writeInt32(7, quality_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(8, getSourceTimestamp());
      }
      for (int i = 0; i < statuses_.size(); i++) {
        output.writeMessage(9, statuses_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(errorMessage_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 10, errorMessage_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, serverHandle_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(tagAddress_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, tagAddress_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, itemHandle_);
      }
      if (wasSuccessful_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, wasSuccessful_);
      }
      if (wasCached_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, wasCached_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getValue());
      }
      if (quality_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, quality_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getSourceTimestamp());
      }
      for (int i = 0; i < statuses_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, statuses_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(errorMessage_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(10, errorMessage_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.BulkReadResult)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.BulkReadResult other = (mxaccess_gateway.v1.MxaccessGateway.BulkReadResult) obj;

      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (!getTagAddress()
          .equals(other.getTagAddress())) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (getWasSuccessful()
          != other.getWasSuccessful()) return false;
      if (getWasCached()
          != other.getWasCached()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (getQuality()
          != other.getQuality()) return false;
      if (hasSourceTimestamp() != other.hasSourceTimestamp()) return false;
      if (hasSourceTimestamp()) {
        if (!getSourceTimestamp()
            .equals(other.getSourceTimestamp())) return false;
      }
      if (!getStatusesList()
          .equals(other.getStatusesList())) return false;
      if (!getErrorMessage()
          .equals(other.getErrorMessage())) 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();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + TAG_ADDRESS_FIELD_NUMBER;
      hash = (53 * hash) + getTagAddress().hashCode();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      hash = (37 * hash) + WAS_SUCCESSFUL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getWasSuccessful());
      hash = (37 * hash) + WAS_CACHED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getWasCached());
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (37 * hash) + QUALITY_FIELD_NUMBER;
      hash = (53 * hash) + getQuality();
      if (hasSourceTimestamp()) {
        hash = (37 * hash) + SOURCE_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getSourceTimestamp().hashCode();
      }
      if (getStatusesCount() > 0) {
        hash = (37 * hash) + STATUSES_FIELD_NUMBER;
        hash = (53 * hash) + getStatusesList().hashCode();
      }
      hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getErrorMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult 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 mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult 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 mxaccess_gateway.v1.MxaccessGateway.BulkReadResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult 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(mxaccess_gateway.v1.MxaccessGateway.BulkReadResult 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;
    }
    /**
     * <pre>
     * Per-tag result for ReadBulk. `was_cached` is true when the value came from
     * an existing live subscription's last OnDataChange (the worker did not touch
     * the subscription); false when the worker took the AddItem + Advise + wait +
     * UnAdvise + RemoveItem snapshot lifecycle itself.
     *
     * On `was_successful = true`, `value`, `quality`, `source_timestamp`, and
     * `statuses` carry the read data (from the cached subscription or the snapshot
     * lifecycle, depending on `was_cached`) and `error_message` is empty. On
     * `was_successful = false`, only `server_handle`, `tag_address`, `item_handle`
     * (when allocated), `was_cached`, and `error_message` are populated; `value`,
     * `quality`, `source_timestamp`, and `statuses` are left at their proto3
     * defaults (null / 0 / null / empty) and must not be read as data — they are
     * wire-indistinguishable from "value is null with quality bad" data and serve
     * only as absent markers. ReadBulk has no `hresult` field by design (its
     * outcomes are timeout / cache / lifecycle states, not MXAccess COM return
     * codes — see `docs/DesignDecisions.md` "Bulk Command Family"). Per-tag
     * failures populate `error_message` and never raise — callers iterate and
     * inspect each entry.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.BulkReadResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.BulkReadResult)
        mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.class, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
          internalGetSourceTimestampFieldBuilder();
          internalGetStatusesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverHandle_ = 0;
        tagAddress_ = "";
        itemHandle_ = 0;
        wasSuccessful_ = false;
        wasCached_ = false;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        quality_ = 0;
        sourceTimestamp_ = null;
        if (sourceTimestampBuilder_ != null) {
          sourceTimestampBuilder_.dispose();
          sourceTimestampBuilder_ = null;
        }
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
        } else {
          statuses_ = null;
          statusesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        errorMessage_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadResult_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult build() {
        mxaccess_gateway.v1.MxaccessGateway.BulkReadResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.BulkReadResult result = new mxaccess_gateway.v1.MxaccessGateway.BulkReadResult(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.BulkReadResult result) {
        if (statusesBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0)) {
            statuses_ = java.util.Collections.unmodifiableList(statuses_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.statuses_ = statuses_;
        } else {
          result.statuses_ = statusesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.BulkReadResult result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.tagAddress_ = tagAddress_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.wasSuccessful_ = wasSuccessful_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.wasCached_ = wasCached_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.quality_ = quality_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.sourceTimestamp_ = sourceTimestampBuilder_ == null
              ? sourceTimestamp_
              : sourceTimestampBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.errorMessage_ = errorMessage_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.BulkReadResult) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.BulkReadResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.BulkReadResult other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.getDefaultInstance()) return this;
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (!other.getTagAddress().isEmpty()) {
          tagAddress_ = other.tagAddress_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.getWasSuccessful() != false) {
          setWasSuccessful(other.getWasSuccessful());
        }
        if (other.getWasCached() != false) {
          setWasCached(other.getWasCached());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.getQuality() != 0) {
          setQuality(other.getQuality());
        }
        if (other.hasSourceTimestamp()) {
          mergeSourceTimestamp(other.getSourceTimestamp());
        }
        if (statusesBuilder_ == null) {
          if (!other.statuses_.isEmpty()) {
            if (statuses_.isEmpty()) {
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureStatusesIsMutable();
              statuses_.addAll(other.statuses_);
            }
            onChanged();
          }
        } else {
          if (!other.statuses_.isEmpty()) {
            if (statusesBuilder_.isEmpty()) {
              statusesBuilder_.dispose();
              statusesBuilder_ = null;
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000100);
              statusesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetStatusesFieldBuilder() : null;
            } else {
              statusesBuilder_.addAllMessages(other.statuses_);
            }
          }
        }
        if (!other.getErrorMessage().isEmpty()) {
          errorMessage_ = other.errorMessage_;
          bitField0_ |= 0x00000200;
          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 8: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                tagAddress_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                wasSuccessful_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                wasCached_ = input.readBool();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 56: {
                quality_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 66: {
                input.readMessage(
                    internalGetSourceTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.parser(),
                        extensionRegistry);
                if (statusesBuilder_ == null) {
                  ensureStatusesIsMutable();
                  statuses_.add(m);
                } else {
                  statusesBuilder_.addMessage(m);
                }
                break;
              } // case 74
              case 82: {
                errorMessage_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              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 int serverHandle_ ;
      /**
       * <code>int32 server_handle = 1;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object tagAddress_ = "";
      /**
       * <code>string tag_address = 2;</code>
       * @return The tagAddress.
       */
      public java.lang.String getTagAddress() {
        java.lang.Object ref = tagAddress_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tagAddress_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string tag_address = 2;</code>
       * @return The bytes for tagAddress.
       */
      public com.google.protobuf.ByteString
          getTagAddressBytes() {
        java.lang.Object ref = tagAddress_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tagAddress_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string tag_address = 2;</code>
       * @param value The tagAddress to set.
       * @return This builder for chaining.
       */
      public Builder setTagAddress(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tagAddress_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string tag_address = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTagAddress() {
        tagAddress_ = getDefaultInstance().getTagAddress();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string tag_address = 2;</code>
       * @param value The bytes for tagAddress to set.
       * @return This builder for chaining.
       */
      public Builder setTagAddressBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        tagAddress_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 3;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 3;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private boolean wasSuccessful_ ;
      /**
       * <code>bool was_successful = 4;</code>
       * @return The wasSuccessful.
       */
      @java.lang.Override
      public boolean getWasSuccessful() {
        return wasSuccessful_;
      }
      /**
       * <code>bool was_successful = 4;</code>
       * @param value The wasSuccessful to set.
       * @return This builder for chaining.
       */
      public Builder setWasSuccessful(boolean value) {

        wasSuccessful_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>bool was_successful = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearWasSuccessful() {
        bitField0_ = (bitField0_ & ~0x00000008);
        wasSuccessful_ = false;
        onChanged();
        return this;
      }

      private boolean wasCached_ ;
      /**
       * <code>bool was_cached = 5;</code>
       * @return The wasCached.
       */
      @java.lang.Override
      public boolean getWasCached() {
        return wasCached_;
      }
      /**
       * <code>bool was_cached = 5;</code>
       * @param value The wasCached to set.
       * @return This builder for chaining.
       */
      public Builder setWasCached(boolean value) {

        wasCached_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>bool was_cached = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearWasCached() {
        bitField0_ = (bitField0_ & ~0x00000010);
        wasCached_ = false;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000020);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private int quality_ ;
      /**
       * <code>int32 quality = 7;</code>
       * @return The quality.
       */
      @java.lang.Override
      public int getQuality() {
        return quality_;
      }
      /**
       * <code>int32 quality = 7;</code>
       * @param value The quality to set.
       * @return This builder for chaining.
       */
      public Builder setQuality(int value) {

        quality_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>int32 quality = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearQuality() {
        bitField0_ = (bitField0_ & ~0x00000040);
        quality_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp sourceTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> sourceTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       * @return Whether the sourceTimestamp field is set.
       */
      public boolean hasSourceTimestamp() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       * @return The sourceTimestamp.
       */
      public com.google.protobuf.Timestamp getSourceTimestamp() {
        if (sourceTimestampBuilder_ == null) {
          return sourceTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
        } else {
          return sourceTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       */
      public Builder setSourceTimestamp(com.google.protobuf.Timestamp value) {
        if (sourceTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sourceTimestamp_ = value;
        } else {
          sourceTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       */
      public Builder setSourceTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (sourceTimestampBuilder_ == null) {
          sourceTimestamp_ = builderForValue.build();
        } else {
          sourceTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       */
      public Builder mergeSourceTimestamp(com.google.protobuf.Timestamp value) {
        if (sourceTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            sourceTimestamp_ != null &&
            sourceTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getSourceTimestampBuilder().mergeFrom(value);
          } else {
            sourceTimestamp_ = value;
          }
        } else {
          sourceTimestampBuilder_.mergeFrom(value);
        }
        if (sourceTimestamp_ != null) {
          bitField0_ |= 0x00000080;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       */
      public Builder clearSourceTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000080);
        sourceTimestamp_ = null;
        if (sourceTimestampBuilder_ != null) {
          sourceTimestampBuilder_.dispose();
          sourceTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       */
      public com.google.protobuf.Timestamp.Builder getSourceTimestampBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return internalGetSourceTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getSourceTimestampOrBuilder() {
        if (sourceTimestampBuilder_ != null) {
          return sourceTimestampBuilder_.getMessageOrBuilder();
        } else {
          return sourceTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetSourceTimestampFieldBuilder() {
        if (sourceTimestampBuilder_ == null) {
          sourceTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getSourceTimestamp(),
                  getParentForChildren(),
                  isClean());
          sourceTimestamp_ = null;
        }
        return sourceTimestampBuilder_;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_ =
        java.util.Collections.emptyList();
      private void ensureStatusesIsMutable() {
        if (!((bitField0_ & 0x00000100) != 0)) {
          statuses_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy>(statuses_);
          bitField0_ |= 0x00000100;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> statusesBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
        if (statusesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(statuses_);
        } else {
          return statusesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public int getStatusesCount() {
        if (statusesBuilder_ == null) {
          return statuses_.size();
        } else {
          return statusesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);
        } else {
          return statusesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.set(index, value);
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.set(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder addStatuses(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(index, value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder addStatuses(
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder addAllStatuses(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> values) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, statuses_);
          onChanged();
        } else {
          statusesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder clearStatuses() {
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          statusesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public Builder removeStatuses(int index) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.remove(index);
          onChanged();
        } else {
          statusesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder getStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
          int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);  } else {
          return statusesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
           getStatusesOrBuilderList() {
        if (statusesBuilder_ != null) {
          return statusesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(statuses_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder() {
        return internalGetStatusesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 9;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder> 
           getStatusesBuilderList() {
        return internalGetStatusesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
          internalGetStatusesFieldBuilder() {
        if (statusesBuilder_ == null) {
          statusesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder>(
                  statuses_,
                  ((bitField0_ & 0x00000100) != 0),
                  getParentForChildren(),
                  isClean());
          statuses_ = null;
        }
        return statusesBuilder_;
      }

      private java.lang.Object errorMessage_ = "";
      /**
       * <code>string error_message = 10;</code>
       * @return The errorMessage.
       */
      public java.lang.String getErrorMessage() {
        java.lang.Object ref = errorMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          errorMessage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string error_message = 10;</code>
       * @return The bytes for errorMessage.
       */
      public com.google.protobuf.ByteString
          getErrorMessageBytes() {
        java.lang.Object ref = errorMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          errorMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string error_message = 10;</code>
       * @param value The errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        errorMessage_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>string error_message = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorMessage() {
        errorMessage_ = getDefaultInstance().getErrorMessage();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * <code>string error_message = 10;</code>
       * @param value The bytes for errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        errorMessage_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.BulkReadResult)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.BulkReadResult)
    private static final mxaccess_gateway.v1.MxaccessGateway.BulkReadResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.BulkReadResult();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BulkReadResult>
        PARSER = new com.google.protobuf.AbstractParser<BulkReadResult>() {
      @java.lang.Override
      public BulkReadResult 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<BulkReadResult> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BulkReadReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.BulkReadReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkReadResult> 
        getResultsList();
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkReadResult getResults(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    int getResultsCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder> 
        getResultsOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder getResultsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.BulkReadReply}
   */
  public static final class BulkReadReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.BulkReadReply)
      BulkReadReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BulkReadReply");
    }
    // Use BulkReadReply.newBuilder() to construct.
    private BulkReadReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BulkReadReply() {
      results_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.class, mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.Builder.class);
    }

    public static final int RESULTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkReadResult> results_;
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkReadResult> getResultsList() {
      return results_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder> 
        getResultsOrBuilderList() {
      return results_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    @java.lang.Override
    public int getResultsCount() {
      return results_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult getResults(int index) {
      return results_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder getResultsOrBuilder(
        int index) {
      return results_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      for (int i = 0; i < results_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, results_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.BulkReadReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.BulkReadReply other = (mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) obj;

      if (!getResultsList()
          .equals(other.getResultsList())) 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 (getResultsCount() > 0) {
        hash = (37 * hash) + RESULTS_FIELD_NUMBER;
        hash = (53 * hash) + getResultsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply 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 mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply 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 mxaccess_gateway.v1.MxaccessGateway.BulkReadReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply 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(mxaccess_gateway.v1.MxaccessGateway.BulkReadReply 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 mxaccess_gateway.v1.BulkReadReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.BulkReadReply)
        mxaccess_gateway.v1.MxaccessGateway.BulkReadReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.class, mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (resultsBuilder_ == null) {
          results_ = java.util.Collections.emptyList();
        } else {
          results_ = null;
          resultsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BulkReadReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadReply build() {
        mxaccess_gateway.v1.MxaccessGateway.BulkReadReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.BulkReadReply result = new mxaccess_gateway.v1.MxaccessGateway.BulkReadReply(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.BulkReadReply result) {
        if (resultsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            results_ = java.util.Collections.unmodifiableList(results_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.results_ = results_;
        } else {
          result.results_ = resultsBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.BulkReadReply result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.BulkReadReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.BulkReadReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.BulkReadReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.BulkReadReply.getDefaultInstance()) return this;
        if (resultsBuilder_ == null) {
          if (!other.results_.isEmpty()) {
            if (results_.isEmpty()) {
              results_ = other.results_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureResultsIsMutable();
              results_.addAll(other.results_);
            }
            onChanged();
          }
        } else {
          if (!other.results_.isEmpty()) {
            if (resultsBuilder_.isEmpty()) {
              resultsBuilder_.dispose();
              resultsBuilder_ = null;
              results_ = other.results_;
              bitField0_ = (bitField0_ & ~0x00000001);
              resultsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetResultsFieldBuilder() : null;
            } else {
              resultsBuilder_.addAllMessages(other.results_);
            }
          }
        }
        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: {
                mxaccess_gateway.v1.MxaccessGateway.BulkReadResult m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.parser(),
                        extensionRegistry);
                if (resultsBuilder_ == null) {
                  ensureResultsIsMutable();
                  results_.add(m);
                } else {
                  resultsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              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.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkReadResult> results_ =
        java.util.Collections.emptyList();
      private void ensureResultsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          results_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.BulkReadResult>(results_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkReadResult, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder> resultsBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkReadResult> getResultsList() {
        if (resultsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(results_);
        } else {
          return resultsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public int getResultsCount() {
        if (resultsBuilder_ == null) {
          return results_.size();
        } else {
          return resultsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult getResults(int index) {
        if (resultsBuilder_ == null) {
          return results_.get(index);
        } else {
          return resultsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder setResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.set(index, value);
          onChanged();
        } else {
          resultsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder setResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.set(index, builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder addResults(mxaccess_gateway.v1.MxaccessGateway.BulkReadResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.add(value);
          onChanged();
        } else {
          resultsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder addResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult value) {
        if (resultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResultsIsMutable();
          results_.add(index, value);
          onChanged();
        } else {
          resultsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder addResults(
          mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.add(builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder addResults(
          int index, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder builderForValue) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.add(index, builderForValue.build());
          onChanged();
        } else {
          resultsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder addAllResults(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.BulkReadResult> values) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, results_);
          onChanged();
        } else {
          resultsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder clearResults() {
        if (resultsBuilder_ == null) {
          results_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          resultsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public Builder removeResults(int index) {
        if (resultsBuilder_ == null) {
          ensureResultsIsMutable();
          results_.remove(index);
          onChanged();
        } else {
          resultsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder getResultsBuilder(
          int index) {
        return internalGetResultsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder getResultsOrBuilder(
          int index) {
        if (resultsBuilder_ == null) {
          return results_.get(index);  } else {
          return resultsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder> 
           getResultsOrBuilderList() {
        if (resultsBuilder_ != null) {
          return resultsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(results_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder addResultsBuilder() {
        return internalGetResultsFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder addResultsBuilder(
          int index) {
        return internalGetResultsFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.BulkReadResult results = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder> 
           getResultsBuilderList() {
        return internalGetResultsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BulkReadResult, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder> 
          internalGetResultsFieldBuilder() {
        if (resultsBuilder_ == null) {
          resultsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BulkReadResult, mxaccess_gateway.v1.MxaccessGateway.BulkReadResult.Builder, mxaccess_gateway.v1.MxaccessGateway.BulkReadResultOrBuilder>(
                  results_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          results_ = null;
        }
        return resultsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.BulkReadReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.BulkReadReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.BulkReadReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.BulkReadReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BulkReadReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BulkReadReply>
        PARSER = new com.google.protobuf.AbstractParser<BulkReadReply>() {
      @java.lang.Override
      public BulkReadReply 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<BulkReadReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BulkReadReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SessionStateReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.SessionStateReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
     * @return The enum numeric value on the wire for state.
     */
    int getStateValue();
    /**
     * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
     * @return The state.
     */
    mxaccess_gateway.v1.MxaccessGateway.SessionState getState();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.SessionStateReply}
   */
  public static final class SessionStateReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.SessionStateReply)
      SessionStateReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "SessionStateReply");
    }
    // Use SessionStateReply.newBuilder() to construct.
    private SessionStateReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private SessionStateReply() {
      state_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SessionStateReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SessionStateReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.class, mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.Builder.class);
    }

    public static final int STATE_FIELD_NUMBER = 1;
    private int state_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override public int getStateValue() {
      return state_;
    }
    /**
     * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
     * @return The state.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.SessionState getState() {
      mxaccess_gateway.v1.MxaccessGateway.SessionState result = mxaccess_gateway.v1.MxaccessGateway.SessionState.forNumber(state_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.SessionState.UNRECOGNIZED : result;
    }

    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 (state_ != mxaccess_gateway.v1.MxaccessGateway.SessionState.SESSION_STATE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, state_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (state_ != mxaccess_gateway.v1.MxaccessGateway.SessionState.SESSION_STATE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, state_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.SessionStateReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.SessionStateReply other = (mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) obj;

      if (state_ != other.state_) 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();
      hash = (37 * hash) + STATE_FIELD_NUMBER;
      hash = (53 * hash) + state_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply 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 mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply 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 mxaccess_gateway.v1.MxaccessGateway.SessionStateReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply 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(mxaccess_gateway.v1.MxaccessGateway.SessionStateReply 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 mxaccess_gateway.v1.SessionStateReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.SessionStateReply)
        mxaccess_gateway.v1.MxaccessGateway.SessionStateReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SessionStateReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SessionStateReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.class, mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        state_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_SessionStateReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SessionStateReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SessionStateReply build() {
        mxaccess_gateway.v1.MxaccessGateway.SessionStateReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SessionStateReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.SessionStateReply result = new mxaccess_gateway.v1.MxaccessGateway.SessionStateReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.SessionStateReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.state_ = state_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.SessionStateReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.SessionStateReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.SessionStateReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.SessionStateReply.getDefaultInstance()) return this;
        if (other.state_ != 0) {
          setStateValue(other.getStateValue());
        }
        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 8: {
                state_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int state_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
       * @return The enum numeric value on the wire for state.
       */
      @java.lang.Override public int getStateValue() {
        return state_;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
       * @param value The enum numeric value on the wire for state to set.
       * @return This builder for chaining.
       */
      public Builder setStateValue(int value) {
        state_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
       * @return The state.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.SessionState getState() {
        mxaccess_gateway.v1.MxaccessGateway.SessionState result = mxaccess_gateway.v1.MxaccessGateway.SessionState.forNumber(state_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.SessionState.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(mxaccess_gateway.v1.MxaccessGateway.SessionState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        state_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.SessionState state = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.SessionStateReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.SessionStateReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.SessionStateReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.SessionStateReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.SessionStateReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SessionStateReply>
        PARSER = new com.google.protobuf.AbstractParser<SessionStateReply>() {
      @java.lang.Override
      public SessionStateReply 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<SessionStateReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.SessionStateReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerInfoReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.WorkerInfoReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 worker_process_id = 1;</code>
     * @return The workerProcessId.
     */
    int getWorkerProcessId();

    /**
     * <code>string worker_version = 2;</code>
     * @return The workerVersion.
     */
    java.lang.String getWorkerVersion();
    /**
     * <code>string worker_version = 2;</code>
     * @return The bytes for workerVersion.
     */
    com.google.protobuf.ByteString
        getWorkerVersionBytes();

    /**
     * <code>string mxaccess_progid = 3;</code>
     * @return The mxaccessProgid.
     */
    java.lang.String getMxaccessProgid();
    /**
     * <code>string mxaccess_progid = 3;</code>
     * @return The bytes for mxaccessProgid.
     */
    com.google.protobuf.ByteString
        getMxaccessProgidBytes();

    /**
     * <code>string mxaccess_clsid = 4;</code>
     * @return The mxaccessClsid.
     */
    java.lang.String getMxaccessClsid();
    /**
     * <code>string mxaccess_clsid = 4;</code>
     * @return The bytes for mxaccessClsid.
     */
    com.google.protobuf.ByteString
        getMxaccessClsidBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.WorkerInfoReply}
   */
  public static final class WorkerInfoReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.WorkerInfoReply)
      WorkerInfoReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WorkerInfoReply");
    }
    // Use WorkerInfoReply.newBuilder() to construct.
    private WorkerInfoReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerInfoReply() {
      workerVersion_ = "";
      mxaccessProgid_ = "";
      mxaccessClsid_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WorkerInfoReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WorkerInfoReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.class, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.Builder.class);
    }

    public static final int WORKER_PROCESS_ID_FIELD_NUMBER = 1;
    private int workerProcessId_ = 0;
    /**
     * <code>int32 worker_process_id = 1;</code>
     * @return The workerProcessId.
     */
    @java.lang.Override
    public int getWorkerProcessId() {
      return workerProcessId_;
    }

    public static final int WORKER_VERSION_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object workerVersion_ = "";
    /**
     * <code>string worker_version = 2;</code>
     * @return The workerVersion.
     */
    @java.lang.Override
    public java.lang.String getWorkerVersion() {
      java.lang.Object ref = workerVersion_;
      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();
        workerVersion_ = s;
        return s;
      }
    }
    /**
     * <code>string worker_version = 2;</code>
     * @return The bytes for workerVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getWorkerVersionBytes() {
      java.lang.Object ref = workerVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        workerVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MXACCESS_PROGID_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object mxaccessProgid_ = "";
    /**
     * <code>string mxaccess_progid = 3;</code>
     * @return The mxaccessProgid.
     */
    @java.lang.Override
    public java.lang.String getMxaccessProgid() {
      java.lang.Object ref = mxaccessProgid_;
      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();
        mxaccessProgid_ = s;
        return s;
      }
    }
    /**
     * <code>string mxaccess_progid = 3;</code>
     * @return The bytes for mxaccessProgid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMxaccessProgidBytes() {
      java.lang.Object ref = mxaccessProgid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mxaccessProgid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MXACCESS_CLSID_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object mxaccessClsid_ = "";
    /**
     * <code>string mxaccess_clsid = 4;</code>
     * @return The mxaccessClsid.
     */
    @java.lang.Override
    public java.lang.String getMxaccessClsid() {
      java.lang.Object ref = mxaccessClsid_;
      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();
        mxaccessClsid_ = s;
        return s;
      }
    }
    /**
     * <code>string mxaccess_clsid = 4;</code>
     * @return The bytes for mxaccessClsid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMxaccessClsidBytes() {
      java.lang.Object ref = mxaccessClsid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mxaccessClsid_ = 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 (workerProcessId_ != 0) {
        output.writeInt32(1, workerProcessId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(workerVersion_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, workerVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mxaccessProgid_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, mxaccessProgid_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mxaccessClsid_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, mxaccessClsid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (workerProcessId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, workerProcessId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(workerVersion_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, workerVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mxaccessProgid_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, mxaccessProgid_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mxaccessClsid_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, mxaccessClsid_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply other = (mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) obj;

      if (getWorkerProcessId()
          != other.getWorkerProcessId()) return false;
      if (!getWorkerVersion()
          .equals(other.getWorkerVersion())) return false;
      if (!getMxaccessProgid()
          .equals(other.getMxaccessProgid())) return false;
      if (!getMxaccessClsid()
          .equals(other.getMxaccessClsid())) 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();
      hash = (37 * hash) + WORKER_PROCESS_ID_FIELD_NUMBER;
      hash = (53 * hash) + getWorkerProcessId();
      hash = (37 * hash) + WORKER_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getWorkerVersion().hashCode();
      hash = (37 * hash) + MXACCESS_PROGID_FIELD_NUMBER;
      hash = (53 * hash) + getMxaccessProgid().hashCode();
      hash = (37 * hash) + MXACCESS_CLSID_FIELD_NUMBER;
      hash = (53 * hash) + getMxaccessClsid().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply 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 mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply 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 mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply 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(mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply 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 mxaccess_gateway.v1.WorkerInfoReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.WorkerInfoReply)
        mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WorkerInfoReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WorkerInfoReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.class, mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        workerProcessId_ = 0;
        workerVersion_ = "";
        mxaccessProgid_ = "";
        mxaccessClsid_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_WorkerInfoReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply build() {
        mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply result = new mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.workerProcessId_ = workerProcessId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.workerVersion_ = workerVersion_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.mxaccessProgid_ = mxaccessProgid_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.mxaccessClsid_ = mxaccessClsid_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply.getDefaultInstance()) return this;
        if (other.getWorkerProcessId() != 0) {
          setWorkerProcessId(other.getWorkerProcessId());
        }
        if (!other.getWorkerVersion().isEmpty()) {
          workerVersion_ = other.workerVersion_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getMxaccessProgid().isEmpty()) {
          mxaccessProgid_ = other.mxaccessProgid_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getMxaccessClsid().isEmpty()) {
          mxaccessClsid_ = other.mxaccessClsid_;
          bitField0_ |= 0x00000008;
          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 8: {
                workerProcessId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                workerVersion_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                mxaccessProgid_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                mxaccessClsid_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 int workerProcessId_ ;
      /**
       * <code>int32 worker_process_id = 1;</code>
       * @return The workerProcessId.
       */
      @java.lang.Override
      public int getWorkerProcessId() {
        return workerProcessId_;
      }
      /**
       * <code>int32 worker_process_id = 1;</code>
       * @param value The workerProcessId to set.
       * @return This builder for chaining.
       */
      public Builder setWorkerProcessId(int value) {

        workerProcessId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 worker_process_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearWorkerProcessId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        workerProcessId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object workerVersion_ = "";
      /**
       * <code>string worker_version = 2;</code>
       * @return The workerVersion.
       */
      public java.lang.String getWorkerVersion() {
        java.lang.Object ref = workerVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          workerVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string worker_version = 2;</code>
       * @return The bytes for workerVersion.
       */
      public com.google.protobuf.ByteString
          getWorkerVersionBytes() {
        java.lang.Object ref = workerVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          workerVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string worker_version = 2;</code>
       * @param value The workerVersion to set.
       * @return This builder for chaining.
       */
      public Builder setWorkerVersion(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        workerVersion_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string worker_version = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearWorkerVersion() {
        workerVersion_ = getDefaultInstance().getWorkerVersion();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string worker_version = 2;</code>
       * @param value The bytes for workerVersion to set.
       * @return This builder for chaining.
       */
      public Builder setWorkerVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        workerVersion_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object mxaccessProgid_ = "";
      /**
       * <code>string mxaccess_progid = 3;</code>
       * @return The mxaccessProgid.
       */
      public java.lang.String getMxaccessProgid() {
        java.lang.Object ref = mxaccessProgid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mxaccessProgid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string mxaccess_progid = 3;</code>
       * @return The bytes for mxaccessProgid.
       */
      public com.google.protobuf.ByteString
          getMxaccessProgidBytes() {
        java.lang.Object ref = mxaccessProgid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mxaccessProgid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string mxaccess_progid = 3;</code>
       * @param value The mxaccessProgid to set.
       * @return This builder for chaining.
       */
      public Builder setMxaccessProgid(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        mxaccessProgid_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_progid = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMxaccessProgid() {
        mxaccessProgid_ = getDefaultInstance().getMxaccessProgid();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_progid = 3;</code>
       * @param value The bytes for mxaccessProgid to set.
       * @return This builder for chaining.
       */
      public Builder setMxaccessProgidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        mxaccessProgid_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object mxaccessClsid_ = "";
      /**
       * <code>string mxaccess_clsid = 4;</code>
       * @return The mxaccessClsid.
       */
      public java.lang.String getMxaccessClsid() {
        java.lang.Object ref = mxaccessClsid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mxaccessClsid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string mxaccess_clsid = 4;</code>
       * @return The bytes for mxaccessClsid.
       */
      public com.google.protobuf.ByteString
          getMxaccessClsidBytes() {
        java.lang.Object ref = mxaccessClsid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mxaccessClsid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string mxaccess_clsid = 4;</code>
       * @param value The mxaccessClsid to set.
       * @return This builder for chaining.
       */
      public Builder setMxaccessClsid(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        mxaccessClsid_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_clsid = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMxaccessClsid() {
        mxaccessClsid_ = getDefaultInstance().getMxaccessClsid();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_clsid = 4;</code>
       * @param value The bytes for mxaccessClsid to set.
       * @return This builder for chaining.
       */
      public Builder setMxaccessClsidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        mxaccessClsid_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.WorkerInfoReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.WorkerInfoReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WorkerInfoReply>
        PARSER = new com.google.protobuf.AbstractParser<WorkerInfoReply>() {
      @java.lang.Override
      public WorkerInfoReply 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<WorkerInfoReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.WorkerInfoReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DrainEventsReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.DrainEventsReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxEvent> 
        getEventsList();
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxEvent getEvents(int index);
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    int getEventsCount();
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder> 
        getEventsOrBuilderList();
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder getEventsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.DrainEventsReply}
   */
  public static final class DrainEventsReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.DrainEventsReply)
      DrainEventsReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "DrainEventsReply");
    }
    // Use DrainEventsReply.newBuilder() to construct.
    private DrainEventsReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DrainEventsReply() {
      events_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.class, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.Builder.class);
    }

    public static final int EVENTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxEvent> events_;
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxEvent> getEventsList() {
      return events_;
    }
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder> 
        getEventsOrBuilderList() {
      return events_;
    }
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    @java.lang.Override
    public int getEventsCount() {
      return events_.size();
    }
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxEvent getEvents(int index) {
      return events_.get(index);
    }
    /**
     * <pre>
     * The reply is bounded by both a server-side count cap and the negotiated
     * worker-frame byte cap; a reply may therefore carry fewer events than
     * `max_events` and fewer than are queued. Callers drain iteratively until an
     * empty reply.
     * </pre>
     *
     * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder getEventsOrBuilder(
        int index) {
      return events_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      for (int i = 0; i < events_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, events_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply other = (mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) obj;

      if (!getEventsList()
          .equals(other.getEventsList())) 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 (getEventsCount() > 0) {
        hash = (37 * hash) + EVENTS_FIELD_NUMBER;
        hash = (53 * hash) + getEventsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply 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 mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply 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 mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply 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(mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply 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 mxaccess_gateway.v1.DrainEventsReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.DrainEventsReply)
        mxaccess_gateway.v1.MxaccessGateway.DrainEventsReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.class, mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (eventsBuilder_ == null) {
          events_ = java.util.Collections.emptyList();
        } else {
          events_ = null;
          eventsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DrainEventsReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply build() {
        mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply result = new mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply result) {
        if (eventsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            events_ = java.util.Collections.unmodifiableList(events_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.events_ = events_;
        } else {
          result.events_ = eventsBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply.getDefaultInstance()) return this;
        if (eventsBuilder_ == null) {
          if (!other.events_.isEmpty()) {
            if (events_.isEmpty()) {
              events_ = other.events_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureEventsIsMutable();
              events_.addAll(other.events_);
            }
            onChanged();
          }
        } else {
          if (!other.events_.isEmpty()) {
            if (eventsBuilder_.isEmpty()) {
              eventsBuilder_.dispose();
              eventsBuilder_ = null;
              events_ = other.events_;
              bitField0_ = (bitField0_ & ~0x00000001);
              eventsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetEventsFieldBuilder() : null;
            } else {
              eventsBuilder_.addAllMessages(other.events_);
            }
          }
        }
        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: {
                mxaccess_gateway.v1.MxaccessGateway.MxEvent m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.MxEvent.parser(),
                        extensionRegistry);
                if (eventsBuilder_ == null) {
                  ensureEventsIsMutable();
                  events_.add(m);
                } else {
                  eventsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              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.util.List<mxaccess_gateway.v1.MxaccessGateway.MxEvent> events_ =
        java.util.Collections.emptyList();
      private void ensureEventsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          events_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.MxEvent>(events_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxEvent, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder> eventsBuilder_;

      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxEvent> getEventsList() {
        if (eventsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(events_);
        } else {
          return eventsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public int getEventsCount() {
        if (eventsBuilder_ == null) {
          return events_.size();
        } else {
          return eventsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent getEvents(int index) {
        if (eventsBuilder_ == null) {
          return events_.get(index);
        } else {
          return eventsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder setEvents(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxEvent value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.set(index, value);
          onChanged();
        } else {
          eventsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder setEvents(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.set(index, builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder addEvents(mxaccess_gateway.v1.MxaccessGateway.MxEvent value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.add(value);
          onChanged();
        } else {
          eventsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder addEvents(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxEvent value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.add(index, value);
          onChanged();
        } else {
          eventsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder addEvents(
          mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.add(builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder addEvents(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.add(index, builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder addAllEvents(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.MxEvent> values) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, events_);
          onChanged();
        } else {
          eventsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder clearEvents() {
        if (eventsBuilder_ == null) {
          events_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          eventsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public Builder removeEvents(int index) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.remove(index);
          onChanged();
        } else {
          eventsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder getEventsBuilder(
          int index) {
        return internalGetEventsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder getEventsOrBuilder(
          int index) {
        if (eventsBuilder_ == null) {
          return events_.get(index);  } else {
          return eventsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder> 
           getEventsOrBuilderList() {
        if (eventsBuilder_ != null) {
          return eventsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(events_);
        }
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder addEventsBuilder() {
        return internalGetEventsFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance());
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder addEventsBuilder(
          int index) {
        return internalGetEventsFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance());
      }
      /**
       * <pre>
       * The reply is bounded by both a server-side count cap and the negotiated
       * worker-frame byte cap; a reply may therefore carry fewer events than
       * `max_events` and fewer than are queued. Callers drain iteratively until an
       * empty reply.
       * </pre>
       *
       * <code>repeated .mxaccess_gateway.v1.MxEvent events = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder> 
           getEventsBuilderList() {
        return internalGetEventsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxEvent, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder> 
          internalGetEventsFieldBuilder() {
        if (eventsBuilder_ == null) {
          eventsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxEvent, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder>(
                  events_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          events_ = null;
        }
        return eventsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.DrainEventsReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.DrainEventsReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DrainEventsReply>
        PARSER = new com.google.protobuf.AbstractParser<DrainEventsReply>() {
      @java.lang.Override
      public DrainEventsReply 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<DrainEventsReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DrainEventsReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeAlarmReplyPayloadOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 native_status = 1;</code>
     * @return The nativeStatus.
     */
    int getNativeStatus();
  }
  /**
   * <pre>
   * Reply payload for AcknowledgeAlarmCommand AND
   * AcknowledgeAlarmByNameCommand — both ack command kinds reuse this
   * payload case (`MxCommandReply.acknowledge_alarm`); there is no
   * dedicated by-name reply case. Surfaces AVEVA's native ack return
   * code (AlarmAckByGUID for the GUID arm, AlarmAckByName for the
   * by-name arm); 0 means success. The MxCommandReply's hresult field
   * carries the same value and is preferred for protocol consumers —
   * this payload exists so the gateway-side WorkerAlarmRpcDispatcher
   * can echo native_status into AcknowledgeAlarmReply.hresult without
   * unpacking the outer envelope.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload}
   */
  public static final class AcknowledgeAlarmReplyPayload extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload)
      AcknowledgeAlarmReplyPayloadOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AcknowledgeAlarmReplyPayload");
    }
    // Use AcknowledgeAlarmReplyPayload.newBuilder() to construct.
    private AcknowledgeAlarmReplyPayload(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeAlarmReplyPayload() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.Builder.class);
    }

    public static final int NATIVE_STATUS_FIELD_NUMBER = 1;
    private int nativeStatus_ = 0;
    /**
     * <code>int32 native_status = 1;</code>
     * @return The nativeStatus.
     */
    @java.lang.Override
    public int getNativeStatus() {
      return nativeStatus_;
    }

    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 (nativeStatus_ != 0) {
        output.writeInt32(1, nativeStatus_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (nativeStatus_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, nativeStatus_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload other = (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) obj;

      if (getNativeStatus()
          != other.getNativeStatus()) 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();
      hash = (37 * hash) + NATIVE_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + getNativeStatus();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload 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(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload 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;
    }
    /**
     * <pre>
     * Reply payload for AcknowledgeAlarmCommand AND
     * AcknowledgeAlarmByNameCommand — both ack command kinds reuse this
     * payload case (`MxCommandReply.acknowledge_alarm`); there is no
     * dedicated by-name reply case. Surfaces AVEVA's native ack return
     * code (AlarmAckByGUID for the GUID arm, AlarmAckByName for the
     * by-name arm); 0 means success. The MxCommandReply's hresult field
     * carries the same value and is preferred for protocol consumers —
     * this payload exists so the gateway-side WorkerAlarmRpcDispatcher
     * can echo native_status into AcknowledgeAlarmReply.hresult without
     * unpacking the outer envelope.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload)
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayloadOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        nativeStatus_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload build() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload result = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.nativeStatus_ = nativeStatus_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload.getDefaultInstance()) return this;
        if (other.getNativeStatus() != 0) {
          setNativeStatus(other.getNativeStatus());
        }
        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 8: {
                nativeStatus_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 int nativeStatus_ ;
      /**
       * <code>int32 native_status = 1;</code>
       * @return The nativeStatus.
       */
      @java.lang.Override
      public int getNativeStatus() {
        return nativeStatus_;
      }
      /**
       * <code>int32 native_status = 1;</code>
       * @param value The nativeStatus to set.
       * @return This builder for chaining.
       */
      public Builder setNativeStatus(int value) {

        nativeStatus_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 native_status = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearNativeStatus() {
        bitField0_ = (bitField0_ & ~0x00000001);
        nativeStatus_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AcknowledgeAlarmReplyPayload)
    private static final mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeAlarmReplyPayload>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeAlarmReplyPayload>() {
      @java.lang.Override
      public AcknowledgeAlarmReplyPayload 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<AcknowledgeAlarmReplyPayload> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyPayload getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface QueryActiveAlarmsReplyPayloadOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot> 
        getSnapshotsList();
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getSnapshots(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    int getSnapshotsCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder> 
        getSnapshotsOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder getSnapshotsOrBuilder(
        int index);

    /**
     * <pre>
     * True when the provider fetch backing this reply came back holding the
     * per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
     * active alarms, and the worker suspends its absence-implies-Clear inference
     * for that poll — so a reference missing from `snapshots` is not evidence the
     * alarm cleared. Carried on the payload as well as per-record because a
     * truncated fetch that filters down to zero records still has to say so.
     * </pre>
     *
     * <code>bool snapshot_truncated = 2;</code>
     * @return The snapshotTruncated.
     */
    boolean getSnapshotTruncated();
  }
  /**
   * <pre>
   * Reply payload for QueryActiveAlarmsCommand. The worker walks
   * IMxAccessAlarmConsumer.SnapshotActiveAlarms and packs each record as
   * an ActiveAlarmSnapshot proto for the gateway-side ConditionRefresh
   * stream.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload}
   */
  public static final class QueryActiveAlarmsReplyPayload extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload)
      QueryActiveAlarmsReplyPayloadOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "QueryActiveAlarmsReplyPayload");
    }
    // Use QueryActiveAlarmsReplyPayload.newBuilder() to construct.
    private QueryActiveAlarmsReplyPayload(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private QueryActiveAlarmsReplyPayload() {
      snapshots_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.class, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.Builder.class);
    }

    public static final int SNAPSHOTS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot> snapshots_;
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot> getSnapshotsList() {
      return snapshots_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder> 
        getSnapshotsOrBuilderList() {
      return snapshots_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    @java.lang.Override
    public int getSnapshotsCount() {
      return snapshots_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getSnapshots(int index) {
      return snapshots_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder getSnapshotsOrBuilder(
        int index) {
      return snapshots_.get(index);
    }

    public static final int SNAPSHOT_TRUNCATED_FIELD_NUMBER = 2;
    private boolean snapshotTruncated_ = false;
    /**
     * <pre>
     * True when the provider fetch backing this reply came back holding the
     * per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
     * active alarms, and the worker suspends its absence-implies-Clear inference
     * for that poll — so a reference missing from `snapshots` is not evidence the
     * alarm cleared. Carried on the payload as well as per-record because a
     * truncated fetch that filters down to zero records still has to say so.
     * </pre>
     *
     * <code>bool snapshot_truncated = 2;</code>
     * @return The snapshotTruncated.
     */
    @java.lang.Override
    public boolean getSnapshotTruncated() {
      return snapshotTruncated_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      for (int i = 0; i < snapshots_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, snapshots_.get(i));
      }
      if (snapshotTruncated_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, snapshotTruncated_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload other = (mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) obj;

      if (!getSnapshotsList()
          .equals(other.getSnapshotsList())) return false;
      if (getSnapshotTruncated()
          != other.getSnapshotTruncated()) 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 (getSnapshotsCount() > 0) {
        hash = (37 * hash) + SNAPSHOTS_FIELD_NUMBER;
        hash = (53 * hash) + getSnapshotsList().hashCode();
      }
      hash = (37 * hash) + SNAPSHOT_TRUNCATED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getSnapshotTruncated());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload 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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload 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 mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload 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(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload 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;
    }
    /**
     * <pre>
     * Reply payload for QueryActiveAlarmsCommand. The worker walks
     * IMxAccessAlarmConsumer.SnapshotActiveAlarms and packs each record as
     * an ActiveAlarmSnapshot proto for the gateway-side ConditionRefresh
     * stream.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload)
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayloadOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.class, mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (snapshotsBuilder_ == null) {
          snapshots_ = java.util.Collections.emptyList();
        } else {
          snapshots_ = null;
          snapshotsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        snapshotTruncated_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload build() {
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload result = new mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload result) {
        if (snapshotsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            snapshots_ = java.util.Collections.unmodifiableList(snapshots_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.snapshots_ = snapshots_;
        } else {
          result.snapshots_ = snapshotsBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.snapshotTruncated_ = snapshotTruncated_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload.getDefaultInstance()) return this;
        if (snapshotsBuilder_ == null) {
          if (!other.snapshots_.isEmpty()) {
            if (snapshots_.isEmpty()) {
              snapshots_ = other.snapshots_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSnapshotsIsMutable();
              snapshots_.addAll(other.snapshots_);
            }
            onChanged();
          }
        } else {
          if (!other.snapshots_.isEmpty()) {
            if (snapshotsBuilder_.isEmpty()) {
              snapshotsBuilder_.dispose();
              snapshotsBuilder_ = null;
              snapshots_ = other.snapshots_;
              bitField0_ = (bitField0_ & ~0x00000001);
              snapshotsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetSnapshotsFieldBuilder() : null;
            } else {
              snapshotsBuilder_.addAllMessages(other.snapshots_);
            }
          }
        }
        if (other.getSnapshotTruncated() != false) {
          setSnapshotTruncated(other.getSnapshotTruncated());
        }
        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: {
                mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.parser(),
                        extensionRegistry);
                if (snapshotsBuilder_ == null) {
                  ensureSnapshotsIsMutable();
                  snapshots_.add(m);
                } else {
                  snapshotsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 16: {
                snapshotTruncated_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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.util.List<mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot> snapshots_ =
        java.util.Collections.emptyList();
      private void ensureSnapshotsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          snapshots_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot>(snapshots_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder> snapshotsBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot> getSnapshotsList() {
        if (snapshotsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(snapshots_);
        } else {
          return snapshotsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public int getSnapshotsCount() {
        if (snapshotsBuilder_ == null) {
          return snapshots_.size();
        } else {
          return snapshotsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getSnapshots(int index) {
        if (snapshotsBuilder_ == null) {
          return snapshots_.get(index);
        } else {
          return snapshotsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder setSnapshots(
          int index, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot value) {
        if (snapshotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSnapshotsIsMutable();
          snapshots_.set(index, value);
          onChanged();
        } else {
          snapshotsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder setSnapshots(
          int index, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder builderForValue) {
        if (snapshotsBuilder_ == null) {
          ensureSnapshotsIsMutable();
          snapshots_.set(index, builderForValue.build());
          onChanged();
        } else {
          snapshotsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder addSnapshots(mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot value) {
        if (snapshotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSnapshotsIsMutable();
          snapshots_.add(value);
          onChanged();
        } else {
          snapshotsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder addSnapshots(
          int index, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot value) {
        if (snapshotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSnapshotsIsMutable();
          snapshots_.add(index, value);
          onChanged();
        } else {
          snapshotsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder addSnapshots(
          mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder builderForValue) {
        if (snapshotsBuilder_ == null) {
          ensureSnapshotsIsMutable();
          snapshots_.add(builderForValue.build());
          onChanged();
        } else {
          snapshotsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder addSnapshots(
          int index, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder builderForValue) {
        if (snapshotsBuilder_ == null) {
          ensureSnapshotsIsMutable();
          snapshots_.add(index, builderForValue.build());
          onChanged();
        } else {
          snapshotsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder addAllSnapshots(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot> values) {
        if (snapshotsBuilder_ == null) {
          ensureSnapshotsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, snapshots_);
          onChanged();
        } else {
          snapshotsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder clearSnapshots() {
        if (snapshotsBuilder_ == null) {
          snapshots_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          snapshotsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public Builder removeSnapshots(int index) {
        if (snapshotsBuilder_ == null) {
          ensureSnapshotsIsMutable();
          snapshots_.remove(index);
          onChanged();
        } else {
          snapshotsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder getSnapshotsBuilder(
          int index) {
        return internalGetSnapshotsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder getSnapshotsOrBuilder(
          int index) {
        if (snapshotsBuilder_ == null) {
          return snapshots_.get(index);  } else {
          return snapshotsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder> 
           getSnapshotsOrBuilderList() {
        if (snapshotsBuilder_ != null) {
          return snapshotsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(snapshots_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder addSnapshotsBuilder() {
        return internalGetSnapshotsFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder addSnapshotsBuilder(
          int index) {
        return internalGetSnapshotsFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.ActiveAlarmSnapshot snapshots = 1;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder> 
           getSnapshotsBuilderList() {
        return internalGetSnapshotsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder> 
          internalGetSnapshotsFieldBuilder() {
        if (snapshotsBuilder_ == null) {
          snapshotsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder>(
                  snapshots_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          snapshots_ = null;
        }
        return snapshotsBuilder_;
      }

      private boolean snapshotTruncated_ ;
      /**
       * <pre>
       * True when the provider fetch backing this reply came back holding the
       * per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
       * active alarms, and the worker suspends its absence-implies-Clear inference
       * for that poll — so a reference missing from `snapshots` is not evidence the
       * alarm cleared. Carried on the payload as well as per-record because a
       * truncated fetch that filters down to zero records still has to say so.
       * </pre>
       *
       * <code>bool snapshot_truncated = 2;</code>
       * @return The snapshotTruncated.
       */
      @java.lang.Override
      public boolean getSnapshotTruncated() {
        return snapshotTruncated_;
      }
      /**
       * <pre>
       * True when the provider fetch backing this reply came back holding the
       * per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
       * active alarms, and the worker suspends its absence-implies-Clear inference
       * for that poll — so a reference missing from `snapshots` is not evidence the
       * alarm cleared. Carried on the payload as well as per-record because a
       * truncated fetch that filters down to zero records still has to say so.
       * </pre>
       *
       * <code>bool snapshot_truncated = 2;</code>
       * @param value The snapshotTruncated to set.
       * @return This builder for chaining.
       */
      public Builder setSnapshotTruncated(boolean value) {

        snapshotTruncated_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * True when the provider fetch backing this reply came back holding the
       * per-fetch cap (MxGateway:Alarms:MaxAlarmsPerFetch). The reply may then omit
       * active alarms, and the worker suspends its absence-implies-Clear inference
       * for that poll — so a reference missing from `snapshots` is not evidence the
       * alarm cleared. Carried on the payload as well as per-record because a
       * truncated fetch that filters down to zero records still has to say so.
       * </pre>
       *
       * <code>bool snapshot_truncated = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSnapshotTruncated() {
        bitField0_ = (bitField0_ & ~0x00000002);
        snapshotTruncated_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.QueryActiveAlarmsReplyPayload)
    private static final mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<QueryActiveAlarmsReplyPayload>
        PARSER = new com.google.protobuf.AbstractParser<QueryActiveAlarmsReplyPayload>() {
      @java.lang.Override
      public QueryActiveAlarmsReplyPayload 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<QueryActiveAlarmsReplyPayload> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.QueryActiveAlarmsReplyPayload getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
     * @return The enum numeric value on the wire for family.
     */
    int getFamilyValue();
    /**
     * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
     * @return The family.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxEventFamily getFamily();

    /**
     * <code>string session_id = 2;</code>
     * @return The sessionId.
     */
    java.lang.String getSessionId();
    /**
     * <code>string session_id = 2;</code>
     * @return The bytes for sessionId.
     */
    com.google.protobuf.ByteString
        getSessionIdBytes();

    /**
     * <code>int32 server_handle = 3;</code>
     * @return The serverHandle.
     */
    int getServerHandle();

    /**
     * <code>int32 item_handle = 4;</code>
     * @return The itemHandle.
     */
    int getItemHandle();

    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();

    /**
     * <code>int32 quality = 6;</code>
     * @return The quality.
     */
    int getQuality();

    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
     * @return Whether the sourceTimestamp field is set.
     */
    boolean hasSourceTimestamp();
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
     * @return The sourceTimestamp.
     */
    com.google.protobuf.Timestamp getSourceTimestamp();
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
     */
    com.google.protobuf.TimestampOrBuilder getSourceTimestampOrBuilder();

    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> 
        getStatusesList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    int getStatusesCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index);

    /**
     * <code>uint64 worker_sequence = 9;</code>
     * @return The workerSequence.
     */
    long getWorkerSequence();

    /**
     * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
     * @return Whether the workerTimestamp field is set.
     */
    boolean hasWorkerTimestamp();
    /**
     * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
     * @return The workerTimestamp.
     */
    com.google.protobuf.Timestamp getWorkerTimestamp();
    /**
     * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
     */
    com.google.protobuf.TimestampOrBuilder getWorkerTimestampOrBuilder();

    /**
     * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
     * @return Whether the gatewayReceiveTimestamp field is set.
     */
    boolean hasGatewayReceiveTimestamp();
    /**
     * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
     * @return The gatewayReceiveTimestamp.
     */
    com.google.protobuf.Timestamp getGatewayReceiveTimestamp();
    /**
     * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
     */
    com.google.protobuf.TimestampOrBuilder getGatewayReceiveTimestampOrBuilder();

    /**
     * <code>optional int32 hresult = 12;</code>
     * @return Whether the hresult field is set.
     */
    boolean hasHresult();
    /**
     * <code>optional int32 hresult = 12;</code>
     * @return The hresult.
     */
    int getHresult();

    /**
     * <code>string raw_status = 13;</code>
     * @return The rawStatus.
     */
    java.lang.String getRawStatus();
    /**
     * <code>string raw_status = 13;</code>
     * @return The bytes for rawStatus.
     */
    com.google.protobuf.ByteString
        getRawStatusBytes();

    /**
     * <pre>
     * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
     * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
     * that was resumed via StreamEventsRequest.after_worker_sequence when the
     * requested sequence is older than the oldest event still retained in the
     * session replay ring (i.e. events were evicted and cannot be replayed).
     * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
     * no per-item fields (server_handle/item_handle/value/...) are populated;
     * clients MUST treat a present `replay_gap` as "you missed events — discard
     * local state and re-snapshot" and read `requested_after_sequence` /
     * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
     * This field is ONLY ever set on events returned from the StreamEvents server
     * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
     * drain path never emits the sentinel).
     * Additive (proto3): existing clients that ignore this field continue to
     * deserialize the stream unchanged.
     * </pre>
     *
     * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
     * @return Whether the replayGap field is set.
     */
    boolean hasReplayGap();
    /**
     * <pre>
     * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
     * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
     * that was resumed via StreamEventsRequest.after_worker_sequence when the
     * requested sequence is older than the oldest event still retained in the
     * session replay ring (i.e. events were evicted and cannot be replayed).
     * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
     * no per-item fields (server_handle/item_handle/value/...) are populated;
     * clients MUST treat a present `replay_gap` as "you missed events — discard
     * local state and re-snapshot" and read `requested_after_sequence` /
     * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
     * This field is ONLY ever set on events returned from the StreamEvents server
     * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
     * drain path never emits the sentinel).
     * Additive (proto3): existing clients that ignore this field continue to
     * deserialize the stream unchanged.
     * </pre>
     *
     * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
     * @return The replayGap.
     */
    mxaccess_gateway.v1.MxaccessGateway.ReplayGap getReplayGap();
    /**
     * <pre>
     * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
     * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
     * that was resumed via StreamEventsRequest.after_worker_sequence when the
     * requested sequence is older than the oldest event still retained in the
     * session replay ring (i.e. events were evicted and cannot be replayed).
     * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
     * no per-item fields (server_handle/item_handle/value/...) are populated;
     * clients MUST treat a present `replay_gap` as "you missed events — discard
     * local state and re-snapshot" and read `requested_after_sequence` /
     * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
     * This field is ONLY ever set on events returned from the StreamEvents server
     * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
     * drain path never emits the sentinel).
     * Additive (proto3): existing clients that ignore this field continue to
     * deserialize the stream unchanged.
     * </pre>
     *
     * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ReplayGapOrBuilder getReplayGapOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
     * @return Whether the onDataChange field is set.
     */
    boolean hasOnDataChange();
    /**
     * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
     * @return The onDataChange.
     */
    mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent getOnDataChange();
    /**
     * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEventOrBuilder getOnDataChangeOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
     * @return Whether the onWriteComplete field is set.
     */
    boolean hasOnWriteComplete();
    /**
     * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
     * @return The onWriteComplete.
     */
    mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent getOnWriteComplete();
    /**
     * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEventOrBuilder getOnWriteCompleteOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
     * @return Whether the operationComplete field is set.
     */
    boolean hasOperationComplete();
    /**
     * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
     * @return The operationComplete.
     */
    mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent getOperationComplete();
    /**
     * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEventOrBuilder getOperationCompleteOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
     * @return Whether the onBufferedDataChange field is set.
     */
    boolean hasOnBufferedDataChange();
    /**
     * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
     * @return The onBufferedDataChange.
     */
    mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent getOnBufferedDataChange();
    /**
     * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEventOrBuilder getOnBufferedDataChangeOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
     * @return Whether the onAlarmTransition field is set.
     */
    boolean hasOnAlarmTransition();
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
     * @return The onAlarmTransition.
     */
    mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getOnAlarmTransition();
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder getOnAlarmTransitionOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
     * @return Whether the onAlarmProviderModeChanged field is set.
     */
    boolean hasOnAlarmProviderModeChanged();
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
     * @return The onAlarmProviderModeChanged.
     */
    mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent getOnAlarmProviderModeChanged();
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEventOrBuilder getOnAlarmProviderModeChangedOrBuilder();

    mxaccess_gateway.v1.MxaccessGateway.MxEvent.BodyCase getBodyCase();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxEvent}
   */
  public static final class MxEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxEvent)
      MxEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxEvent");
    }
    // Use MxEvent.newBuilder() to construct.
    private MxEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxEvent() {
      family_ = 0;
      sessionId_ = "";
      statuses_ = java.util.Collections.emptyList();
      rawStatus_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxEvent.class, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder.class);
    }

    private int bitField0_;
    private int bodyCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object body_;
    public enum BodyCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ON_DATA_CHANGE(20),
      ON_WRITE_COMPLETE(21),
      OPERATION_COMPLETE(22),
      ON_BUFFERED_DATA_CHANGE(23),
      ON_ALARM_TRANSITION(24),
      ON_ALARM_PROVIDER_MODE_CHANGED(25),
      BODY_NOT_SET(0);
      private final int value;
      private BodyCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static BodyCase valueOf(int value) {
        return forNumber(value);
      }

      public static BodyCase forNumber(int value) {
        switch (value) {
          case 20: return ON_DATA_CHANGE;
          case 21: return ON_WRITE_COMPLETE;
          case 22: return OPERATION_COMPLETE;
          case 23: return ON_BUFFERED_DATA_CHANGE;
          case 24: return ON_ALARM_TRANSITION;
          case 25: return ON_ALARM_PROVIDER_MODE_CHANGED;
          case 0: return BODY_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public BodyCase
    getBodyCase() {
      return BodyCase.forNumber(
          bodyCase_);
    }

    public static final int FAMILY_FIELD_NUMBER = 1;
    private int family_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
     * @return The enum numeric value on the wire for family.
     */
    @java.lang.Override public int getFamilyValue() {
      return family_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
     * @return The family.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxEventFamily getFamily() {
      mxaccess_gateway.v1.MxaccessGateway.MxEventFamily result = mxaccess_gateway.v1.MxaccessGateway.MxEventFamily.forNumber(family_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxEventFamily.UNRECOGNIZED : result;
    }

    public static final int SESSION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sessionId_ = "";
    /**
     * <code>string session_id = 2;</code>
     * @return The sessionId.
     */
    @java.lang.Override
    public java.lang.String getSessionId() {
      java.lang.Object ref = sessionId_;
      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();
        sessionId_ = s;
        return s;
      }
    }
    /**
     * <code>string session_id = 2;</code>
     * @return The bytes for sessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSessionIdBytes() {
      java.lang.Object ref = sessionId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sessionId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERVER_HANDLE_FIELD_NUMBER = 3;
    private int serverHandle_ = 0;
    /**
     * <code>int32 server_handle = 3;</code>
     * @return The serverHandle.
     */
    @java.lang.Override
    public int getServerHandle() {
      return serverHandle_;
    }

    public static final int ITEM_HANDLE_FIELD_NUMBER = 4;
    private int itemHandle_ = 0;
    /**
     * <code>int32 item_handle = 4;</code>
     * @return The itemHandle.
     */
    @java.lang.Override
    public int getItemHandle() {
      return itemHandle_;
    }

    public static final int VALUE_FIELD_NUMBER = 5;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    public static final int QUALITY_FIELD_NUMBER = 6;
    private int quality_ = 0;
    /**
     * <code>int32 quality = 6;</code>
     * @return The quality.
     */
    @java.lang.Override
    public int getQuality() {
      return quality_;
    }

    public static final int SOURCE_TIMESTAMP_FIELD_NUMBER = 7;
    private com.google.protobuf.Timestamp sourceTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
     * @return Whether the sourceTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasSourceTimestamp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
     * @return The sourceTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getSourceTimestamp() {
      return sourceTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getSourceTimestampOrBuilder() {
      return sourceTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
    }

    public static final int STATUSES_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_;
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
      return statuses_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
        getStatusesOrBuilderList() {
      return statuses_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    @java.lang.Override
    public int getStatusesCount() {
      return statuses_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
      return statuses_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
        int index) {
      return statuses_.get(index);
    }

    public static final int WORKER_SEQUENCE_FIELD_NUMBER = 9;
    private long workerSequence_ = 0L;
    /**
     * <code>uint64 worker_sequence = 9;</code>
     * @return The workerSequence.
     */
    @java.lang.Override
    public long getWorkerSequence() {
      return workerSequence_;
    }

    public static final int WORKER_TIMESTAMP_FIELD_NUMBER = 10;
    private com.google.protobuf.Timestamp workerTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
     * @return Whether the workerTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasWorkerTimestamp() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
     * @return The workerTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getWorkerTimestamp() {
      return workerTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : workerTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getWorkerTimestampOrBuilder() {
      return workerTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : workerTimestamp_;
    }

    public static final int GATEWAY_RECEIVE_TIMESTAMP_FIELD_NUMBER = 11;
    private com.google.protobuf.Timestamp gatewayReceiveTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
     * @return Whether the gatewayReceiveTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasGatewayReceiveTimestamp() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
     * @return The gatewayReceiveTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getGatewayReceiveTimestamp() {
      return gatewayReceiveTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : gatewayReceiveTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getGatewayReceiveTimestampOrBuilder() {
      return gatewayReceiveTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : gatewayReceiveTimestamp_;
    }

    public static final int HRESULT_FIELD_NUMBER = 12;
    private int hresult_ = 0;
    /**
     * <code>optional int32 hresult = 12;</code>
     * @return Whether the hresult field is set.
     */
    @java.lang.Override
    public boolean hasHresult() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int32 hresult = 12;</code>
     * @return The hresult.
     */
    @java.lang.Override
    public int getHresult() {
      return hresult_;
    }

    public static final int RAW_STATUS_FIELD_NUMBER = 13;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rawStatus_ = "";
    /**
     * <code>string raw_status = 13;</code>
     * @return The rawStatus.
     */
    @java.lang.Override
    public java.lang.String getRawStatus() {
      java.lang.Object ref = rawStatus_;
      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();
        rawStatus_ = s;
        return s;
      }
    }
    /**
     * <code>string raw_status = 13;</code>
     * @return The bytes for rawStatus.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRawStatusBytes() {
      java.lang.Object ref = rawStatus_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rawStatus_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REPLAY_GAP_FIELD_NUMBER = 14;
    private mxaccess_gateway.v1.MxaccessGateway.ReplayGap replayGap_;
    /**
     * <pre>
     * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
     * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
     * that was resumed via StreamEventsRequest.after_worker_sequence when the
     * requested sequence is older than the oldest event still retained in the
     * session replay ring (i.e. events were evicted and cannot be replayed).
     * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
     * no per-item fields (server_handle/item_handle/value/...) are populated;
     * clients MUST treat a present `replay_gap` as "you missed events — discard
     * local state and re-snapshot" and read `requested_after_sequence` /
     * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
     * This field is ONLY ever set on events returned from the StreamEvents server
     * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
     * drain path never emits the sentinel).
     * Additive (proto3): existing clients that ignore this field continue to
     * deserialize the stream unchanged.
     * </pre>
     *
     * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
     * @return Whether the replayGap field is set.
     */
    @java.lang.Override
    public boolean hasReplayGap() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
     * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
     * that was resumed via StreamEventsRequest.after_worker_sequence when the
     * requested sequence is older than the oldest event still retained in the
     * session replay ring (i.e. events were evicted and cannot be replayed).
     * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
     * no per-item fields (server_handle/item_handle/value/...) are populated;
     * clients MUST treat a present `replay_gap` as "you missed events — discard
     * local state and re-snapshot" and read `requested_after_sequence` /
     * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
     * This field is ONLY ever set on events returned from the StreamEvents server
     * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
     * drain path never emits the sentinel).
     * Additive (proto3): existing clients that ignore this field continue to
     * deserialize the stream unchanged.
     * </pre>
     *
     * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
     * @return The replayGap.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ReplayGap getReplayGap() {
      return replayGap_ == null ? mxaccess_gateway.v1.MxaccessGateway.ReplayGap.getDefaultInstance() : replayGap_;
    }
    /**
     * <pre>
     * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
     * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
     * that was resumed via StreamEventsRequest.after_worker_sequence when the
     * requested sequence is older than the oldest event still retained in the
     * session replay ring (i.e. events were evicted and cannot be replayed).
     * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
     * no per-item fields (server_handle/item_handle/value/...) are populated;
     * clients MUST treat a present `replay_gap` as "you missed events — discard
     * local state and re-snapshot" and read `requested_after_sequence` /
     * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
     * This field is ONLY ever set on events returned from the StreamEvents server
     * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
     * drain path never emits the sentinel).
     * Additive (proto3): existing clients that ignore this field continue to
     * deserialize the stream unchanged.
     * </pre>
     *
     * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ReplayGapOrBuilder getReplayGapOrBuilder() {
      return replayGap_ == null ? mxaccess_gateway.v1.MxaccessGateway.ReplayGap.getDefaultInstance() : replayGap_;
    }

    public static final int ON_DATA_CHANGE_FIELD_NUMBER = 20;
    /**
     * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
     * @return Whether the onDataChange field is set.
     */
    @java.lang.Override
    public boolean hasOnDataChange() {
      return bodyCase_ == 20;
    }
    /**
     * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
     * @return The onDataChange.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent getOnDataChange() {
      if (bodyCase_ == 20) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEventOrBuilder getOnDataChangeOrBuilder() {
      if (bodyCase_ == 20) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance();
    }

    public static final int ON_WRITE_COMPLETE_FIELD_NUMBER = 21;
    /**
     * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
     * @return Whether the onWriteComplete field is set.
     */
    @java.lang.Override
    public boolean hasOnWriteComplete() {
      return bodyCase_ == 21;
    }
    /**
     * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
     * @return The onWriteComplete.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent getOnWriteComplete() {
      if (bodyCase_ == 21) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEventOrBuilder getOnWriteCompleteOrBuilder() {
      if (bodyCase_ == 21) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance();
    }

    public static final int OPERATION_COMPLETE_FIELD_NUMBER = 22;
    /**
     * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
     * @return Whether the operationComplete field is set.
     */
    @java.lang.Override
    public boolean hasOperationComplete() {
      return bodyCase_ == 22;
    }
    /**
     * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
     * @return The operationComplete.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent getOperationComplete() {
      if (bodyCase_ == 22) {
         return (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEventOrBuilder getOperationCompleteOrBuilder() {
      if (bodyCase_ == 22) {
         return (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance();
    }

    public static final int ON_BUFFERED_DATA_CHANGE_FIELD_NUMBER = 23;
    /**
     * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
     * @return Whether the onBufferedDataChange field is set.
     */
    @java.lang.Override
    public boolean hasOnBufferedDataChange() {
      return bodyCase_ == 23;
    }
    /**
     * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
     * @return The onBufferedDataChange.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent getOnBufferedDataChange() {
      if (bodyCase_ == 23) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEventOrBuilder getOnBufferedDataChangeOrBuilder() {
      if (bodyCase_ == 23) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance();
    }

    public static final int ON_ALARM_TRANSITION_FIELD_NUMBER = 24;
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
     * @return Whether the onAlarmTransition field is set.
     */
    @java.lang.Override
    public boolean hasOnAlarmTransition() {
      return bodyCase_ == 24;
    }
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
     * @return The onAlarmTransition.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getOnAlarmTransition() {
      if (bodyCase_ == 24) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder getOnAlarmTransitionOrBuilder() {
      if (bodyCase_ == 24) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
    }

    public static final int ON_ALARM_PROVIDER_MODE_CHANGED_FIELD_NUMBER = 25;
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
     * @return Whether the onAlarmProviderModeChanged field is set.
     */
    @java.lang.Override
    public boolean hasOnAlarmProviderModeChanged() {
      return bodyCase_ == 25;
    }
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
     * @return The onAlarmProviderModeChanged.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent getOnAlarmProviderModeChanged() {
      if (bodyCase_ == 25) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEventOrBuilder getOnAlarmProviderModeChangedOrBuilder() {
      if (bodyCase_ == 25) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance();
    }

    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 (family_ != mxaccess_gateway.v1.MxaccessGateway.MxEventFamily.MX_EVENT_FAMILY_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, family_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, sessionId_);
      }
      if (serverHandle_ != 0) {
        output.writeInt32(3, serverHandle_);
      }
      if (itemHandle_ != 0) {
        output.writeInt32(4, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(5, getValue());
      }
      if (quality_ != 0) {
        output.writeInt32(6, quality_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(7, getSourceTimestamp());
      }
      for (int i = 0; i < statuses_.size(); i++) {
        output.writeMessage(8, statuses_.get(i));
      }
      if (workerSequence_ != 0L) {
        output.writeUInt64(9, workerSequence_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(10, getWorkerTimestamp());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(11, getGatewayReceiveTimestamp());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(12, hresult_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(rawStatus_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 13, rawStatus_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeMessage(14, getReplayGap());
      }
      if (bodyCase_ == 20) {
        output.writeMessage(20, (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_);
      }
      if (bodyCase_ == 21) {
        output.writeMessage(21, (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_);
      }
      if (bodyCase_ == 22) {
        output.writeMessage(22, (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_);
      }
      if (bodyCase_ == 23) {
        output.writeMessage(23, (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_);
      }
      if (bodyCase_ == 24) {
        output.writeMessage(24, (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_);
      }
      if (bodyCase_ == 25) {
        output.writeMessage(25, (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (family_ != mxaccess_gateway.v1.MxaccessGateway.MxEventFamily.MX_EVENT_FAMILY_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, family_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, sessionId_);
      }
      if (serverHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, serverHandle_);
      }
      if (itemHandle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, itemHandle_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getValue());
      }
      if (quality_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, quality_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getSourceTimestamp());
      }
      for (int i = 0; i < statuses_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, statuses_.get(i));
      }
      if (workerSequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(9, workerSequence_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getWorkerTimestamp());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getGatewayReceiveTimestamp());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, hresult_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(rawStatus_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(13, rawStatus_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getReplayGap());
      }
      if (bodyCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_);
      }
      if (bodyCase_ == 21) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_);
      }
      if (bodyCase_ == 22) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_);
      }
      if (bodyCase_ == 23) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_);
      }
      if (bodyCase_ == 24) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_);
      }
      if (bodyCase_ == 25) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(25, (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxEvent)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxEvent other = (mxaccess_gateway.v1.MxaccessGateway.MxEvent) obj;

      if (family_ != other.family_) return false;
      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (getServerHandle()
          != other.getServerHandle()) return false;
      if (getItemHandle()
          != other.getItemHandle()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) return false;
      }
      if (getQuality()
          != other.getQuality()) return false;
      if (hasSourceTimestamp() != other.hasSourceTimestamp()) return false;
      if (hasSourceTimestamp()) {
        if (!getSourceTimestamp()
            .equals(other.getSourceTimestamp())) return false;
      }
      if (!getStatusesList()
          .equals(other.getStatusesList())) return false;
      if (getWorkerSequence()
          != other.getWorkerSequence()) return false;
      if (hasWorkerTimestamp() != other.hasWorkerTimestamp()) return false;
      if (hasWorkerTimestamp()) {
        if (!getWorkerTimestamp()
            .equals(other.getWorkerTimestamp())) return false;
      }
      if (hasGatewayReceiveTimestamp() != other.hasGatewayReceiveTimestamp()) return false;
      if (hasGatewayReceiveTimestamp()) {
        if (!getGatewayReceiveTimestamp()
            .equals(other.getGatewayReceiveTimestamp())) return false;
      }
      if (hasHresult() != other.hasHresult()) return false;
      if (hasHresult()) {
        if (getHresult()
            != other.getHresult()) return false;
      }
      if (!getRawStatus()
          .equals(other.getRawStatus())) return false;
      if (hasReplayGap() != other.hasReplayGap()) return false;
      if (hasReplayGap()) {
        if (!getReplayGap()
            .equals(other.getReplayGap())) return false;
      }
      if (!getBodyCase().equals(other.getBodyCase())) return false;
      switch (bodyCase_) {
        case 20:
          if (!getOnDataChange()
              .equals(other.getOnDataChange())) return false;
          break;
        case 21:
          if (!getOnWriteComplete()
              .equals(other.getOnWriteComplete())) return false;
          break;
        case 22:
          if (!getOperationComplete()
              .equals(other.getOperationComplete())) return false;
          break;
        case 23:
          if (!getOnBufferedDataChange()
              .equals(other.getOnBufferedDataChange())) return false;
          break;
        case 24:
          if (!getOnAlarmTransition()
              .equals(other.getOnAlarmTransition())) return false;
          break;
        case 25:
          if (!getOnAlarmProviderModeChanged()
              .equals(other.getOnAlarmProviderModeChanged())) return false;
          break;
        case 0:
        default:
      }
      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();
      hash = (37 * hash) + FAMILY_FIELD_NUMBER;
      hash = (53 * hash) + family_;
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + SERVER_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getServerHandle();
      hash = (37 * hash) + ITEM_HANDLE_FIELD_NUMBER;
      hash = (53 * hash) + getItemHandle();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (37 * hash) + QUALITY_FIELD_NUMBER;
      hash = (53 * hash) + getQuality();
      if (hasSourceTimestamp()) {
        hash = (37 * hash) + SOURCE_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getSourceTimestamp().hashCode();
      }
      if (getStatusesCount() > 0) {
        hash = (37 * hash) + STATUSES_FIELD_NUMBER;
        hash = (53 * hash) + getStatusesList().hashCode();
      }
      hash = (37 * hash) + WORKER_SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getWorkerSequence());
      if (hasWorkerTimestamp()) {
        hash = (37 * hash) + WORKER_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getWorkerTimestamp().hashCode();
      }
      if (hasGatewayReceiveTimestamp()) {
        hash = (37 * hash) + GATEWAY_RECEIVE_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getGatewayReceiveTimestamp().hashCode();
      }
      if (hasHresult()) {
        hash = (37 * hash) + HRESULT_FIELD_NUMBER;
        hash = (53 * hash) + getHresult();
      }
      hash = (37 * hash) + RAW_STATUS_FIELD_NUMBER;
      hash = (53 * hash) + getRawStatus().hashCode();
      if (hasReplayGap()) {
        hash = (37 * hash) + REPLAY_GAP_FIELD_NUMBER;
        hash = (53 * hash) + getReplayGap().hashCode();
      }
      switch (bodyCase_) {
        case 20:
          hash = (37 * hash) + ON_DATA_CHANGE_FIELD_NUMBER;
          hash = (53 * hash) + getOnDataChange().hashCode();
          break;
        case 21:
          hash = (37 * hash) + ON_WRITE_COMPLETE_FIELD_NUMBER;
          hash = (53 * hash) + getOnWriteComplete().hashCode();
          break;
        case 22:
          hash = (37 * hash) + OPERATION_COMPLETE_FIELD_NUMBER;
          hash = (53 * hash) + getOperationComplete().hashCode();
          break;
        case 23:
          hash = (37 * hash) + ON_BUFFERED_DATA_CHANGE_FIELD_NUMBER;
          hash = (53 * hash) + getOnBufferedDataChange().hashCode();
          break;
        case 24:
          hash = (37 * hash) + ON_ALARM_TRANSITION_FIELD_NUMBER;
          hash = (53 * hash) + getOnAlarmTransition().hashCode();
          break;
        case 25:
          hash = (37 * hash) + ON_ALARM_PROVIDER_MODE_CHANGED_FIELD_NUMBER;
          hash = (53 * hash) + getOnAlarmProviderModeChanged().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent 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 mxaccess_gateway.v1.MxaccessGateway.MxEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent 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 mxaccess_gateway.v1.MxaccessGateway.MxEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent 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(mxaccess_gateway.v1.MxaccessGateway.MxEvent 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 mxaccess_gateway.v1.MxEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxEvent)
        mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxEvent.class, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
          internalGetSourceTimestampFieldBuilder();
          internalGetStatusesFieldBuilder();
          internalGetWorkerTimestampFieldBuilder();
          internalGetGatewayReceiveTimestampFieldBuilder();
          internalGetReplayGapFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        family_ = 0;
        sessionId_ = "";
        serverHandle_ = 0;
        itemHandle_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        quality_ = 0;
        sourceTimestamp_ = null;
        if (sourceTimestampBuilder_ != null) {
          sourceTimestampBuilder_.dispose();
          sourceTimestampBuilder_ = null;
        }
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
        } else {
          statuses_ = null;
          statusesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        workerSequence_ = 0L;
        workerTimestamp_ = null;
        if (workerTimestampBuilder_ != null) {
          workerTimestampBuilder_.dispose();
          workerTimestampBuilder_ = null;
        }
        gatewayReceiveTimestamp_ = null;
        if (gatewayReceiveTimestampBuilder_ != null) {
          gatewayReceiveTimestampBuilder_.dispose();
          gatewayReceiveTimestampBuilder_ = null;
        }
        hresult_ = 0;
        rawStatus_ = "";
        replayGap_ = null;
        if (replayGapBuilder_ != null) {
          replayGapBuilder_.dispose();
          replayGapBuilder_ = null;
        }
        if (onDataChangeBuilder_ != null) {
          onDataChangeBuilder_.clear();
        }
        if (onWriteCompleteBuilder_ != null) {
          onWriteCompleteBuilder_.clear();
        }
        if (operationCompleteBuilder_ != null) {
          operationCompleteBuilder_.clear();
        }
        if (onBufferedDataChangeBuilder_ != null) {
          onBufferedDataChangeBuilder_.clear();
        }
        if (onAlarmTransitionBuilder_ != null) {
          onAlarmTransitionBuilder_.clear();
        }
        if (onAlarmProviderModeChangedBuilder_ != null) {
          onAlarmProviderModeChangedBuilder_.clear();
        }
        bodyCase_ = 0;
        body_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent build() {
        mxaccess_gateway.v1.MxaccessGateway.MxEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxEvent result = new mxaccess_gateway.v1.MxaccessGateway.MxEvent(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.MxEvent result) {
        if (statusesBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0)) {
            statuses_ = java.util.Collections.unmodifiableList(statuses_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.statuses_ = statuses_;
        } else {
          result.statuses_ = statusesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.family_ = family_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.serverHandle_ = serverHandle_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.itemHandle_ = itemHandle_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.quality_ = quality_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.sourceTimestamp_ = sourceTimestampBuilder_ == null
              ? sourceTimestamp_
              : sourceTimestampBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.workerSequence_ = workerSequence_;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.workerTimestamp_ = workerTimestampBuilder_ == null
              ? workerTimestamp_
              : workerTimestampBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.gatewayReceiveTimestamp_ = gatewayReceiveTimestampBuilder_ == null
              ? gatewayReceiveTimestamp_
              : gatewayReceiveTimestampBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.hresult_ = hresult_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.rawStatus_ = rawStatus_;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.replayGap_ = replayGapBuilder_ == null
              ? replayGap_
              : replayGapBuilder_.build();
          to_bitField0_ |= 0x00000020;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartialOneofs(mxaccess_gateway.v1.MxaccessGateway.MxEvent result) {
        result.bodyCase_ = bodyCase_;
        result.body_ = this.body_;
        if (bodyCase_ == 20 &&
            onDataChangeBuilder_ != null) {
          result.body_ = onDataChangeBuilder_.build();
        }
        if (bodyCase_ == 21 &&
            onWriteCompleteBuilder_ != null) {
          result.body_ = onWriteCompleteBuilder_.build();
        }
        if (bodyCase_ == 22 &&
            operationCompleteBuilder_ != null) {
          result.body_ = operationCompleteBuilder_.build();
        }
        if (bodyCase_ == 23 &&
            onBufferedDataChangeBuilder_ != null) {
          result.body_ = onBufferedDataChangeBuilder_.build();
        }
        if (bodyCase_ == 24 &&
            onAlarmTransitionBuilder_ != null) {
          result.body_ = onAlarmTransitionBuilder_.build();
        }
        if (bodyCase_ == 25 &&
            onAlarmProviderModeChangedBuilder_ != null) {
          result.body_ = onAlarmProviderModeChangedBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxEvent) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxEvent other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance()) return this;
        if (other.family_ != 0) {
          setFamilyValue(other.getFamilyValue());
        }
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getServerHandle() != 0) {
          setServerHandle(other.getServerHandle());
        }
        if (other.getItemHandle() != 0) {
          setItemHandle(other.getItemHandle());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        if (other.getQuality() != 0) {
          setQuality(other.getQuality());
        }
        if (other.hasSourceTimestamp()) {
          mergeSourceTimestamp(other.getSourceTimestamp());
        }
        if (statusesBuilder_ == null) {
          if (!other.statuses_.isEmpty()) {
            if (statuses_.isEmpty()) {
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureStatusesIsMutable();
              statuses_.addAll(other.statuses_);
            }
            onChanged();
          }
        } else {
          if (!other.statuses_.isEmpty()) {
            if (statusesBuilder_.isEmpty()) {
              statusesBuilder_.dispose();
              statusesBuilder_ = null;
              statuses_ = other.statuses_;
              bitField0_ = (bitField0_ & ~0x00000080);
              statusesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetStatusesFieldBuilder() : null;
            } else {
              statusesBuilder_.addAllMessages(other.statuses_);
            }
          }
        }
        if (other.getWorkerSequence() != 0L) {
          setWorkerSequence(other.getWorkerSequence());
        }
        if (other.hasWorkerTimestamp()) {
          mergeWorkerTimestamp(other.getWorkerTimestamp());
        }
        if (other.hasGatewayReceiveTimestamp()) {
          mergeGatewayReceiveTimestamp(other.getGatewayReceiveTimestamp());
        }
        if (other.hasHresult()) {
          setHresult(other.getHresult());
        }
        if (!other.getRawStatus().isEmpty()) {
          rawStatus_ = other.rawStatus_;
          bitField0_ |= 0x00001000;
          onChanged();
        }
        if (other.hasReplayGap()) {
          mergeReplayGap(other.getReplayGap());
        }
        switch (other.getBodyCase()) {
          case ON_DATA_CHANGE: {
            mergeOnDataChange(other.getOnDataChange());
            break;
          }
          case ON_WRITE_COMPLETE: {
            mergeOnWriteComplete(other.getOnWriteComplete());
            break;
          }
          case OPERATION_COMPLETE: {
            mergeOperationComplete(other.getOperationComplete());
            break;
          }
          case ON_BUFFERED_DATA_CHANGE: {
            mergeOnBufferedDataChange(other.getOnBufferedDataChange());
            break;
          }
          case ON_ALARM_TRANSITION: {
            mergeOnAlarmTransition(other.getOnAlarmTransition());
            break;
          }
          case ON_ALARM_PROVIDER_MODE_CHANGED: {
            mergeOnAlarmProviderModeChanged(other.getOnAlarmProviderModeChanged());
            break;
          }
          case BODY_NOT_SET: {
            break;
          }
        }
        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 8: {
                family_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                serverHandle_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                itemHandle_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                quality_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                input.readMessage(
                    internalGetSourceTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.parser(),
                        extensionRegistry);
                if (statusesBuilder_ == null) {
                  ensureStatusesIsMutable();
                  statuses_.add(m);
                } else {
                  statusesBuilder_.addMessage(m);
                }
                break;
              } // case 66
              case 72: {
                workerSequence_ = input.readUInt64();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 82: {
                input.readMessage(
                    internalGetWorkerTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    internalGetGatewayReceiveTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 96: {
                hresult_ = input.readInt32();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 106: {
                rawStatus_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    internalGetReplayGapFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 162: {
                input.readMessage(
                    internalGetOnDataChangeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 20;
                break;
              } // case 162
              case 170: {
                input.readMessage(
                    internalGetOnWriteCompleteFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 21;
                break;
              } // case 170
              case 178: {
                input.readMessage(
                    internalGetOperationCompleteFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 22;
                break;
              } // case 178
              case 186: {
                input.readMessage(
                    internalGetOnBufferedDataChangeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 23;
                break;
              } // case 186
              case 194: {
                input.readMessage(
                    internalGetOnAlarmTransitionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 24;
                break;
              } // case 194
              case 202: {
                input.readMessage(
                    internalGetOnAlarmProviderModeChangedFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 25;
                break;
              } // case 202
              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 bodyCase_ = 0;
      private java.lang.Object body_;
      public BodyCase
          getBodyCase() {
        return BodyCase.forNumber(
            bodyCase_);
      }

      public Builder clearBody() {
        bodyCase_ = 0;
        body_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int family_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
       * @return The enum numeric value on the wire for family.
       */
      @java.lang.Override public int getFamilyValue() {
        return family_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
       * @param value The enum numeric value on the wire for family to set.
       * @return This builder for chaining.
       */
      public Builder setFamilyValue(int value) {
        family_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
       * @return The family.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxEventFamily getFamily() {
        mxaccess_gateway.v1.MxaccessGateway.MxEventFamily result = mxaccess_gateway.v1.MxaccessGateway.MxEventFamily.forNumber(family_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxEventFamily.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
       * @param value The family to set.
       * @return This builder for chaining.
       */
      public Builder setFamily(mxaccess_gateway.v1.MxaccessGateway.MxEventFamily value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        family_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEventFamily family = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFamily() {
        bitField0_ = (bitField0_ & ~0x00000001);
        family_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object sessionId_ = "";
      /**
       * <code>string session_id = 2;</code>
       * @return The sessionId.
       */
      public java.lang.String getSessionId() {
        java.lang.Object ref = sessionId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sessionId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string session_id = 2;</code>
       * @return The bytes for sessionId.
       */
      public com.google.protobuf.ByteString
          getSessionIdBytes() {
        java.lang.Object ref = sessionId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sessionId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string session_id = 2;</code>
       * @param value The sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sessionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSessionId() {
        sessionId_ = getDefaultInstance().getSessionId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string session_id = 2;</code>
       * @param value The bytes for sessionId to set.
       * @return This builder for chaining.
       */
      public Builder setSessionIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sessionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int serverHandle_ ;
      /**
       * <code>int32 server_handle = 3;</code>
       * @return The serverHandle.
       */
      @java.lang.Override
      public int getServerHandle() {
        return serverHandle_;
      }
      /**
       * <code>int32 server_handle = 3;</code>
       * @param value The serverHandle to set.
       * @return This builder for chaining.
       */
      public Builder setServerHandle(int value) {

        serverHandle_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 server_handle = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerHandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        serverHandle_ = 0;
        onChanged();
        return this;
      }

      private int itemHandle_ ;
      /**
       * <code>int32 item_handle = 4;</code>
       * @return The itemHandle.
       */
      @java.lang.Override
      public int getItemHandle() {
        return itemHandle_;
      }
      /**
       * <code>int32 item_handle = 4;</code>
       * @param value The itemHandle to set.
       * @return This builder for chaining.
       */
      public Builder setItemHandle(int value) {

        itemHandle_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 item_handle = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemHandle() {
        bitField0_ = (bitField0_ & ~0x00000008);
        itemHandle_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000010);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue value = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      private int quality_ ;
      /**
       * <code>int32 quality = 6;</code>
       * @return The quality.
       */
      @java.lang.Override
      public int getQuality() {
        return quality_;
      }
      /**
       * <code>int32 quality = 6;</code>
       * @param value The quality to set.
       * @return This builder for chaining.
       */
      public Builder setQuality(int value) {

        quality_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 quality = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearQuality() {
        bitField0_ = (bitField0_ & ~0x00000020);
        quality_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp sourceTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> sourceTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       * @return Whether the sourceTimestamp field is set.
       */
      public boolean hasSourceTimestamp() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       * @return The sourceTimestamp.
       */
      public com.google.protobuf.Timestamp getSourceTimestamp() {
        if (sourceTimestampBuilder_ == null) {
          return sourceTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
        } else {
          return sourceTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       */
      public Builder setSourceTimestamp(com.google.protobuf.Timestamp value) {
        if (sourceTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sourceTimestamp_ = value;
        } else {
          sourceTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       */
      public Builder setSourceTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (sourceTimestampBuilder_ == null) {
          sourceTimestamp_ = builderForValue.build();
        } else {
          sourceTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       */
      public Builder mergeSourceTimestamp(com.google.protobuf.Timestamp value) {
        if (sourceTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            sourceTimestamp_ != null &&
            sourceTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getSourceTimestampBuilder().mergeFrom(value);
          } else {
            sourceTimestamp_ = value;
          }
        } else {
          sourceTimestampBuilder_.mergeFrom(value);
        }
        if (sourceTimestamp_ != null) {
          bitField0_ |= 0x00000040;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       */
      public Builder clearSourceTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000040);
        sourceTimestamp_ = null;
        if (sourceTimestampBuilder_ != null) {
          sourceTimestampBuilder_.dispose();
          sourceTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       */
      public com.google.protobuf.Timestamp.Builder getSourceTimestampBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return internalGetSourceTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getSourceTimestampOrBuilder() {
        if (sourceTimestampBuilder_ != null) {
          return sourceTimestampBuilder_.getMessageOrBuilder();
        } else {
          return sourceTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : sourceTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp source_timestamp = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetSourceTimestampFieldBuilder() {
        if (sourceTimestampBuilder_ == null) {
          sourceTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getSourceTimestamp(),
                  getParentForChildren(),
                  isClean());
          sourceTimestamp_ = null;
        }
        return sourceTimestampBuilder_;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> statuses_ =
        java.util.Collections.emptyList();
      private void ensureStatusesIsMutable() {
        if (!((bitField0_ & 0x00000080) != 0)) {
          statuses_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy>(statuses_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> statusesBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> getStatusesList() {
        if (statusesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(statuses_);
        } else {
          return statusesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public int getStatusesCount() {
        if (statusesBuilder_ == null) {
          return statuses_.size();
        } else {
          return statusesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatuses(int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);
        } else {
          return statusesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.set(index, value);
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder setStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.set(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder addStatuses(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatusesIsMutable();
          statuses_.add(index, value);
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder addStatuses(
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder addStatuses(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.add(index, builderForValue.build());
          onChanged();
        } else {
          statusesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder addAllStatuses(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy> values) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, statuses_);
          onChanged();
        } else {
          statusesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder clearStatuses() {
        if (statusesBuilder_ == null) {
          statuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          statusesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public Builder removeStatuses(int index) {
        if (statusesBuilder_ == null) {
          ensureStatusesIsMutable();
          statuses_.remove(index);
          onChanged();
        } else {
          statusesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder getStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusesOrBuilder(
          int index) {
        if (statusesBuilder_ == null) {
          return statuses_.get(index);  } else {
          return statusesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
           getStatusesOrBuilderList() {
        if (statusesBuilder_ != null) {
          return statusesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(statuses_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder() {
        return internalGetStatusesFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder addStatusesBuilder(
          int index) {
        return internalGetStatusesFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxStatusProxy statuses = 8;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder> 
           getStatusesBuilderList() {
        return internalGetStatusesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
          internalGetStatusesFieldBuilder() {
        if (statusesBuilder_ == null) {
          statusesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder>(
                  statuses_,
                  ((bitField0_ & 0x00000080) != 0),
                  getParentForChildren(),
                  isClean());
          statuses_ = null;
        }
        return statusesBuilder_;
      }

      private long workerSequence_ ;
      /**
       * <code>uint64 worker_sequence = 9;</code>
       * @return The workerSequence.
       */
      @java.lang.Override
      public long getWorkerSequence() {
        return workerSequence_;
      }
      /**
       * <code>uint64 worker_sequence = 9;</code>
       * @param value The workerSequence to set.
       * @return This builder for chaining.
       */
      public Builder setWorkerSequence(long value) {

        workerSequence_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 worker_sequence = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearWorkerSequence() {
        bitField0_ = (bitField0_ & ~0x00000100);
        workerSequence_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp workerTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> workerTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       * @return Whether the workerTimestamp field is set.
       */
      public boolean hasWorkerTimestamp() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       * @return The workerTimestamp.
       */
      public com.google.protobuf.Timestamp getWorkerTimestamp() {
        if (workerTimestampBuilder_ == null) {
          return workerTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : workerTimestamp_;
        } else {
          return workerTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       */
      public Builder setWorkerTimestamp(com.google.protobuf.Timestamp value) {
        if (workerTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          workerTimestamp_ = value;
        } else {
          workerTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       */
      public Builder setWorkerTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (workerTimestampBuilder_ == null) {
          workerTimestamp_ = builderForValue.build();
        } else {
          workerTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       */
      public Builder mergeWorkerTimestamp(com.google.protobuf.Timestamp value) {
        if (workerTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0) &&
            workerTimestamp_ != null &&
            workerTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getWorkerTimestampBuilder().mergeFrom(value);
          } else {
            workerTimestamp_ = value;
          }
        } else {
          workerTimestampBuilder_.mergeFrom(value);
        }
        if (workerTimestamp_ != null) {
          bitField0_ |= 0x00000200;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       */
      public Builder clearWorkerTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000200);
        workerTimestamp_ = null;
        if (workerTimestampBuilder_ != null) {
          workerTimestampBuilder_.dispose();
          workerTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       */
      public com.google.protobuf.Timestamp.Builder getWorkerTimestampBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return internalGetWorkerTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getWorkerTimestampOrBuilder() {
        if (workerTimestampBuilder_ != null) {
          return workerTimestampBuilder_.getMessageOrBuilder();
        } else {
          return workerTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : workerTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp worker_timestamp = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetWorkerTimestampFieldBuilder() {
        if (workerTimestampBuilder_ == null) {
          workerTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getWorkerTimestamp(),
                  getParentForChildren(),
                  isClean());
          workerTimestamp_ = null;
        }
        return workerTimestampBuilder_;
      }

      private com.google.protobuf.Timestamp gatewayReceiveTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> gatewayReceiveTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       * @return Whether the gatewayReceiveTimestamp field is set.
       */
      public boolean hasGatewayReceiveTimestamp() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       * @return The gatewayReceiveTimestamp.
       */
      public com.google.protobuf.Timestamp getGatewayReceiveTimestamp() {
        if (gatewayReceiveTimestampBuilder_ == null) {
          return gatewayReceiveTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : gatewayReceiveTimestamp_;
        } else {
          return gatewayReceiveTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       */
      public Builder setGatewayReceiveTimestamp(com.google.protobuf.Timestamp value) {
        if (gatewayReceiveTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gatewayReceiveTimestamp_ = value;
        } else {
          gatewayReceiveTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       */
      public Builder setGatewayReceiveTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (gatewayReceiveTimestampBuilder_ == null) {
          gatewayReceiveTimestamp_ = builderForValue.build();
        } else {
          gatewayReceiveTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       */
      public Builder mergeGatewayReceiveTimestamp(com.google.protobuf.Timestamp value) {
        if (gatewayReceiveTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0) &&
            gatewayReceiveTimestamp_ != null &&
            gatewayReceiveTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getGatewayReceiveTimestampBuilder().mergeFrom(value);
          } else {
            gatewayReceiveTimestamp_ = value;
          }
        } else {
          gatewayReceiveTimestampBuilder_.mergeFrom(value);
        }
        if (gatewayReceiveTimestamp_ != null) {
          bitField0_ |= 0x00000400;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       */
      public Builder clearGatewayReceiveTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000400);
        gatewayReceiveTimestamp_ = null;
        if (gatewayReceiveTimestampBuilder_ != null) {
          gatewayReceiveTimestampBuilder_.dispose();
          gatewayReceiveTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       */
      public com.google.protobuf.Timestamp.Builder getGatewayReceiveTimestampBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return internalGetGatewayReceiveTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getGatewayReceiveTimestampOrBuilder() {
        if (gatewayReceiveTimestampBuilder_ != null) {
          return gatewayReceiveTimestampBuilder_.getMessageOrBuilder();
        } else {
          return gatewayReceiveTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : gatewayReceiveTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp gateway_receive_timestamp = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetGatewayReceiveTimestampFieldBuilder() {
        if (gatewayReceiveTimestampBuilder_ == null) {
          gatewayReceiveTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getGatewayReceiveTimestamp(),
                  getParentForChildren(),
                  isClean());
          gatewayReceiveTimestamp_ = null;
        }
        return gatewayReceiveTimestampBuilder_;
      }

      private int hresult_ ;
      /**
       * <code>optional int32 hresult = 12;</code>
       * @return Whether the hresult field is set.
       */
      @java.lang.Override
      public boolean hasHresult() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional int32 hresult = 12;</code>
       * @return The hresult.
       */
      @java.lang.Override
      public int getHresult() {
        return hresult_;
      }
      /**
       * <code>optional int32 hresult = 12;</code>
       * @param value The hresult to set.
       * @return This builder for chaining.
       */
      public Builder setHresult(int value) {

        hresult_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 hresult = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearHresult() {
        bitField0_ = (bitField0_ & ~0x00000800);
        hresult_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object rawStatus_ = "";
      /**
       * <code>string raw_status = 13;</code>
       * @return The rawStatus.
       */
      public java.lang.String getRawStatus() {
        java.lang.Object ref = rawStatus_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          rawStatus_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string raw_status = 13;</code>
       * @return The bytes for rawStatus.
       */
      public com.google.protobuf.ByteString
          getRawStatusBytes() {
        java.lang.Object ref = rawStatus_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rawStatus_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string raw_status = 13;</code>
       * @param value The rawStatus to set.
       * @return This builder for chaining.
       */
      public Builder setRawStatus(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rawStatus_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>string raw_status = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawStatus() {
        rawStatus_ = getDefaultInstance().getRawStatus();
        bitField0_ = (bitField0_ & ~0x00001000);
        onChanged();
        return this;
      }
      /**
       * <code>string raw_status = 13;</code>
       * @param value The bytes for rawStatus to set.
       * @return This builder for chaining.
       */
      public Builder setRawStatusBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        rawStatus_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.ReplayGap replayGap_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ReplayGap, mxaccess_gateway.v1.MxaccessGateway.ReplayGap.Builder, mxaccess_gateway.v1.MxaccessGateway.ReplayGapOrBuilder> replayGapBuilder_;
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       * @return Whether the replayGap field is set.
       */
      public boolean hasReplayGap() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       * @return The replayGap.
       */
      public mxaccess_gateway.v1.MxaccessGateway.ReplayGap getReplayGap() {
        if (replayGapBuilder_ == null) {
          return replayGap_ == null ? mxaccess_gateway.v1.MxaccessGateway.ReplayGap.getDefaultInstance() : replayGap_;
        } else {
          return replayGapBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       */
      public Builder setReplayGap(mxaccess_gateway.v1.MxaccessGateway.ReplayGap value) {
        if (replayGapBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          replayGap_ = value;
        } else {
          replayGapBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       */
      public Builder setReplayGap(
          mxaccess_gateway.v1.MxaccessGateway.ReplayGap.Builder builderForValue) {
        if (replayGapBuilder_ == null) {
          replayGap_ = builderForValue.build();
        } else {
          replayGapBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       */
      public Builder mergeReplayGap(mxaccess_gateway.v1.MxaccessGateway.ReplayGap value) {
        if (replayGapBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            replayGap_ != null &&
            replayGap_ != mxaccess_gateway.v1.MxaccessGateway.ReplayGap.getDefaultInstance()) {
            getReplayGapBuilder().mergeFrom(value);
          } else {
            replayGap_ = value;
          }
        } else {
          replayGapBuilder_.mergeFrom(value);
        }
        if (replayGap_ != null) {
          bitField0_ |= 0x00002000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       */
      public Builder clearReplayGap() {
        bitField0_ = (bitField0_ & ~0x00002000);
        replayGap_ = null;
        if (replayGapBuilder_ != null) {
          replayGapBuilder_.dispose();
          replayGapBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ReplayGap.Builder getReplayGapBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return internalGetReplayGapFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ReplayGapOrBuilder getReplayGapOrBuilder() {
        if (replayGapBuilder_ != null) {
          return replayGapBuilder_.getMessageOrBuilder();
        } else {
          return replayGap_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.ReplayGap.getDefaultInstance() : replayGap_;
        }
      }
      /**
       * <pre>
       * Gateway-synthesized reconnect-replay gap signal. Set ONLY on the single
       * sentinel MxEvent the gateway emits at the head of a StreamEvents stream
       * that was resumed via StreamEventsRequest.after_worker_sequence when the
       * requested sequence is older than the oldest event still retained in the
       * session replay ring (i.e. events were evicted and cannot be replayed).
       * On that sentinel, `family` is UNSPECIFIED, the `body` oneof is unset, and
       * no per-item fields (server_handle/item_handle/value/...) are populated;
       * clients MUST treat a present `replay_gap` as "you missed events — discard
       * local state and re-snapshot" and read `requested_after_sequence` /
       * `oldest_available_sequence` from it. Unset on every normal MXAccess event.
       * This field is ONLY ever set on events returned from the StreamEvents server
       * stream; it is ALWAYS unset on events in DrainEventsReply (the diagnostic
       * drain path never emits the sentinel).
       * Additive (proto3): existing clients that ignore this field continue to
       * deserialize the stream unchanged.
       * </pre>
       *
       * <code>optional .mxaccess_gateway.v1.ReplayGap replay_gap = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ReplayGap, mxaccess_gateway.v1.MxaccessGateway.ReplayGap.Builder, mxaccess_gateway.v1.MxaccessGateway.ReplayGapOrBuilder> 
          internalGetReplayGapFieldBuilder() {
        if (replayGapBuilder_ == null) {
          replayGapBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ReplayGap, mxaccess_gateway.v1.MxaccessGateway.ReplayGap.Builder, mxaccess_gateway.v1.MxaccessGateway.ReplayGapOrBuilder>(
                  getReplayGap(),
                  getParentForChildren(),
                  isClean());
          replayGap_ = null;
        }
        return replayGapBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEventOrBuilder> onDataChangeBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       * @return Whether the onDataChange field is set.
       */
      @java.lang.Override
      public boolean hasOnDataChange() {
        return bodyCase_ == 20;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       * @return The onDataChange.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent getOnDataChange() {
        if (onDataChangeBuilder_ == null) {
          if (bodyCase_ == 20) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance();
        } else {
          if (bodyCase_ == 20) {
            return onDataChangeBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       */
      public Builder setOnDataChange(mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent value) {
        if (onDataChangeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          onDataChangeBuilder_.setMessage(value);
        }
        bodyCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       */
      public Builder setOnDataChange(
          mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.Builder builderForValue) {
        if (onDataChangeBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          onDataChangeBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       */
      public Builder mergeOnDataChange(mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent value) {
        if (onDataChangeBuilder_ == null) {
          if (bodyCase_ == 20 &&
              body_ != mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance()) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.newBuilder((mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 20) {
            onDataChangeBuilder_.mergeFrom(value);
          } else {
            onDataChangeBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       */
      public Builder clearOnDataChange() {
        if (onDataChangeBuilder_ == null) {
          if (bodyCase_ == 20) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 20) {
            bodyCase_ = 0;
            body_ = null;
          }
          onDataChangeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.Builder getOnDataChangeBuilder() {
        return internalGetOnDataChangeFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEventOrBuilder getOnDataChangeOrBuilder() {
        if ((bodyCase_ == 20) && (onDataChangeBuilder_ != null)) {
          return onDataChangeBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 20) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnDataChangeEvent on_data_change = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEventOrBuilder> 
          internalGetOnDataChangeFieldBuilder() {
        if (onDataChangeBuilder_ == null) {
          if (!(bodyCase_ == 20)) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance();
          }
          onDataChangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEventOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 20;
        onChanged();
        return onDataChangeBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEventOrBuilder> onWriteCompleteBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       * @return Whether the onWriteComplete field is set.
       */
      @java.lang.Override
      public boolean hasOnWriteComplete() {
        return bodyCase_ == 21;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       * @return The onWriteComplete.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent getOnWriteComplete() {
        if (onWriteCompleteBuilder_ == null) {
          if (bodyCase_ == 21) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance();
        } else {
          if (bodyCase_ == 21) {
            return onWriteCompleteBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       */
      public Builder setOnWriteComplete(mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent value) {
        if (onWriteCompleteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          onWriteCompleteBuilder_.setMessage(value);
        }
        bodyCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       */
      public Builder setOnWriteComplete(
          mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.Builder builderForValue) {
        if (onWriteCompleteBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          onWriteCompleteBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       */
      public Builder mergeOnWriteComplete(mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent value) {
        if (onWriteCompleteBuilder_ == null) {
          if (bodyCase_ == 21 &&
              body_ != mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance()) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.newBuilder((mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 21) {
            onWriteCompleteBuilder_.mergeFrom(value);
          } else {
            onWriteCompleteBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 21;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       */
      public Builder clearOnWriteComplete() {
        if (onWriteCompleteBuilder_ == null) {
          if (bodyCase_ == 21) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 21) {
            bodyCase_ = 0;
            body_ = null;
          }
          onWriteCompleteBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.Builder getOnWriteCompleteBuilder() {
        return internalGetOnWriteCompleteFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEventOrBuilder getOnWriteCompleteOrBuilder() {
        if ((bodyCase_ == 21) && (onWriteCompleteBuilder_ != null)) {
          return onWriteCompleteBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 21) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnWriteCompleteEvent on_write_complete = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEventOrBuilder> 
          internalGetOnWriteCompleteFieldBuilder() {
        if (onWriteCompleteBuilder_ == null) {
          if (!(bodyCase_ == 21)) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance();
          }
          onWriteCompleteBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEventOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 21;
        onChanged();
        return onWriteCompleteBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEventOrBuilder> operationCompleteBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       * @return Whether the operationComplete field is set.
       */
      @java.lang.Override
      public boolean hasOperationComplete() {
        return bodyCase_ == 22;
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       * @return The operationComplete.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent getOperationComplete() {
        if (operationCompleteBuilder_ == null) {
          if (bodyCase_ == 22) {
            return (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance();
        } else {
          if (bodyCase_ == 22) {
            return operationCompleteBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       */
      public Builder setOperationComplete(mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent value) {
        if (operationCompleteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          operationCompleteBuilder_.setMessage(value);
        }
        bodyCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       */
      public Builder setOperationComplete(
          mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.Builder builderForValue) {
        if (operationCompleteBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          operationCompleteBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       */
      public Builder mergeOperationComplete(mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent value) {
        if (operationCompleteBuilder_ == null) {
          if (bodyCase_ == 22 &&
              body_ != mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance()) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.newBuilder((mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 22) {
            operationCompleteBuilder_.mergeFrom(value);
          } else {
            operationCompleteBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 22;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       */
      public Builder clearOperationComplete() {
        if (operationCompleteBuilder_ == null) {
          if (bodyCase_ == 22) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 22) {
            bodyCase_ = 0;
            body_ = null;
          }
          operationCompleteBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.Builder getOperationCompleteBuilder() {
        return internalGetOperationCompleteFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEventOrBuilder getOperationCompleteOrBuilder() {
        if ((bodyCase_ == 22) && (operationCompleteBuilder_ != null)) {
          return operationCompleteBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 22) {
            return (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OperationCompleteEvent operation_complete = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEventOrBuilder> 
          internalGetOperationCompleteFieldBuilder() {
        if (operationCompleteBuilder_ == null) {
          if (!(bodyCase_ == 22)) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance();
          }
          operationCompleteBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEventOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 22;
        onChanged();
        return operationCompleteBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEventOrBuilder> onBufferedDataChangeBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       * @return Whether the onBufferedDataChange field is set.
       */
      @java.lang.Override
      public boolean hasOnBufferedDataChange() {
        return bodyCase_ == 23;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       * @return The onBufferedDataChange.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent getOnBufferedDataChange() {
        if (onBufferedDataChangeBuilder_ == null) {
          if (bodyCase_ == 23) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance();
        } else {
          if (bodyCase_ == 23) {
            return onBufferedDataChangeBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       */
      public Builder setOnBufferedDataChange(mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent value) {
        if (onBufferedDataChangeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          onBufferedDataChangeBuilder_.setMessage(value);
        }
        bodyCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       */
      public Builder setOnBufferedDataChange(
          mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.Builder builderForValue) {
        if (onBufferedDataChangeBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          onBufferedDataChangeBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       */
      public Builder mergeOnBufferedDataChange(mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent value) {
        if (onBufferedDataChangeBuilder_ == null) {
          if (bodyCase_ == 23 &&
              body_ != mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance()) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.newBuilder((mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 23) {
            onBufferedDataChangeBuilder_.mergeFrom(value);
          } else {
            onBufferedDataChangeBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 23;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       */
      public Builder clearOnBufferedDataChange() {
        if (onBufferedDataChangeBuilder_ == null) {
          if (bodyCase_ == 23) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 23) {
            bodyCase_ = 0;
            body_ = null;
          }
          onBufferedDataChangeBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.Builder getOnBufferedDataChangeBuilder() {
        return internalGetOnBufferedDataChangeFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEventOrBuilder getOnBufferedDataChangeOrBuilder() {
        if ((bodyCase_ == 23) && (onBufferedDataChangeBuilder_ != null)) {
          return onBufferedDataChangeBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 23) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnBufferedDataChangeEvent on_buffered_data_change = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEventOrBuilder> 
          internalGetOnBufferedDataChangeFieldBuilder() {
        if (onBufferedDataChangeBuilder_ == null) {
          if (!(bodyCase_ == 23)) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance();
          }
          onBufferedDataChangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEventOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 23;
        onChanged();
        return onBufferedDataChangeBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder> onAlarmTransitionBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       * @return Whether the onAlarmTransition field is set.
       */
      @java.lang.Override
      public boolean hasOnAlarmTransition() {
        return bodyCase_ == 24;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       * @return The onAlarmTransition.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getOnAlarmTransition() {
        if (onAlarmTransitionBuilder_ == null) {
          if (bodyCase_ == 24) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
        } else {
          if (bodyCase_ == 24) {
            return onAlarmTransitionBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       */
      public Builder setOnAlarmTransition(mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent value) {
        if (onAlarmTransitionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          onAlarmTransitionBuilder_.setMessage(value);
        }
        bodyCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       */
      public Builder setOnAlarmTransition(
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder builderForValue) {
        if (onAlarmTransitionBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          onAlarmTransitionBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       */
      public Builder mergeOnAlarmTransition(mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent value) {
        if (onAlarmTransitionBuilder_ == null) {
          if (bodyCase_ == 24 &&
              body_ != mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance()) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.newBuilder((mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 24) {
            onAlarmTransitionBuilder_.mergeFrom(value);
          } else {
            onAlarmTransitionBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 24;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       */
      public Builder clearOnAlarmTransition() {
        if (onAlarmTransitionBuilder_ == null) {
          if (bodyCase_ == 24) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 24) {
            bodyCase_ = 0;
            body_ = null;
          }
          onAlarmTransitionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder getOnAlarmTransitionBuilder() {
        return internalGetOnAlarmTransitionFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder getOnAlarmTransitionOrBuilder() {
        if ((bodyCase_ == 24) && (onAlarmTransitionBuilder_ != null)) {
          return onAlarmTransitionBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 24) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent on_alarm_transition = 24;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder> 
          internalGetOnAlarmTransitionFieldBuilder() {
        if (onAlarmTransitionBuilder_ == null) {
          if (!(bodyCase_ == 24)) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
          }
          onAlarmTransitionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 24;
        onChanged();
        return onAlarmTransitionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEventOrBuilder> onAlarmProviderModeChangedBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       * @return Whether the onAlarmProviderModeChanged field is set.
       */
      @java.lang.Override
      public boolean hasOnAlarmProviderModeChanged() {
        return bodyCase_ == 25;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       * @return The onAlarmProviderModeChanged.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent getOnAlarmProviderModeChanged() {
        if (onAlarmProviderModeChangedBuilder_ == null) {
          if (bodyCase_ == 25) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance();
        } else {
          if (bodyCase_ == 25) {
            return onAlarmProviderModeChangedBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       */
      public Builder setOnAlarmProviderModeChanged(mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent value) {
        if (onAlarmProviderModeChangedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          onAlarmProviderModeChangedBuilder_.setMessage(value);
        }
        bodyCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       */
      public Builder setOnAlarmProviderModeChanged(
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.Builder builderForValue) {
        if (onAlarmProviderModeChangedBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          onAlarmProviderModeChangedBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       */
      public Builder mergeOnAlarmProviderModeChanged(mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent value) {
        if (onAlarmProviderModeChangedBuilder_ == null) {
          if (bodyCase_ == 25 &&
              body_ != mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance()) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.newBuilder((mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 25) {
            onAlarmProviderModeChangedBuilder_.mergeFrom(value);
          } else {
            onAlarmProviderModeChangedBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 25;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       */
      public Builder clearOnAlarmProviderModeChanged() {
        if (onAlarmProviderModeChangedBuilder_ == null) {
          if (bodyCase_ == 25) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 25) {
            bodyCase_ = 0;
            body_ = null;
          }
          onAlarmProviderModeChangedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.Builder getOnAlarmProviderModeChangedBuilder() {
        return internalGetOnAlarmProviderModeChangedFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEventOrBuilder getOnAlarmProviderModeChangedOrBuilder() {
        if ((bodyCase_ == 25) && (onAlarmProviderModeChangedBuilder_ != null)) {
          return onAlarmProviderModeChangedBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 25) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent on_alarm_provider_mode_changed = 25;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEventOrBuilder> 
          internalGetOnAlarmProviderModeChangedFieldBuilder() {
        if (onAlarmProviderModeChangedBuilder_ == null) {
          if (!(bodyCase_ == 25)) {
            body_ = mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance();
          }
          onAlarmProviderModeChangedBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEventOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 25;
        onChanged();
        return onAlarmProviderModeChangedBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxEvent)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxEvent();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxEvent>
        PARSER = new com.google.protobuf.AbstractParser<MxEvent>() {
      @java.lang.Override
      public MxEvent 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<MxEvent> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ReplayGapOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ReplayGap)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * The worker_sequence the client asked to resume after
     * (StreamEventsRequest.after_worker_sequence).
     * </pre>
     *
     * <code>uint64 requested_after_sequence = 1;</code>
     * @return The requestedAfterSequence.
     */
    long getRequestedAfterSequence();

    /**
     * <pre>
     * The oldest worker_sequence still retained in the replay ring and available
     * for replay. Events with worker_sequence in the open interval
     * (requested_after_sequence, oldest_available_sequence) were evicted and are
     * unrecoverable. oldest_available_sequence itself IS still retained: a client
     * that wishes to resume without incurring another gap MUST set
     * after_worker_sequence = oldest_available_sequence - 1 in the next
     * StreamEventsRequest, which will cause the server to replay starting at
     * oldest_available_sequence (the first retained event).
     * When nothing is retained (the replay ring is empty), this is the next sequence
     * that can be delivered — `highest observed + 1` — and the `oldest - 1` resume
     * formula remains valid: it resolves to the highest sequence already seen, so the
     * follow-up resume replays nothing, reports no gap, and every newer live event
     * passes. The interval evicted is unchanged.
     * </pre>
     *
     * <code>uint64 oldest_available_sequence = 2;</code>
     * @return The oldestAvailableSequence.
     */
    long getOldestAvailableSequence();
  }
  /**
   * <pre>
   * Reconnect-replay gap signal carried by a sentinel MxEvent (MxEvent.replay_gap)
   * when a client resumes StreamEvents via after_worker_sequence but the requested
   * sequence predates the oldest event still held in the session replay ring.
   * The events in the open interval (requested_after_sequence, oldest_available_sequence)
   * were evicted from the ring and cannot be replayed, so the client must
   * re-snapshot rather than assume a contiguous event history.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.ReplayGap}
   */
  public static final class ReplayGap extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ReplayGap)
      ReplayGapOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ReplayGap");
    }
    // Use ReplayGap.newBuilder() to construct.
    private ReplayGap(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ReplayGap() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReplayGap_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReplayGap_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ReplayGap.class, mxaccess_gateway.v1.MxaccessGateway.ReplayGap.Builder.class);
    }

    public static final int REQUESTED_AFTER_SEQUENCE_FIELD_NUMBER = 1;
    private long requestedAfterSequence_ = 0L;
    /**
     * <pre>
     * The worker_sequence the client asked to resume after
     * (StreamEventsRequest.after_worker_sequence).
     * </pre>
     *
     * <code>uint64 requested_after_sequence = 1;</code>
     * @return The requestedAfterSequence.
     */
    @java.lang.Override
    public long getRequestedAfterSequence() {
      return requestedAfterSequence_;
    }

    public static final int OLDEST_AVAILABLE_SEQUENCE_FIELD_NUMBER = 2;
    private long oldestAvailableSequence_ = 0L;
    /**
     * <pre>
     * The oldest worker_sequence still retained in the replay ring and available
     * for replay. Events with worker_sequence in the open interval
     * (requested_after_sequence, oldest_available_sequence) were evicted and are
     * unrecoverable. oldest_available_sequence itself IS still retained: a client
     * that wishes to resume without incurring another gap MUST set
     * after_worker_sequence = oldest_available_sequence - 1 in the next
     * StreamEventsRequest, which will cause the server to replay starting at
     * oldest_available_sequence (the first retained event).
     * When nothing is retained (the replay ring is empty), this is the next sequence
     * that can be delivered — `highest observed + 1` — and the `oldest - 1` resume
     * formula remains valid: it resolves to the highest sequence already seen, so the
     * follow-up resume replays nothing, reports no gap, and every newer live event
     * passes. The interval evicted is unchanged.
     * </pre>
     *
     * <code>uint64 oldest_available_sequence = 2;</code>
     * @return The oldestAvailableSequence.
     */
    @java.lang.Override
    public long getOldestAvailableSequence() {
      return oldestAvailableSequence_;
    }

    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 (requestedAfterSequence_ != 0L) {
        output.writeUInt64(1, requestedAfterSequence_);
      }
      if (oldestAvailableSequence_ != 0L) {
        output.writeUInt64(2, oldestAvailableSequence_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (requestedAfterSequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, requestedAfterSequence_);
      }
      if (oldestAvailableSequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, oldestAvailableSequence_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ReplayGap)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ReplayGap other = (mxaccess_gateway.v1.MxaccessGateway.ReplayGap) obj;

      if (getRequestedAfterSequence()
          != other.getRequestedAfterSequence()) return false;
      if (getOldestAvailableSequence()
          != other.getOldestAvailableSequence()) 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();
      hash = (37 * hash) + REQUESTED_AFTER_SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getRequestedAfterSequence());
      hash = (37 * hash) + OLDEST_AVAILABLE_SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getOldestAvailableSequence());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap 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 mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap 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 mxaccess_gateway.v1.MxaccessGateway.ReplayGap parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap 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(mxaccess_gateway.v1.MxaccessGateway.ReplayGap 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;
    }
    /**
     * <pre>
     * Reconnect-replay gap signal carried by a sentinel MxEvent (MxEvent.replay_gap)
     * when a client resumes StreamEvents via after_worker_sequence but the requested
     * sequence predates the oldest event still held in the session replay ring.
     * The events in the open interval (requested_after_sequence, oldest_available_sequence)
     * were evicted from the ring and cannot be replayed, so the client must
     * re-snapshot rather than assume a contiguous event history.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.ReplayGap}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ReplayGap)
        mxaccess_gateway.v1.MxaccessGateway.ReplayGapOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReplayGap_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReplayGap_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ReplayGap.class, mxaccess_gateway.v1.MxaccessGateway.ReplayGap.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ReplayGap.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestedAfterSequence_ = 0L;
        oldestAvailableSequence_ = 0L;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ReplayGap_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReplayGap getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ReplayGap.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReplayGap build() {
        mxaccess_gateway.v1.MxaccessGateway.ReplayGap result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ReplayGap buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ReplayGap result = new mxaccess_gateway.v1.MxaccessGateway.ReplayGap(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ReplayGap result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestedAfterSequence_ = requestedAfterSequence_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.oldestAvailableSequence_ = oldestAvailableSequence_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ReplayGap) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ReplayGap)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ReplayGap other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ReplayGap.getDefaultInstance()) return this;
        if (other.getRequestedAfterSequence() != 0L) {
          setRequestedAfterSequence(other.getRequestedAfterSequence());
        }
        if (other.getOldestAvailableSequence() != 0L) {
          setOldestAvailableSequence(other.getOldestAvailableSequence());
        }
        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 8: {
                requestedAfterSequence_ = input.readUInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                oldestAvailableSequence_ = input.readUInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              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 long requestedAfterSequence_ ;
      /**
       * <pre>
       * The worker_sequence the client asked to resume after
       * (StreamEventsRequest.after_worker_sequence).
       * </pre>
       *
       * <code>uint64 requested_after_sequence = 1;</code>
       * @return The requestedAfterSequence.
       */
      @java.lang.Override
      public long getRequestedAfterSequence() {
        return requestedAfterSequence_;
      }
      /**
       * <pre>
       * The worker_sequence the client asked to resume after
       * (StreamEventsRequest.after_worker_sequence).
       * </pre>
       *
       * <code>uint64 requested_after_sequence = 1;</code>
       * @param value The requestedAfterSequence to set.
       * @return This builder for chaining.
       */
      public Builder setRequestedAfterSequence(long value) {

        requestedAfterSequence_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The worker_sequence the client asked to resume after
       * (StreamEventsRequest.after_worker_sequence).
       * </pre>
       *
       * <code>uint64 requested_after_sequence = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestedAfterSequence() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestedAfterSequence_ = 0L;
        onChanged();
        return this;
      }

      private long oldestAvailableSequence_ ;
      /**
       * <pre>
       * The oldest worker_sequence still retained in the replay ring and available
       * for replay. Events with worker_sequence in the open interval
       * (requested_after_sequence, oldest_available_sequence) were evicted and are
       * unrecoverable. oldest_available_sequence itself IS still retained: a client
       * that wishes to resume without incurring another gap MUST set
       * after_worker_sequence = oldest_available_sequence - 1 in the next
       * StreamEventsRequest, which will cause the server to replay starting at
       * oldest_available_sequence (the first retained event).
       * When nothing is retained (the replay ring is empty), this is the next sequence
       * that can be delivered — `highest observed + 1` — and the `oldest - 1` resume
       * formula remains valid: it resolves to the highest sequence already seen, so the
       * follow-up resume replays nothing, reports no gap, and every newer live event
       * passes. The interval evicted is unchanged.
       * </pre>
       *
       * <code>uint64 oldest_available_sequence = 2;</code>
       * @return The oldestAvailableSequence.
       */
      @java.lang.Override
      public long getOldestAvailableSequence() {
        return oldestAvailableSequence_;
      }
      /**
       * <pre>
       * The oldest worker_sequence still retained in the replay ring and available
       * for replay. Events with worker_sequence in the open interval
       * (requested_after_sequence, oldest_available_sequence) were evicted and are
       * unrecoverable. oldest_available_sequence itself IS still retained: a client
       * that wishes to resume without incurring another gap MUST set
       * after_worker_sequence = oldest_available_sequence - 1 in the next
       * StreamEventsRequest, which will cause the server to replay starting at
       * oldest_available_sequence (the first retained event).
       * When nothing is retained (the replay ring is empty), this is the next sequence
       * that can be delivered — `highest observed + 1` — and the `oldest - 1` resume
       * formula remains valid: it resolves to the highest sequence already seen, so the
       * follow-up resume replays nothing, reports no gap, and every newer live event
       * passes. The interval evicted is unchanged.
       * </pre>
       *
       * <code>uint64 oldest_available_sequence = 2;</code>
       * @param value The oldestAvailableSequence to set.
       * @return This builder for chaining.
       */
      public Builder setOldestAvailableSequence(long value) {

        oldestAvailableSequence_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The oldest worker_sequence still retained in the replay ring and available
       * for replay. Events with worker_sequence in the open interval
       * (requested_after_sequence, oldest_available_sequence) were evicted and are
       * unrecoverable. oldest_available_sequence itself IS still retained: a client
       * that wishes to resume without incurring another gap MUST set
       * after_worker_sequence = oldest_available_sequence - 1 in the next
       * StreamEventsRequest, which will cause the server to replay starting at
       * oldest_available_sequence (the first retained event).
       * When nothing is retained (the replay ring is empty), this is the next sequence
       * that can be delivered — `highest observed + 1` — and the `oldest - 1` resume
       * formula remains valid: it resolves to the highest sequence already seen, so the
       * follow-up resume replays nothing, reports no gap, and every newer live event
       * passes. The interval evicted is unchanged.
       * </pre>
       *
       * <code>uint64 oldest_available_sequence = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOldestAvailableSequence() {
        bitField0_ = (bitField0_ & ~0x00000002);
        oldestAvailableSequence_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ReplayGap)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ReplayGap)
    private static final mxaccess_gateway.v1.MxaccessGateway.ReplayGap DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ReplayGap();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ReplayGap getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ReplayGap>
        PARSER = new com.google.protobuf.AbstractParser<ReplayGap>() {
      @java.lang.Override
      public ReplayGap 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<ReplayGap> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ReplayGap getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OnDataChangeEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OnDataChangeEvent)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.OnDataChangeEvent}
   */
  public static final class OnDataChangeEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OnDataChangeEvent)
      OnDataChangeEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OnDataChangeEvent");
    }
    // Use OnDataChangeEvent.newBuilder() to construct.
    private OnDataChangeEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OnDataChangeEvent() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnDataChangeEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnDataChangeEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.Builder.class);
    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent other = (mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent 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(mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent 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 mxaccess_gateway.v1.OnDataChangeEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OnDataChangeEvent)
        mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnDataChangeEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnDataChangeEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnDataChangeEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent build() {
        mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent result = new mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent.getDefaultInstance()) return this;
        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;
              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;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OnDataChangeEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OnDataChangeEvent)
    private static final mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OnDataChangeEvent>
        PARSER = new com.google.protobuf.AbstractParser<OnDataChangeEvent>() {
      @java.lang.Override
      public OnDataChangeEvent 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<OnDataChangeEvent> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnDataChangeEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OnWriteCompleteEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OnWriteCompleteEvent)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.OnWriteCompleteEvent}
   */
  public static final class OnWriteCompleteEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OnWriteCompleteEvent)
      OnWriteCompleteEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OnWriteCompleteEvent");
    }
    // Use OnWriteCompleteEvent.newBuilder() to construct.
    private OnWriteCompleteEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OnWriteCompleteEvent() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.Builder.class);
    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent other = (mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent 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(mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent 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 mxaccess_gateway.v1.OnWriteCompleteEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OnWriteCompleteEvent)
        mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent build() {
        mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent result = new mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent.getDefaultInstance()) return this;
        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;
              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;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OnWriteCompleteEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OnWriteCompleteEvent)
    private static final mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OnWriteCompleteEvent>
        PARSER = new com.google.protobuf.AbstractParser<OnWriteCompleteEvent>() {
      @java.lang.Override
      public OnWriteCompleteEvent 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<OnWriteCompleteEvent> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnWriteCompleteEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OperationCompleteEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OperationCompleteEvent)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.OperationCompleteEvent}
   */
  public static final class OperationCompleteEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OperationCompleteEvent)
      OperationCompleteEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OperationCompleteEvent");
    }
    // Use OperationCompleteEvent.newBuilder() to construct.
    private OperationCompleteEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OperationCompleteEvent() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OperationCompleteEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OperationCompleteEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.class, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.Builder.class);
    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent other = (mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent 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 mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent 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 mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent 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(mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent 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 mxaccess_gateway.v1.OperationCompleteEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OperationCompleteEvent)
        mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OperationCompleteEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OperationCompleteEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.class, mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OperationCompleteEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent build() {
        mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent result = new mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent.getDefaultInstance()) return this;
        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;
              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;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OperationCompleteEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OperationCompleteEvent)
    private static final mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OperationCompleteEvent>
        PARSER = new com.google.protobuf.AbstractParser<OperationCompleteEvent>() {
      @java.lang.Override
      public OperationCompleteEvent 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<OperationCompleteEvent> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OperationCompleteEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OnBufferedDataChangeEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OnBufferedDataChangeEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The enum numeric value on the wire for dataType.
     */
    int getDataTypeValue();
    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The dataType.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxDataType getDataType();

    /**
     * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
     * @return Whether the qualityValues field is set.
     */
    boolean hasQualityValues();
    /**
     * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
     * @return The qualityValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxArray getQualityValues();
    /**
     * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getQualityValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
     * @return Whether the timestampValues field is set.
     */
    boolean hasTimestampValues();
    /**
     * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
     * @return The timestampValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxArray getTimestampValues();
    /**
     * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getTimestampValuesOrBuilder();

    /**
     * <code>int32 raw_data_type = 4;</code>
     * @return The rawDataType.
     */
    int getRawDataType();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.OnBufferedDataChangeEvent}
   */
  public static final class OnBufferedDataChangeEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OnBufferedDataChangeEvent)
      OnBufferedDataChangeEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OnBufferedDataChangeEvent");
    }
    // Use OnBufferedDataChangeEvent.newBuilder() to construct.
    private OnBufferedDataChangeEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OnBufferedDataChangeEvent() {
      dataType_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.Builder.class);
    }

    private int bitField0_;
    public static final int DATA_TYPE_FIELD_NUMBER = 1;
    private int dataType_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The enum numeric value on the wire for dataType.
     */
    @java.lang.Override public int getDataTypeValue() {
      return dataType_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The dataType.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxDataType getDataType() {
      mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(dataType_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
    }

    public static final int QUALITY_VALUES_FIELD_NUMBER = 2;
    private mxaccess_gateway.v1.MxaccessGateway.MxArray qualityValues_;
    /**
     * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
     * @return Whether the qualityValues field is set.
     */
    @java.lang.Override
    public boolean hasQualityValues() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
     * @return The qualityValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxArray getQualityValues() {
      return qualityValues_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : qualityValues_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getQualityValuesOrBuilder() {
      return qualityValues_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : qualityValues_;
    }

    public static final int TIMESTAMP_VALUES_FIELD_NUMBER = 3;
    private mxaccess_gateway.v1.MxaccessGateway.MxArray timestampValues_;
    /**
     * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
     * @return Whether the timestampValues field is set.
     */
    @java.lang.Override
    public boolean hasTimestampValues() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
     * @return The timestampValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxArray getTimestampValues() {
      return timestampValues_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : timestampValues_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getTimestampValuesOrBuilder() {
      return timestampValues_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : timestampValues_;
    }

    public static final int RAW_DATA_TYPE_FIELD_NUMBER = 4;
    private int rawDataType_ = 0;
    /**
     * <code>int32 raw_data_type = 4;</code>
     * @return The rawDataType.
     */
    @java.lang.Override
    public int getRawDataType() {
      return rawDataType_;
    }

    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 (dataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, dataType_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getQualityValues());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(3, getTimestampValues());
      }
      if (rawDataType_ != 0) {
        output.writeInt32(4, rawDataType_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (dataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, dataType_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getQualityValues());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getTimestampValues());
      }
      if (rawDataType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, rawDataType_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent other = (mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) obj;

      if (dataType_ != other.dataType_) return false;
      if (hasQualityValues() != other.hasQualityValues()) return false;
      if (hasQualityValues()) {
        if (!getQualityValues()
            .equals(other.getQualityValues())) return false;
      }
      if (hasTimestampValues() != other.hasTimestampValues()) return false;
      if (hasTimestampValues()) {
        if (!getTimestampValues()
            .equals(other.getTimestampValues())) return false;
      }
      if (getRawDataType()
          != other.getRawDataType()) 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();
      hash = (37 * hash) + DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + dataType_;
      if (hasQualityValues()) {
        hash = (37 * hash) + QUALITY_VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getQualityValues().hashCode();
      }
      if (hasTimestampValues()) {
        hash = (37 * hash) + TIMESTAMP_VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getTimestampValues().hashCode();
      }
      hash = (37 * hash) + RAW_DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRawDataType();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent 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(mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent 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 mxaccess_gateway.v1.OnBufferedDataChangeEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OnBufferedDataChangeEvent)
        mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetQualityValuesFieldBuilder();
          internalGetTimestampValuesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        dataType_ = 0;
        qualityValues_ = null;
        if (qualityValuesBuilder_ != null) {
          qualityValuesBuilder_.dispose();
          qualityValuesBuilder_ = null;
        }
        timestampValues_ = null;
        if (timestampValuesBuilder_ != null) {
          timestampValuesBuilder_.dispose();
          timestampValuesBuilder_ = null;
        }
        rawDataType_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent build() {
        mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent result = new mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.dataType_ = dataType_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.qualityValues_ = qualityValuesBuilder_ == null
              ? qualityValues_
              : qualityValuesBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.timestampValues_ = timestampValuesBuilder_ == null
              ? timestampValues_
              : timestampValuesBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.rawDataType_ = rawDataType_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent.getDefaultInstance()) return this;
        if (other.dataType_ != 0) {
          setDataTypeValue(other.getDataTypeValue());
        }
        if (other.hasQualityValues()) {
          mergeQualityValues(other.getQualityValues());
        }
        if (other.hasTimestampValues()) {
          mergeTimestampValues(other.getTimestampValues());
        }
        if (other.getRawDataType() != 0) {
          setRawDataType(other.getRawDataType());
        }
        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 8: {
                dataType_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    internalGetQualityValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    internalGetTimestampValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                rawDataType_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              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 int dataType_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @return The enum numeric value on the wire for dataType.
       */
      @java.lang.Override public int getDataTypeValue() {
        return dataType_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @param value The enum numeric value on the wire for dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataTypeValue(int value) {
        dataType_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @return The dataType.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxDataType getDataType() {
        mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(dataType_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @param value The dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataType(mxaccess_gateway.v1.MxaccessGateway.MxDataType value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        dataType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        dataType_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxArray qualityValues_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder> qualityValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       * @return Whether the qualityValues field is set.
       */
      public boolean hasQualityValues() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       * @return The qualityValues.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxArray getQualityValues() {
        if (qualityValuesBuilder_ == null) {
          return qualityValues_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : qualityValues_;
        } else {
          return qualityValuesBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       */
      public Builder setQualityValues(mxaccess_gateway.v1.MxaccessGateway.MxArray value) {
        if (qualityValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          qualityValues_ = value;
        } else {
          qualityValuesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       */
      public Builder setQualityValues(
          mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder builderForValue) {
        if (qualityValuesBuilder_ == null) {
          qualityValues_ = builderForValue.build();
        } else {
          qualityValuesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       */
      public Builder mergeQualityValues(mxaccess_gateway.v1.MxaccessGateway.MxArray value) {
        if (qualityValuesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            qualityValues_ != null &&
            qualityValues_ != mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance()) {
            getQualityValuesBuilder().mergeFrom(value);
          } else {
            qualityValues_ = value;
          }
        } else {
          qualityValuesBuilder_.mergeFrom(value);
        }
        if (qualityValues_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       */
      public Builder clearQualityValues() {
        bitField0_ = (bitField0_ & ~0x00000002);
        qualityValues_ = null;
        if (qualityValuesBuilder_ != null) {
          qualityValuesBuilder_.dispose();
          qualityValuesBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder getQualityValuesBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetQualityValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getQualityValuesOrBuilder() {
        if (qualityValuesBuilder_ != null) {
          return qualityValuesBuilder_.getMessageOrBuilder();
        } else {
          return qualityValues_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : qualityValues_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray quality_values = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder> 
          internalGetQualityValuesFieldBuilder() {
        if (qualityValuesBuilder_ == null) {
          qualityValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder>(
                  getQualityValues(),
                  getParentForChildren(),
                  isClean());
          qualityValues_ = null;
        }
        return qualityValuesBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxArray timestampValues_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder> timestampValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       * @return Whether the timestampValues field is set.
       */
      public boolean hasTimestampValues() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       * @return The timestampValues.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxArray getTimestampValues() {
        if (timestampValuesBuilder_ == null) {
          return timestampValues_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : timestampValues_;
        } else {
          return timestampValuesBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       */
      public Builder setTimestampValues(mxaccess_gateway.v1.MxaccessGateway.MxArray value) {
        if (timestampValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timestampValues_ = value;
        } else {
          timestampValuesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       */
      public Builder setTimestampValues(
          mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder builderForValue) {
        if (timestampValuesBuilder_ == null) {
          timestampValues_ = builderForValue.build();
        } else {
          timestampValuesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       */
      public Builder mergeTimestampValues(mxaccess_gateway.v1.MxaccessGateway.MxArray value) {
        if (timestampValuesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            timestampValues_ != null &&
            timestampValues_ != mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance()) {
            getTimestampValuesBuilder().mergeFrom(value);
          } else {
            timestampValues_ = value;
          }
        } else {
          timestampValuesBuilder_.mergeFrom(value);
        }
        if (timestampValues_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       */
      public Builder clearTimestampValues() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timestampValues_ = null;
        if (timestampValuesBuilder_ != null) {
          timestampValuesBuilder_.dispose();
          timestampValuesBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder getTimestampValuesBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetTimestampValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getTimestampValuesOrBuilder() {
        if (timestampValuesBuilder_ != null) {
          return timestampValuesBuilder_.getMessageOrBuilder();
        } else {
          return timestampValues_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance() : timestampValues_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray timestamp_values = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder> 
          internalGetTimestampValuesFieldBuilder() {
        if (timestampValuesBuilder_ == null) {
          timestampValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder>(
                  getTimestampValues(),
                  getParentForChildren(),
                  isClean());
          timestampValues_ = null;
        }
        return timestampValuesBuilder_;
      }

      private int rawDataType_ ;
      /**
       * <code>int32 raw_data_type = 4;</code>
       * @return The rawDataType.
       */
      @java.lang.Override
      public int getRawDataType() {
        return rawDataType_;
      }
      /**
       * <code>int32 raw_data_type = 4;</code>
       * @param value The rawDataType to set.
       * @return This builder for chaining.
       */
      public Builder setRawDataType(int value) {

        rawDataType_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 raw_data_type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawDataType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        rawDataType_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OnBufferedDataChangeEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OnBufferedDataChangeEvent)
    private static final mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OnBufferedDataChangeEvent>
        PARSER = new com.google.protobuf.AbstractParser<OnBufferedDataChangeEvent>() {
      @java.lang.Override
      public OnBufferedDataChangeEvent 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<OnBufferedDataChangeEvent> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnBufferedDataChangeEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OnAlarmTransitionEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OnAlarmTransitionEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
     * transitions of the same condition; used by the lmxopcua side to correlate
     * raise/ack/clear into a single Part 9 condition.
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The alarmFullReference.
     */
    java.lang.String getAlarmFullReference();
    /**
     * <pre>
     * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
     * transitions of the same condition; used by the lmxopcua side to correlate
     * raise/ack/clear into a single Part 9 condition.
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The bytes for alarmFullReference.
     */
    com.google.protobuf.ByteString
        getAlarmFullReferenceBytes();

    /**
     * <pre>
     * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
     * that do not bind to a Galaxy object.
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The sourceObjectReference.
     */
    java.lang.String getSourceObjectReference();
    /**
     * <pre>
     * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
     * that do not bind to a Galaxy object.
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The bytes for sourceObjectReference.
     */
    com.google.protobuf.ByteString
        getSourceObjectReferenceBytes();

    /**
     * <pre>
     * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
     * </pre>
     *
     * <code>string alarm_type_name = 3;</code>
     * @return The alarmTypeName.
     */
    java.lang.String getAlarmTypeName();
    /**
     * <pre>
     * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
     * </pre>
     *
     * <code>string alarm_type_name = 3;</code>
     * @return The bytes for alarmTypeName.
     */
    com.google.protobuf.ByteString
        getAlarmTypeNameBytes();

    /**
     * <pre>
     * What kind of state change this event represents.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
     * @return The enum numeric value on the wire for transitionKind.
     */
    int getTransitionKindValue();
    /**
     * <pre>
     * What kind of state change this event represents.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
     * @return The transitionKind.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind getTransitionKind();

    /**
     * <pre>
     * Raw MXAccess severity value. Mapping to OPC UA 0-1000 happens server-side
     * in lmxopcua via MxAccessSeverityMapper; the gateway preserves the native
     * MXAccess scale.
     * </pre>
     *
     * <code>int32 severity = 5;</code>
     * @return The severity.
     */
    int getSeverity();

    /**
     * <pre>
     * When the alarm originally entered the active state. Preserved across
     * acknowledge transitions so the Part 9 condition keeps the original raise
     * time. Unset on retrigger from a previously-cleared condition.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
     * @return Whether the originalRaiseTimestamp field is set.
     */
    boolean hasOriginalRaiseTimestamp();
    /**
     * <pre>
     * When the alarm originally entered the active state. Preserved across
     * acknowledge transitions so the Part 9 condition keeps the original raise
     * time. Unset on retrigger from a previously-cleared condition.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
     * @return The originalRaiseTimestamp.
     */
    com.google.protobuf.Timestamp getOriginalRaiseTimestamp();
    /**
     * <pre>
     * When the alarm originally entered the active state. Preserved across
     * acknowledge transitions so the Part 9 condition keeps the original raise
     * time. Unset on retrigger from a previously-cleared condition.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
     */
    com.google.protobuf.TimestampOrBuilder getOriginalRaiseTimestampOrBuilder();

    /**
     * <pre>
     * When this specific transition occurred (raise time on Raise, ack time on
     * Acknowledge, clear time on Clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
     * @return Whether the transitionTimestamp field is set.
     */
    boolean hasTransitionTimestamp();
    /**
     * <pre>
     * When this specific transition occurred (raise time on Raise, ack time on
     * Acknowledge, clear time on Clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
     * @return The transitionTimestamp.
     */
    com.google.protobuf.Timestamp getTransitionTimestamp();
    /**
     * <pre>
     * When this specific transition occurred (raise time on Raise, ack time on
     * Acknowledge, clear time on Clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
     */
    com.google.protobuf.TimestampOrBuilder getTransitionTimestampOrBuilder();

    /**
     * <pre>
     * Operator principal recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear.
     * </pre>
     *
     * <code>string operator_user = 8;</code>
     * @return The operatorUser.
     */
    java.lang.String getOperatorUser();
    /**
     * <pre>
     * Operator principal recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear.
     * </pre>
     *
     * <code>string operator_user = 8;</code>
     * @return The bytes for operatorUser.
     */
    com.google.protobuf.ByteString
        getOperatorUserBytes();

    /**
     * <pre>
     * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear or when no comment was supplied.
     * </pre>
     *
     * <code>string operator_comment = 9;</code>
     * @return The operatorComment.
     */
    java.lang.String getOperatorComment();
    /**
     * <pre>
     * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear or when no comment was supplied.
     * </pre>
     *
     * <code>string operator_comment = 9;</code>
     * @return The bytes for operatorComment.
     */
    com.google.protobuf.ByteString
        getOperatorCommentBytes();

    /**
     * <pre>
     * MxAccess alarm category (taxonomy bucket configured in the Galaxy
     * template, e.g. "Process", "Safety", "Diagnostics").
     * </pre>
     *
     * <code>string category = 10;</code>
     * @return The category.
     */
    java.lang.String getCategory();
    /**
     * <pre>
     * MxAccess alarm category (taxonomy bucket configured in the Galaxy
     * template, e.g. "Process", "Safety", "Diagnostics").
     * </pre>
     *
     * <code>string category = 10;</code>
     * @return The bytes for category.
     */
    com.google.protobuf.ByteString
        getCategoryBytes();

    /**
     * <pre>
     * Human-readable alarm description from the MxAccess alarm definition.
     * </pre>
     *
     * <code>string description = 11;</code>
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * <pre>
     * Human-readable alarm description from the MxAccess alarm definition.
     * </pre>
     *
     * <code>string description = 11;</code>
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();

    /**
     * <pre>
     * Current alarm value (the value of the source attribute at the moment of
     * transition). Optional; populated when MxAccess surfaces it.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return Whether the currentValue field is set.
     */
    boolean hasCurrentValue();
    /**
     * <pre>
     * Current alarm value (the value of the source attribute at the moment of
     * transition). Optional; populated when MxAccess surfaces it.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return The currentValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getCurrentValue();
    /**
     * <pre>
     * Current alarm value (the value of the source attribute at the moment of
     * transition). Optional; populated when MxAccess surfaces it.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getCurrentValueOrBuilder();

    /**
     * <pre>
     * Limit/threshold value that triggered the transition for limit alarms.
     * Optional; populated for AnalogLimitAlarm-family transitions.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return Whether the limitValue field is set.
     */
    boolean hasLimitValue();
    /**
     * <pre>
     * Limit/threshold value that triggered the transition for limit alarms.
     * Optional; populated for AnalogLimitAlarm-family transitions.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return The limitValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getLimitValue();
    /**
     * <pre>
     * Limit/threshold value that triggered the transition for limit alarms.
     * Optional; populated for AnalogLimitAlarm-family transitions.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getLimitValueOrBuilder();

    /**
     * <pre>
     * True when this transition came from the subtag-monitoring fallback rather
     * than the native alarmmgr provider — synthesized from data changes, reduced
     * fidelity (synthetic GUID, no native raise time).
     * </pre>
     *
     * <code>bool degraded = 14;</code>
     * @return The degraded.
     */
    boolean getDegraded();

    /**
     * <pre>
     * Which provider produced this transition.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The enum numeric value on the wire for sourceProvider.
     */
    int getSourceProviderValue();
    /**
     * <pre>
     * Which provider produced this transition.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The sourceProvider.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getSourceProvider();
  }
  /**
   * <pre>
   * Carries a single MXAccess alarm transition (raise / acknowledge / clear /
   * re-trigger) in native MXAccess terms. The Part 9 state machine + ACL +
   * multi-source aggregation lives in lmxopcua's AlarmConditionService; the
   * gateway is UA-agnostic and forwards the raw payload.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.OnAlarmTransitionEvent}
   */
  public static final class OnAlarmTransitionEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OnAlarmTransitionEvent)
      OnAlarmTransitionEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OnAlarmTransitionEvent");
    }
    // Use OnAlarmTransitionEvent.newBuilder() to construct.
    private OnAlarmTransitionEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OnAlarmTransitionEvent() {
      alarmFullReference_ = "";
      sourceObjectReference_ = "";
      alarmTypeName_ = "";
      transitionKind_ = 0;
      operatorUser_ = "";
      operatorComment_ = "";
      category_ = "";
      description_ = "";
      sourceProvider_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder.class);
    }

    private int bitField0_;
    public static final int ALARM_FULL_REFERENCE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmFullReference_ = "";
    /**
     * <pre>
     * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
     * transitions of the same condition; used by the lmxopcua side to correlate
     * raise/ack/clear into a single Part 9 condition.
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The alarmFullReference.
     */
    @java.lang.Override
    public java.lang.String getAlarmFullReference() {
      java.lang.Object ref = alarmFullReference_;
      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();
        alarmFullReference_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
     * transitions of the same condition; used by the lmxopcua side to correlate
     * raise/ack/clear into a single Part 9 condition.
     * </pre>
     *
     * <code>string alarm_full_reference = 1;</code>
     * @return The bytes for alarmFullReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmFullReferenceBytes() {
      java.lang.Object ref = alarmFullReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmFullReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOURCE_OBJECT_REFERENCE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sourceObjectReference_ = "";
    /**
     * <pre>
     * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
     * that do not bind to a Galaxy object.
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The sourceObjectReference.
     */
    @java.lang.Override
    public java.lang.String getSourceObjectReference() {
      java.lang.Object ref = sourceObjectReference_;
      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();
        sourceObjectReference_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
     * that do not bind to a Galaxy object.
     * </pre>
     *
     * <code>string source_object_reference = 2;</code>
     * @return The bytes for sourceObjectReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceObjectReferenceBytes() {
      java.lang.Object ref = sourceObjectReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceObjectReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALARM_TYPE_NAME_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmTypeName_ = "";
    /**
     * <pre>
     * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
     * </pre>
     *
     * <code>string alarm_type_name = 3;</code>
     * @return The alarmTypeName.
     */
    @java.lang.Override
    public java.lang.String getAlarmTypeName() {
      java.lang.Object ref = alarmTypeName_;
      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();
        alarmTypeName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
     * </pre>
     *
     * <code>string alarm_type_name = 3;</code>
     * @return The bytes for alarmTypeName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmTypeNameBytes() {
      java.lang.Object ref = alarmTypeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmTypeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TRANSITION_KIND_FIELD_NUMBER = 4;
    private int transitionKind_ = 0;
    /**
     * <pre>
     * What kind of state change this event represents.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
     * @return The enum numeric value on the wire for transitionKind.
     */
    @java.lang.Override public int getTransitionKindValue() {
      return transitionKind_;
    }
    /**
     * <pre>
     * What kind of state change this event represents.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
     * @return The transitionKind.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind getTransitionKind() {
      mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind result = mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind.forNumber(transitionKind_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind.UNRECOGNIZED : result;
    }

    public static final int SEVERITY_FIELD_NUMBER = 5;
    private int severity_ = 0;
    /**
     * <pre>
     * Raw MXAccess severity value. Mapping to OPC UA 0-1000 happens server-side
     * in lmxopcua via MxAccessSeverityMapper; the gateway preserves the native
     * MXAccess scale.
     * </pre>
     *
     * <code>int32 severity = 5;</code>
     * @return The severity.
     */
    @java.lang.Override
    public int getSeverity() {
      return severity_;
    }

    public static final int ORIGINAL_RAISE_TIMESTAMP_FIELD_NUMBER = 6;
    private com.google.protobuf.Timestamp originalRaiseTimestamp_;
    /**
     * <pre>
     * When the alarm originally entered the active state. Preserved across
     * acknowledge transitions so the Part 9 condition keeps the original raise
     * time. Unset on retrigger from a previously-cleared condition.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
     * @return Whether the originalRaiseTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasOriginalRaiseTimestamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * When the alarm originally entered the active state. Preserved across
     * acknowledge transitions so the Part 9 condition keeps the original raise
     * time. Unset on retrigger from a previously-cleared condition.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
     * @return The originalRaiseTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getOriginalRaiseTimestamp() {
      return originalRaiseTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
    }
    /**
     * <pre>
     * When the alarm originally entered the active state. Preserved across
     * acknowledge transitions so the Part 9 condition keeps the original raise
     * time. Unset on retrigger from a previously-cleared condition.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getOriginalRaiseTimestampOrBuilder() {
      return originalRaiseTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
    }

    public static final int TRANSITION_TIMESTAMP_FIELD_NUMBER = 7;
    private com.google.protobuf.Timestamp transitionTimestamp_;
    /**
     * <pre>
     * When this specific transition occurred (raise time on Raise, ack time on
     * Acknowledge, clear time on Clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
     * @return Whether the transitionTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasTransitionTimestamp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * When this specific transition occurred (raise time on Raise, ack time on
     * Acknowledge, clear time on Clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
     * @return The transitionTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getTransitionTimestamp() {
      return transitionTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : transitionTimestamp_;
    }
    /**
     * <pre>
     * When this specific transition occurred (raise time on Raise, ack time on
     * Acknowledge, clear time on Clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getTransitionTimestampOrBuilder() {
      return transitionTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : transitionTimestamp_;
    }

    public static final int OPERATOR_USER_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorUser_ = "";
    /**
     * <pre>
     * Operator principal recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear.
     * </pre>
     *
     * <code>string operator_user = 8;</code>
     * @return The operatorUser.
     */
    @java.lang.Override
    public java.lang.String getOperatorUser() {
      java.lang.Object ref = operatorUser_;
      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();
        operatorUser_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Operator principal recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear.
     * </pre>
     *
     * <code>string operator_user = 8;</code>
     * @return The bytes for operatorUser.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorUserBytes() {
      java.lang.Object ref = operatorUser_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorUser_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_COMMENT_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorComment_ = "";
    /**
     * <pre>
     * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear or when no comment was supplied.
     * </pre>
     *
     * <code>string operator_comment = 9;</code>
     * @return The operatorComment.
     */
    @java.lang.Override
    public java.lang.String getOperatorComment() {
      java.lang.Object ref = operatorComment_;
      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();
        operatorComment_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
     * Empty on raise / clear or when no comment was supplied.
     * </pre>
     *
     * <code>string operator_comment = 9;</code>
     * @return The bytes for operatorComment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorCommentBytes() {
      java.lang.Object ref = operatorComment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorComment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CATEGORY_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private volatile java.lang.Object category_ = "";
    /**
     * <pre>
     * MxAccess alarm category (taxonomy bucket configured in the Galaxy
     * template, e.g. "Process", "Safety", "Diagnostics").
     * </pre>
     *
     * <code>string category = 10;</code>
     * @return The category.
     */
    @java.lang.Override
    public java.lang.String getCategory() {
      java.lang.Object ref = category_;
      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();
        category_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * MxAccess alarm category (taxonomy bucket configured in the Galaxy
     * template, e.g. "Process", "Safety", "Diagnostics").
     * </pre>
     *
     * <code>string category = 10;</code>
     * @return The bytes for category.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCategoryBytes() {
      java.lang.Object ref = category_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        category_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private volatile java.lang.Object description_ = "";
    /**
     * <pre>
     * Human-readable alarm description from the MxAccess alarm definition.
     * </pre>
     *
     * <code>string description = 11;</code>
     * @return The description.
     */
    @java.lang.Override
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      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();
        description_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Human-readable alarm description from the MxAccess alarm definition.
     * </pre>
     *
     * <code>string description = 11;</code>
     * @return The bytes for description.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CURRENT_VALUE_FIELD_NUMBER = 12;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue currentValue_;
    /**
     * <pre>
     * Current alarm value (the value of the source attribute at the moment of
     * transition). Optional; populated when MxAccess surfaces it.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return Whether the currentValue field is set.
     */
    @java.lang.Override
    public boolean hasCurrentValue() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * Current alarm value (the value of the source attribute at the moment of
     * transition). Optional; populated when MxAccess surfaces it.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return The currentValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getCurrentValue() {
      return currentValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
    }
    /**
     * <pre>
     * Current alarm value (the value of the source attribute at the moment of
     * transition). Optional; populated when MxAccess surfaces it.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getCurrentValueOrBuilder() {
      return currentValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
    }

    public static final int LIMIT_VALUE_FIELD_NUMBER = 13;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue limitValue_;
    /**
     * <pre>
     * Limit/threshold value that triggered the transition for limit alarms.
     * Optional; populated for AnalogLimitAlarm-family transitions.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return Whether the limitValue field is set.
     */
    @java.lang.Override
    public boolean hasLimitValue() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <pre>
     * Limit/threshold value that triggered the transition for limit alarms.
     * Optional; populated for AnalogLimitAlarm-family transitions.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return The limitValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getLimitValue() {
      return limitValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
    }
    /**
     * <pre>
     * Limit/threshold value that triggered the transition for limit alarms.
     * Optional; populated for AnalogLimitAlarm-family transitions.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getLimitValueOrBuilder() {
      return limitValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
    }

    public static final int DEGRADED_FIELD_NUMBER = 14;
    private boolean degraded_ = false;
    /**
     * <pre>
     * True when this transition came from the subtag-monitoring fallback rather
     * than the native alarmmgr provider — synthesized from data changes, reduced
     * fidelity (synthetic GUID, no native raise time).
     * </pre>
     *
     * <code>bool degraded = 14;</code>
     * @return The degraded.
     */
    @java.lang.Override
    public boolean getDegraded() {
      return degraded_;
    }

    public static final int SOURCE_PROVIDER_FIELD_NUMBER = 15;
    private int sourceProvider_ = 0;
    /**
     * <pre>
     * Which provider produced this transition.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The enum numeric value on the wire for sourceProvider.
     */
    @java.lang.Override public int getSourceProviderValue() {
      return sourceProvider_;
    }
    /**
     * <pre>
     * Which provider produced this transition.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The sourceProvider.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getSourceProvider() {
      mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(sourceProvider_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceObjectReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, sourceObjectReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmTypeName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, alarmTypeName_);
      }
      if (transitionKind_ != mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind.ALARM_TRANSITION_KIND_UNSPECIFIED.getNumber()) {
        output.writeEnum(4, transitionKind_);
      }
      if (severity_ != 0) {
        output.writeInt32(5, severity_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(6, getOriginalRaiseTimestamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(7, getTransitionTimestamp());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 8, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorComment_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 9, operatorComment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(category_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 10, category_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 11, description_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(12, getCurrentValue());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(13, getLimitValue());
      }
      if (degraded_ != false) {
        output.writeBool(14, degraded_);
      }
      if (sourceProvider_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        output.writeEnum(15, sourceProvider_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceObjectReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, sourceObjectReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmTypeName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, alarmTypeName_);
      }
      if (transitionKind_ != mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind.ALARM_TRANSITION_KIND_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, transitionKind_);
      }
      if (severity_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, severity_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getOriginalRaiseTimestamp());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getTransitionTimestamp());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(8, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorComment_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(9, operatorComment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(category_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(10, category_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(11, description_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getCurrentValue());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getLimitValue());
      }
      if (degraded_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, degraded_);
      }
      if (sourceProvider_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(15, sourceProvider_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent other = (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) obj;

      if (!getAlarmFullReference()
          .equals(other.getAlarmFullReference())) return false;
      if (!getSourceObjectReference()
          .equals(other.getSourceObjectReference())) return false;
      if (!getAlarmTypeName()
          .equals(other.getAlarmTypeName())) return false;
      if (transitionKind_ != other.transitionKind_) return false;
      if (getSeverity()
          != other.getSeverity()) return false;
      if (hasOriginalRaiseTimestamp() != other.hasOriginalRaiseTimestamp()) return false;
      if (hasOriginalRaiseTimestamp()) {
        if (!getOriginalRaiseTimestamp()
            .equals(other.getOriginalRaiseTimestamp())) return false;
      }
      if (hasTransitionTimestamp() != other.hasTransitionTimestamp()) return false;
      if (hasTransitionTimestamp()) {
        if (!getTransitionTimestamp()
            .equals(other.getTransitionTimestamp())) return false;
      }
      if (!getOperatorUser()
          .equals(other.getOperatorUser())) return false;
      if (!getOperatorComment()
          .equals(other.getOperatorComment())) return false;
      if (!getCategory()
          .equals(other.getCategory())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (hasCurrentValue() != other.hasCurrentValue()) return false;
      if (hasCurrentValue()) {
        if (!getCurrentValue()
            .equals(other.getCurrentValue())) return false;
      }
      if (hasLimitValue() != other.hasLimitValue()) return false;
      if (hasLimitValue()) {
        if (!getLimitValue()
            .equals(other.getLimitValue())) return false;
      }
      if (getDegraded()
          != other.getDegraded()) return false;
      if (sourceProvider_ != other.sourceProvider_) 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();
      hash = (37 * hash) + ALARM_FULL_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmFullReference().hashCode();
      hash = (37 * hash) + SOURCE_OBJECT_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getSourceObjectReference().hashCode();
      hash = (37 * hash) + ALARM_TYPE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmTypeName().hashCode();
      hash = (37 * hash) + TRANSITION_KIND_FIELD_NUMBER;
      hash = (53 * hash) + transitionKind_;
      hash = (37 * hash) + SEVERITY_FIELD_NUMBER;
      hash = (53 * hash) + getSeverity();
      if (hasOriginalRaiseTimestamp()) {
        hash = (37 * hash) + ORIGINAL_RAISE_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getOriginalRaiseTimestamp().hashCode();
      }
      if (hasTransitionTimestamp()) {
        hash = (37 * hash) + TRANSITION_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getTransitionTimestamp().hashCode();
      }
      hash = (37 * hash) + OPERATOR_USER_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorUser().hashCode();
      hash = (37 * hash) + OPERATOR_COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorComment().hashCode();
      hash = (37 * hash) + CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + getCategory().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      if (hasCurrentValue()) {
        hash = (37 * hash) + CURRENT_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getCurrentValue().hashCode();
      }
      if (hasLimitValue()) {
        hash = (37 * hash) + LIMIT_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getLimitValue().hashCode();
      }
      hash = (37 * hash) + DEGRADED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDegraded());
      hash = (37 * hash) + SOURCE_PROVIDER_FIELD_NUMBER;
      hash = (53 * hash) + sourceProvider_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent 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(mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent 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;
    }
    /**
     * <pre>
     * Carries a single MXAccess alarm transition (raise / acknowledge / clear /
     * re-trigger) in native MXAccess terms. The Part 9 state machine + ACL +
     * multi-source aggregation lives in lmxopcua's AlarmConditionService; the
     * gateway is UA-agnostic and forwards the raw payload.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.OnAlarmTransitionEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OnAlarmTransitionEvent)
        mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetOriginalRaiseTimestampFieldBuilder();
          internalGetTransitionTimestampFieldBuilder();
          internalGetCurrentValueFieldBuilder();
          internalGetLimitValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        alarmFullReference_ = "";
        sourceObjectReference_ = "";
        alarmTypeName_ = "";
        transitionKind_ = 0;
        severity_ = 0;
        originalRaiseTimestamp_ = null;
        if (originalRaiseTimestampBuilder_ != null) {
          originalRaiseTimestampBuilder_.dispose();
          originalRaiseTimestampBuilder_ = null;
        }
        transitionTimestamp_ = null;
        if (transitionTimestampBuilder_ != null) {
          transitionTimestampBuilder_.dispose();
          transitionTimestampBuilder_ = null;
        }
        operatorUser_ = "";
        operatorComment_ = "";
        category_ = "";
        description_ = "";
        currentValue_ = null;
        if (currentValueBuilder_ != null) {
          currentValueBuilder_.dispose();
          currentValueBuilder_ = null;
        }
        limitValue_ = null;
        if (limitValueBuilder_ != null) {
          limitValueBuilder_.dispose();
          limitValueBuilder_ = null;
        }
        degraded_ = false;
        sourceProvider_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent build() {
        mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent result = new mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.alarmFullReference_ = alarmFullReference_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.sourceObjectReference_ = sourceObjectReference_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.alarmTypeName_ = alarmTypeName_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.transitionKind_ = transitionKind_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.severity_ = severity_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.originalRaiseTimestamp_ = originalRaiseTimestampBuilder_ == null
              ? originalRaiseTimestamp_
              : originalRaiseTimestampBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.transitionTimestamp_ = transitionTimestampBuilder_ == null
              ? transitionTimestamp_
              : transitionTimestampBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.operatorUser_ = operatorUser_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.operatorComment_ = operatorComment_;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.category_ = category_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.description_ = description_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.currentValue_ = currentValueBuilder_ == null
              ? currentValue_
              : currentValueBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.limitValue_ = limitValueBuilder_ == null
              ? limitValue_
              : limitValueBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.degraded_ = degraded_;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.sourceProvider_ = sourceProvider_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance()) return this;
        if (!other.getAlarmFullReference().isEmpty()) {
          alarmFullReference_ = other.alarmFullReference_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getSourceObjectReference().isEmpty()) {
          sourceObjectReference_ = other.sourceObjectReference_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getAlarmTypeName().isEmpty()) {
          alarmTypeName_ = other.alarmTypeName_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.transitionKind_ != 0) {
          setTransitionKindValue(other.getTransitionKindValue());
        }
        if (other.getSeverity() != 0) {
          setSeverity(other.getSeverity());
        }
        if (other.hasOriginalRaiseTimestamp()) {
          mergeOriginalRaiseTimestamp(other.getOriginalRaiseTimestamp());
        }
        if (other.hasTransitionTimestamp()) {
          mergeTransitionTimestamp(other.getTransitionTimestamp());
        }
        if (!other.getOperatorUser().isEmpty()) {
          operatorUser_ = other.operatorUser_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (!other.getOperatorComment().isEmpty()) {
          operatorComment_ = other.operatorComment_;
          bitField0_ |= 0x00000100;
          onChanged();
        }
        if (!other.getCategory().isEmpty()) {
          category_ = other.category_;
          bitField0_ |= 0x00000200;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          bitField0_ |= 0x00000400;
          onChanged();
        }
        if (other.hasCurrentValue()) {
          mergeCurrentValue(other.getCurrentValue());
        }
        if (other.hasLimitValue()) {
          mergeLimitValue(other.getLimitValue());
        }
        if (other.getDegraded() != false) {
          setDegraded(other.getDegraded());
        }
        if (other.sourceProvider_ != 0) {
          setSourceProviderValue(other.getSourceProviderValue());
        }
        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: {
                alarmFullReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                sourceObjectReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                alarmTypeName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                transitionKind_ = input.readEnum();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                severity_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                input.readMessage(
                    internalGetOriginalRaiseTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    internalGetTransitionTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                operatorUser_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                operatorComment_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                category_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 90: {
                description_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    internalGetCurrentValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    internalGetLimitValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 112: {
                degraded_ = input.readBool();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 120: {
                sourceProvider_ = input.readEnum();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              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 alarmFullReference_ = "";
      /**
       * <pre>
       * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
       * transitions of the same condition; used by the lmxopcua side to correlate
       * raise/ack/clear into a single Part 9 condition.
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @return The alarmFullReference.
       */
      public java.lang.String getAlarmFullReference() {
        java.lang.Object ref = alarmFullReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmFullReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
       * transitions of the same condition; used by the lmxopcua side to correlate
       * raise/ack/clear into a single Part 9 condition.
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @return The bytes for alarmFullReference.
       */
      public com.google.protobuf.ByteString
          getAlarmFullReferenceBytes() {
        java.lang.Object ref = alarmFullReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmFullReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
       * transitions of the same condition; used by the lmxopcua side to correlate
       * raise/ack/clear into a single Part 9 condition.
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @param value The alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmFullReference_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
       * transitions of the same condition; used by the lmxopcua side to correlate
       * raise/ack/clear into a single Part 9 condition.
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmFullReference() {
        alarmFullReference_ = getDefaultInstance().getAlarmFullReference();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Fully-qualified alarm reference (e.g. "Tank01.Level.HiHi"). Stable across
       * transitions of the same condition; used by the lmxopcua side to correlate
       * raise/ack/clear into a single Part 9 condition.
       * </pre>
       *
       * <code>string alarm_full_reference = 1;</code>
       * @param value The bytes for alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmFullReference_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object sourceObjectReference_ = "";
      /**
       * <pre>
       * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
       * that do not bind to a Galaxy object.
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @return The sourceObjectReference.
       */
      public java.lang.String getSourceObjectReference() {
        java.lang.Object ref = sourceObjectReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sourceObjectReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
       * that do not bind to a Galaxy object.
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @return The bytes for sourceObjectReference.
       */
      public com.google.protobuf.ByteString
          getSourceObjectReferenceBytes() {
        java.lang.Object ref = sourceObjectReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sourceObjectReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
       * that do not bind to a Galaxy object.
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @param value The sourceObjectReference to set.
       * @return This builder for chaining.
       */
      public Builder setSourceObjectReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sourceObjectReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
       * that do not bind to a Galaxy object.
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceObjectReference() {
        sourceObjectReference_ = getDefaultInstance().getSourceObjectReference();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Galaxy-side source object reference (e.g. "Tank01"). Empty for alarms
       * that do not bind to a Galaxy object.
       * </pre>
       *
       * <code>string source_object_reference = 2;</code>
       * @param value The bytes for sourceObjectReference to set.
       * @return This builder for chaining.
       */
      public Builder setSourceObjectReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sourceObjectReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object alarmTypeName_ = "";
      /**
       * <pre>
       * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
       * </pre>
       *
       * <code>string alarm_type_name = 3;</code>
       * @return The alarmTypeName.
       */
      public java.lang.String getAlarmTypeName() {
        java.lang.Object ref = alarmTypeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmTypeName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
       * </pre>
       *
       * <code>string alarm_type_name = 3;</code>
       * @return The bytes for alarmTypeName.
       */
      public com.google.protobuf.ByteString
          getAlarmTypeNameBytes() {
        java.lang.Object ref = alarmTypeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmTypeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
       * </pre>
       *
       * <code>string alarm_type_name = 3;</code>
       * @param value The alarmTypeName to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmTypeName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmTypeName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
       * </pre>
       *
       * <code>string alarm_type_name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmTypeName() {
        alarmTypeName_ = getDefaultInstance().getAlarmTypeName();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * MxAccess alarm-type qualifier (e.g. "AnalogLimitAlarm.HiHi", "DiscAlarm").
       * </pre>
       *
       * <code>string alarm_type_name = 3;</code>
       * @param value The bytes for alarmTypeName to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmTypeNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmTypeName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private int transitionKind_ = 0;
      /**
       * <pre>
       * What kind of state change this event represents.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
       * @return The enum numeric value on the wire for transitionKind.
       */
      @java.lang.Override public int getTransitionKindValue() {
        return transitionKind_;
      }
      /**
       * <pre>
       * What kind of state change this event represents.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
       * @param value The enum numeric value on the wire for transitionKind to set.
       * @return This builder for chaining.
       */
      public Builder setTransitionKindValue(int value) {
        transitionKind_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * What kind of state change this event represents.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
       * @return The transitionKind.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind getTransitionKind() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind result = mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind.forNumber(transitionKind_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * What kind of state change this event represents.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
       * @param value The transitionKind to set.
       * @return This builder for chaining.
       */
      public Builder setTransitionKind(mxaccess_gateway.v1.MxaccessGateway.AlarmTransitionKind value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000008;
        transitionKind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * What kind of state change this event represents.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmTransitionKind transition_kind = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTransitionKind() {
        bitField0_ = (bitField0_ & ~0x00000008);
        transitionKind_ = 0;
        onChanged();
        return this;
      }

      private int severity_ ;
      /**
       * <pre>
       * Raw MXAccess severity value. Mapping to OPC UA 0-1000 happens server-side
       * in lmxopcua via MxAccessSeverityMapper; the gateway preserves the native
       * MXAccess scale.
       * </pre>
       *
       * <code>int32 severity = 5;</code>
       * @return The severity.
       */
      @java.lang.Override
      public int getSeverity() {
        return severity_;
      }
      /**
       * <pre>
       * Raw MXAccess severity value. Mapping to OPC UA 0-1000 happens server-side
       * in lmxopcua via MxAccessSeverityMapper; the gateway preserves the native
       * MXAccess scale.
       * </pre>
       *
       * <code>int32 severity = 5;</code>
       * @param value The severity to set.
       * @return This builder for chaining.
       */
      public Builder setSeverity(int value) {

        severity_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Raw MXAccess severity value. Mapping to OPC UA 0-1000 happens server-side
       * in lmxopcua via MxAccessSeverityMapper; the gateway preserves the native
       * MXAccess scale.
       * </pre>
       *
       * <code>int32 severity = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSeverity() {
        bitField0_ = (bitField0_ & ~0x00000010);
        severity_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp originalRaiseTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> originalRaiseTimestampBuilder_;
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       * @return Whether the originalRaiseTimestamp field is set.
       */
      public boolean hasOriginalRaiseTimestamp() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       * @return The originalRaiseTimestamp.
       */
      public com.google.protobuf.Timestamp getOriginalRaiseTimestamp() {
        if (originalRaiseTimestampBuilder_ == null) {
          return originalRaiseTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
        } else {
          return originalRaiseTimestampBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       */
      public Builder setOriginalRaiseTimestamp(com.google.protobuf.Timestamp value) {
        if (originalRaiseTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          originalRaiseTimestamp_ = value;
        } else {
          originalRaiseTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       */
      public Builder setOriginalRaiseTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (originalRaiseTimestampBuilder_ == null) {
          originalRaiseTimestamp_ = builderForValue.build();
        } else {
          originalRaiseTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       */
      public Builder mergeOriginalRaiseTimestamp(com.google.protobuf.Timestamp value) {
        if (originalRaiseTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            originalRaiseTimestamp_ != null &&
            originalRaiseTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getOriginalRaiseTimestampBuilder().mergeFrom(value);
          } else {
            originalRaiseTimestamp_ = value;
          }
        } else {
          originalRaiseTimestampBuilder_.mergeFrom(value);
        }
        if (originalRaiseTimestamp_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       */
      public Builder clearOriginalRaiseTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        originalRaiseTimestamp_ = null;
        if (originalRaiseTimestampBuilder_ != null) {
          originalRaiseTimestampBuilder_.dispose();
          originalRaiseTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       */
      public com.google.protobuf.Timestamp.Builder getOriginalRaiseTimestampBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return internalGetOriginalRaiseTimestampFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getOriginalRaiseTimestampOrBuilder() {
        if (originalRaiseTimestampBuilder_ != null) {
          return originalRaiseTimestampBuilder_.getMessageOrBuilder();
        } else {
          return originalRaiseTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
        }
      }
      /**
       * <pre>
       * When the alarm originally entered the active state. Preserved across
       * acknowledge transitions so the Part 9 condition keeps the original raise
       * time. Unset on retrigger from a previously-cleared condition.
       * </pre>
       *
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetOriginalRaiseTimestampFieldBuilder() {
        if (originalRaiseTimestampBuilder_ == null) {
          originalRaiseTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getOriginalRaiseTimestamp(),
                  getParentForChildren(),
                  isClean());
          originalRaiseTimestamp_ = null;
        }
        return originalRaiseTimestampBuilder_;
      }

      private com.google.protobuf.Timestamp transitionTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> transitionTimestampBuilder_;
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       * @return Whether the transitionTimestamp field is set.
       */
      public boolean hasTransitionTimestamp() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       * @return The transitionTimestamp.
       */
      public com.google.protobuf.Timestamp getTransitionTimestamp() {
        if (transitionTimestampBuilder_ == null) {
          return transitionTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : transitionTimestamp_;
        } else {
          return transitionTimestampBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       */
      public Builder setTransitionTimestamp(com.google.protobuf.Timestamp value) {
        if (transitionTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          transitionTimestamp_ = value;
        } else {
          transitionTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       */
      public Builder setTransitionTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (transitionTimestampBuilder_ == null) {
          transitionTimestamp_ = builderForValue.build();
        } else {
          transitionTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       */
      public Builder mergeTransitionTimestamp(com.google.protobuf.Timestamp value) {
        if (transitionTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            transitionTimestamp_ != null &&
            transitionTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getTransitionTimestampBuilder().mergeFrom(value);
          } else {
            transitionTimestamp_ = value;
          }
        } else {
          transitionTimestampBuilder_.mergeFrom(value);
        }
        if (transitionTimestamp_ != null) {
          bitField0_ |= 0x00000040;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       */
      public Builder clearTransitionTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000040);
        transitionTimestamp_ = null;
        if (transitionTimestampBuilder_ != null) {
          transitionTimestampBuilder_.dispose();
          transitionTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       */
      public com.google.protobuf.Timestamp.Builder getTransitionTimestampBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return internalGetTransitionTimestampFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getTransitionTimestampOrBuilder() {
        if (transitionTimestampBuilder_ != null) {
          return transitionTimestampBuilder_.getMessageOrBuilder();
        } else {
          return transitionTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : transitionTimestamp_;
        }
      }
      /**
       * <pre>
       * When this specific transition occurred (raise time on Raise, ack time on
       * Acknowledge, clear time on Clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp transition_timestamp = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetTransitionTimestampFieldBuilder() {
        if (transitionTimestampBuilder_ == null) {
          transitionTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getTransitionTimestamp(),
                  getParentForChildren(),
                  isClean());
          transitionTimestamp_ = null;
        }
        return transitionTimestampBuilder_;
      }

      private java.lang.Object operatorUser_ = "";
      /**
       * <pre>
       * Operator principal recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear.
       * </pre>
       *
       * <code>string operator_user = 8;</code>
       * @return The operatorUser.
       */
      public java.lang.String getOperatorUser() {
        java.lang.Object ref = operatorUser_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorUser_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Operator principal recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear.
       * </pre>
       *
       * <code>string operator_user = 8;</code>
       * @return The bytes for operatorUser.
       */
      public com.google.protobuf.ByteString
          getOperatorUserBytes() {
        java.lang.Object ref = operatorUser_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorUser_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Operator principal recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear.
       * </pre>
       *
       * <code>string operator_user = 8;</code>
       * @param value The operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUser(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorUser_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator principal recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear.
       * </pre>
       *
       * <code>string operator_user = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorUser() {
        operatorUser_ = getDefaultInstance().getOperatorUser();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator principal recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear.
       * </pre>
       *
       * <code>string operator_user = 8;</code>
       * @param value The bytes for operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorUser_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private java.lang.Object operatorComment_ = "";
      /**
       * <pre>
       * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear or when no comment was supplied.
       * </pre>
       *
       * <code>string operator_comment = 9;</code>
       * @return The operatorComment.
       */
      public java.lang.String getOperatorComment() {
        java.lang.Object ref = operatorComment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorComment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear or when no comment was supplied.
       * </pre>
       *
       * <code>string operator_comment = 9;</code>
       * @return The bytes for operatorComment.
       */
      public com.google.protobuf.ByteString
          getOperatorCommentBytes() {
        java.lang.Object ref = operatorComment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorComment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear or when no comment was supplied.
       * </pre>
       *
       * <code>string operator_comment = 9;</code>
       * @param value The operatorComment to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorComment(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorComment_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear or when no comment was supplied.
       * </pre>
       *
       * <code>string operator_comment = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorComment() {
        operatorComment_ = getDefaultInstance().getOperatorComment();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator-supplied comment recorded by MXAccess on Acknowledge transitions.
       * Empty on raise / clear or when no comment was supplied.
       * </pre>
       *
       * <code>string operator_comment = 9;</code>
       * @param value The bytes for operatorComment to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorComment_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }

      private java.lang.Object category_ = "";
      /**
       * <pre>
       * MxAccess alarm category (taxonomy bucket configured in the Galaxy
       * template, e.g. "Process", "Safety", "Diagnostics").
       * </pre>
       *
       * <code>string category = 10;</code>
       * @return The category.
       */
      public java.lang.String getCategory() {
        java.lang.Object ref = category_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          category_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * MxAccess alarm category (taxonomy bucket configured in the Galaxy
       * template, e.g. "Process", "Safety", "Diagnostics").
       * </pre>
       *
       * <code>string category = 10;</code>
       * @return The bytes for category.
       */
      public com.google.protobuf.ByteString
          getCategoryBytes() {
        java.lang.Object ref = category_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          category_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * MxAccess alarm category (taxonomy bucket configured in the Galaxy
       * template, e.g. "Process", "Safety", "Diagnostics").
       * </pre>
       *
       * <code>string category = 10;</code>
       * @param value The category to set.
       * @return This builder for chaining.
       */
      public Builder setCategory(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        category_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * MxAccess alarm category (taxonomy bucket configured in the Galaxy
       * template, e.g. "Process", "Safety", "Diagnostics").
       * </pre>
       *
       * <code>string category = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategory() {
        category_ = getDefaultInstance().getCategory();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * MxAccess alarm category (taxonomy bucket configured in the Galaxy
       * template, e.g. "Process", "Safety", "Diagnostics").
       * </pre>
       *
       * <code>string category = 10;</code>
       * @param value The bytes for category to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        category_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /**
       * <pre>
       * Human-readable alarm description from the MxAccess alarm definition.
       * </pre>
       *
       * <code>string description = 11;</code>
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Human-readable alarm description from the MxAccess alarm definition.
       * </pre>
       *
       * <code>string description = 11;</code>
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Human-readable alarm description from the MxAccess alarm definition.
       * </pre>
       *
       * <code>string description = 11;</code>
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        description_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Human-readable alarm description from the MxAccess alarm definition.
       * </pre>
       *
       * <code>string description = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        description_ = getDefaultInstance().getDescription();
        bitField0_ = (bitField0_ & ~0x00000400);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Human-readable alarm description from the MxAccess alarm definition.
       * </pre>
       *
       * <code>string description = 11;</code>
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        description_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue currentValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> currentValueBuilder_;
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       * @return Whether the currentValue field is set.
       */
      public boolean hasCurrentValue() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       * @return The currentValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getCurrentValue() {
        if (currentValueBuilder_ == null) {
          return currentValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
        } else {
          return currentValueBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder setCurrentValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (currentValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          currentValue_ = value;
        } else {
          currentValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder setCurrentValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (currentValueBuilder_ == null) {
          currentValue_ = builderForValue.build();
        } else {
          currentValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder mergeCurrentValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (currentValueBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
            currentValue_ != null &&
            currentValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getCurrentValueBuilder().mergeFrom(value);
          } else {
            currentValue_ = value;
          }
        } else {
          currentValueBuilder_.mergeFrom(value);
        }
        if (currentValue_ != null) {
          bitField0_ |= 0x00000800;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder clearCurrentValue() {
        bitField0_ = (bitField0_ & ~0x00000800);
        currentValue_ = null;
        if (currentValueBuilder_ != null) {
          currentValueBuilder_.dispose();
          currentValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getCurrentValueBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return internalGetCurrentValueFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getCurrentValueOrBuilder() {
        if (currentValueBuilder_ != null) {
          return currentValueBuilder_.getMessageOrBuilder();
        } else {
          return currentValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
        }
      }
      /**
       * <pre>
       * Current alarm value (the value of the source attribute at the moment of
       * transition). Optional; populated when MxAccess surfaces it.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetCurrentValueFieldBuilder() {
        if (currentValueBuilder_ == null) {
          currentValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getCurrentValue(),
                  getParentForChildren(),
                  isClean());
          currentValue_ = null;
        }
        return currentValueBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue limitValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> limitValueBuilder_;
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       * @return Whether the limitValue field is set.
       */
      public boolean hasLimitValue() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       * @return The limitValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getLimitValue() {
        if (limitValueBuilder_ == null) {
          return limitValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
        } else {
          return limitValueBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder setLimitValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (limitValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          limitValue_ = value;
        } else {
          limitValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder setLimitValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (limitValueBuilder_ == null) {
          limitValue_ = builderForValue.build();
        } else {
          limitValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder mergeLimitValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (limitValueBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0) &&
            limitValue_ != null &&
            limitValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getLimitValueBuilder().mergeFrom(value);
          } else {
            limitValue_ = value;
          }
        } else {
          limitValueBuilder_.mergeFrom(value);
        }
        if (limitValue_ != null) {
          bitField0_ |= 0x00001000;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder clearLimitValue() {
        bitField0_ = (bitField0_ & ~0x00001000);
        limitValue_ = null;
        if (limitValueBuilder_ != null) {
          limitValueBuilder_.dispose();
          limitValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getLimitValueBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return internalGetLimitValueFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getLimitValueOrBuilder() {
        if (limitValueBuilder_ != null) {
          return limitValueBuilder_.getMessageOrBuilder();
        } else {
          return limitValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
        }
      }
      /**
       * <pre>
       * Limit/threshold value that triggered the transition for limit alarms.
       * Optional; populated for AnalogLimitAlarm-family transitions.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetLimitValueFieldBuilder() {
        if (limitValueBuilder_ == null) {
          limitValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getLimitValue(),
                  getParentForChildren(),
                  isClean());
          limitValue_ = null;
        }
        return limitValueBuilder_;
      }

      private boolean degraded_ ;
      /**
       * <pre>
       * True when this transition came from the subtag-monitoring fallback rather
       * than the native alarmmgr provider — synthesized from data changes, reduced
       * fidelity (synthetic GUID, no native raise time).
       * </pre>
       *
       * <code>bool degraded = 14;</code>
       * @return The degraded.
       */
      @java.lang.Override
      public boolean getDegraded() {
        return degraded_;
      }
      /**
       * <pre>
       * True when this transition came from the subtag-monitoring fallback rather
       * than the native alarmmgr provider — synthesized from data changes, reduced
       * fidelity (synthetic GUID, no native raise time).
       * </pre>
       *
       * <code>bool degraded = 14;</code>
       * @param value The degraded to set.
       * @return This builder for chaining.
       */
      public Builder setDegraded(boolean value) {

        degraded_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * True when this transition came from the subtag-monitoring fallback rather
       * than the native alarmmgr provider — synthesized from data changes, reduced
       * fidelity (synthetic GUID, no native raise time).
       * </pre>
       *
       * <code>bool degraded = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearDegraded() {
        bitField0_ = (bitField0_ & ~0x00002000);
        degraded_ = false;
        onChanged();
        return this;
      }

      private int sourceProvider_ = 0;
      /**
       * <pre>
       * Which provider produced this transition.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @return The enum numeric value on the wire for sourceProvider.
       */
      @java.lang.Override public int getSourceProviderValue() {
        return sourceProvider_;
      }
      /**
       * <pre>
       * Which provider produced this transition.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @param value The enum numeric value on the wire for sourceProvider to set.
       * @return This builder for chaining.
       */
      public Builder setSourceProviderValue(int value) {
        sourceProvider_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Which provider produced this transition.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @return The sourceProvider.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getSourceProvider() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(sourceProvider_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Which provider produced this transition.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @param value The sourceProvider to set.
       * @return This builder for chaining.
       */
      public Builder setSourceProvider(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00004000;
        sourceProvider_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Which provider produced this transition.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceProvider() {
        bitField0_ = (bitField0_ & ~0x00004000);
        sourceProvider_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OnAlarmTransitionEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OnAlarmTransitionEvent)
    private static final mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OnAlarmTransitionEvent>
        PARSER = new com.google.protobuf.AbstractParser<OnAlarmTransitionEvent>() {
      @java.lang.Override
      public OnAlarmTransitionEvent 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<OnAlarmTransitionEvent> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OnAlarmProviderModeChangedEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The enum numeric value on the wire for mode.
     */
    int getModeValue();
    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The mode.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getMode();

    /**
     * <code>string reason = 2;</code>
     * @return The reason.
     */
    java.lang.String getReason();
    /**
     * <code>string reason = 2;</code>
     * @return The bytes for reason.
     */
    com.google.protobuf.ByteString
        getReasonBytes();

    /**
     * <pre>
     * COM HRESULT that triggered failover; 0 on failback
     * </pre>
     *
     * <code>int32 hresult = 3;</code>
     * @return The hresult.
     */
    int getHresult();

    /**
     * <code>.google.protobuf.Timestamp at = 4;</code>
     * @return Whether the at field is set.
     */
    boolean hasAt();
    /**
     * <code>.google.protobuf.Timestamp at = 4;</code>
     * @return The at.
     */
    com.google.protobuf.Timestamp getAt();
    /**
     * <code>.google.protobuf.Timestamp at = 4;</code>
     */
    com.google.protobuf.TimestampOrBuilder getAtOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent}
   */
  public static final class OnAlarmProviderModeChangedEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent)
      OnAlarmProviderModeChangedEventOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "OnAlarmProviderModeChangedEvent");
    }
    // Use OnAlarmProviderModeChangedEvent.newBuilder() to construct.
    private OnAlarmProviderModeChangedEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private OnAlarmProviderModeChangedEvent() {
      mode_ = 0;
      reason_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.Builder.class);
    }

    private int bitField0_;
    public static final int MODE_FIELD_NUMBER = 1;
    private int mode_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The enum numeric value on the wire for mode.
     */
    @java.lang.Override public int getModeValue() {
      return mode_;
    }
    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The mode.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getMode() {
      mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(mode_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
    }

    public static final int REASON_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object reason_ = "";
    /**
     * <code>string reason = 2;</code>
     * @return The reason.
     */
    @java.lang.Override
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      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();
        reason_ = s;
        return s;
      }
    }
    /**
     * <code>string reason = 2;</code>
     * @return The bytes for reason.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HRESULT_FIELD_NUMBER = 3;
    private int hresult_ = 0;
    /**
     * <pre>
     * COM HRESULT that triggered failover; 0 on failback
     * </pre>
     *
     * <code>int32 hresult = 3;</code>
     * @return The hresult.
     */
    @java.lang.Override
    public int getHresult() {
      return hresult_;
    }

    public static final int AT_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp at_;
    /**
     * <code>.google.protobuf.Timestamp at = 4;</code>
     * @return Whether the at field is set.
     */
    @java.lang.Override
    public boolean hasAt() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp at = 4;</code>
     * @return The at.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getAt() {
      return at_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : at_;
    }
    /**
     * <code>.google.protobuf.Timestamp at = 4;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getAtOrBuilder() {
      return at_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : at_;
    }

    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 (mode_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, mode_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(reason_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, reason_);
      }
      if (hresult_ != 0) {
        output.writeInt32(3, hresult_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getAt());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (mode_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, mode_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(reason_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, reason_);
      }
      if (hresult_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, hresult_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getAt());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent other = (mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) obj;

      if (mode_ != other.mode_) return false;
      if (!getReason()
          .equals(other.getReason())) return false;
      if (getHresult()
          != other.getHresult()) return false;
      if (hasAt() != other.hasAt()) return false;
      if (hasAt()) {
        if (!getAt()
            .equals(other.getAt())) 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();
      hash = (37 * hash) + MODE_FIELD_NUMBER;
      hash = (53 * hash) + mode_;
      hash = (37 * hash) + REASON_FIELD_NUMBER;
      hash = (53 * hash) + getReason().hashCode();
      hash = (37 * hash) + HRESULT_FIELD_NUMBER;
      hash = (53 * hash) + getHresult();
      if (hasAt()) {
        hash = (37 * hash) + AT_FIELD_NUMBER;
        hash = (53 * hash) + getAt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent 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 mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent 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(mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent 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 mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent)
        mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.class, mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetAtFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        mode_ = 0;
        reason_ = "";
        hresult_ = 0;
        at_ = null;
        if (atBuilder_ != null) {
          atBuilder_.dispose();
          atBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent build() {
        mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent result = new mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.mode_ = mode_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.reason_ = reason_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.hresult_ = hresult_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.at_ = atBuilder_ == null
              ? at_
              : atBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent.getDefaultInstance()) return this;
        if (other.mode_ != 0) {
          setModeValue(other.getModeValue());
        }
        if (!other.getReason().isEmpty()) {
          reason_ = other.reason_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getHresult() != 0) {
          setHresult(other.getHresult());
        }
        if (other.hasAt()) {
          mergeAt(other.getAt());
        }
        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 8: {
                mode_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                reason_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                hresult_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                input.readMessage(
                    internalGetAtFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 int mode_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @return The enum numeric value on the wire for mode.
       */
      @java.lang.Override public int getModeValue() {
        return mode_;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @param value The enum numeric value on the wire for mode to set.
       * @return This builder for chaining.
       */
      public Builder setModeValue(int value) {
        mode_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @return The mode.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getMode() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(mode_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @param value The mode to set.
       * @return This builder for chaining.
       */
      public Builder setMode(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        mode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        mode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object reason_ = "";
      /**
       * <code>string reason = 2;</code>
       * @return The reason.
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          reason_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string reason = 2;</code>
       * @return The bytes for reason.
       */
      public com.google.protobuf.ByteString
          getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string reason = 2;</code>
       * @param value The reason to set.
       * @return This builder for chaining.
       */
      public Builder setReason(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        reason_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string reason = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearReason() {
        reason_ = getDefaultInstance().getReason();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string reason = 2;</code>
       * @param value The bytes for reason to set.
       * @return This builder for chaining.
       */
      public Builder setReasonBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        reason_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int hresult_ ;
      /**
       * <pre>
       * COM HRESULT that triggered failover; 0 on failback
       * </pre>
       *
       * <code>int32 hresult = 3;</code>
       * @return The hresult.
       */
      @java.lang.Override
      public int getHresult() {
        return hresult_;
      }
      /**
       * <pre>
       * COM HRESULT that triggered failover; 0 on failback
       * </pre>
       *
       * <code>int32 hresult = 3;</code>
       * @param value The hresult to set.
       * @return This builder for chaining.
       */
      public Builder setHresult(int value) {

        hresult_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * COM HRESULT that triggered failover; 0 on failback
       * </pre>
       *
       * <code>int32 hresult = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearHresult() {
        bitField0_ = (bitField0_ & ~0x00000004);
        hresult_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp at_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> atBuilder_;
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       * @return Whether the at field is set.
       */
      public boolean hasAt() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       * @return The at.
       */
      public com.google.protobuf.Timestamp getAt() {
        if (atBuilder_ == null) {
          return at_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : at_;
        } else {
          return atBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       */
      public Builder setAt(com.google.protobuf.Timestamp value) {
        if (atBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          at_ = value;
        } else {
          atBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       */
      public Builder setAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (atBuilder_ == null) {
          at_ = builderForValue.build();
        } else {
          atBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       */
      public Builder mergeAt(com.google.protobuf.Timestamp value) {
        if (atBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            at_ != null &&
            at_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getAtBuilder().mergeFrom(value);
          } else {
            at_ = value;
          }
        } else {
          atBuilder_.mergeFrom(value);
        }
        if (at_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       */
      public Builder clearAt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        at_ = null;
        if (atBuilder_ != null) {
          atBuilder_.dispose();
          atBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       */
      public com.google.protobuf.Timestamp.Builder getAtBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetAtFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getAtOrBuilder() {
        if (atBuilder_ != null) {
          return atBuilder_.getMessageOrBuilder();
        } else {
          return at_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : at_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp at = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetAtFieldBuilder() {
        if (atBuilder_ == null) {
          atBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getAt(),
                  getParentForChildren(),
                  isClean());
          at_ = null;
        }
        return atBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.OnAlarmProviderModeChangedEvent)
    private static final mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OnAlarmProviderModeChangedEvent>
        PARSER = new com.google.protobuf.AbstractParser<OnAlarmProviderModeChangedEvent>() {
      @java.lang.Override
      public OnAlarmProviderModeChangedEvent 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<OnAlarmProviderModeChangedEvent> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmProviderModeChangedEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ActiveAlarmSnapshotOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ActiveAlarmSnapshot)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string alarm_full_reference = 1;</code>
     * @return The alarmFullReference.
     */
    java.lang.String getAlarmFullReference();
    /**
     * <code>string alarm_full_reference = 1;</code>
     * @return The bytes for alarmFullReference.
     */
    com.google.protobuf.ByteString
        getAlarmFullReferenceBytes();

    /**
     * <code>string source_object_reference = 2;</code>
     * @return The sourceObjectReference.
     */
    java.lang.String getSourceObjectReference();
    /**
     * <code>string source_object_reference = 2;</code>
     * @return The bytes for sourceObjectReference.
     */
    com.google.protobuf.ByteString
        getSourceObjectReferenceBytes();

    /**
     * <code>string alarm_type_name = 3;</code>
     * @return The alarmTypeName.
     */
    java.lang.String getAlarmTypeName();
    /**
     * <code>string alarm_type_name = 3;</code>
     * @return The bytes for alarmTypeName.
     */
    com.google.protobuf.ByteString
        getAlarmTypeNameBytes();

    /**
     * <code>int32 severity = 4;</code>
     * @return The severity.
     */
    int getSeverity();

    /**
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
     * @return Whether the originalRaiseTimestamp field is set.
     */
    boolean hasOriginalRaiseTimestamp();
    /**
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
     * @return The originalRaiseTimestamp.
     */
    com.google.protobuf.Timestamp getOriginalRaiseTimestamp();
    /**
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
     */
    com.google.protobuf.TimestampOrBuilder getOriginalRaiseTimestampOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
     * @return The enum numeric value on the wire for currentState.
     */
    int getCurrentStateValue();
    /**
     * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
     * @return The currentState.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState getCurrentState();

    /**
     * <code>string category = 7;</code>
     * @return The category.
     */
    java.lang.String getCategory();
    /**
     * <code>string category = 7;</code>
     * @return The bytes for category.
     */
    com.google.protobuf.ByteString
        getCategoryBytes();

    /**
     * <code>string description = 8;</code>
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * <code>string description = 8;</code>
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();

    /**
     * <pre>
     * When the most recent state transition occurred (last raise, last ack,
     * last clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
     * @return Whether the lastTransitionTimestamp field is set.
     */
    boolean hasLastTransitionTimestamp();
    /**
     * <pre>
     * When the most recent state transition occurred (last raise, last ack,
     * last clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
     * @return The lastTransitionTimestamp.
     */
    com.google.protobuf.Timestamp getLastTransitionTimestamp();
    /**
     * <pre>
     * When the most recent state transition occurred (last raise, last ack,
     * last clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
     */
    com.google.protobuf.TimestampOrBuilder getLastTransitionTimestampOrBuilder();

    /**
     * <pre>
     * Operator who acknowledged the alarm if the current state is ActiveAcked.
     * Empty otherwise.
     * </pre>
     *
     * <code>string operator_user = 10;</code>
     * @return The operatorUser.
     */
    java.lang.String getOperatorUser();
    /**
     * <pre>
     * Operator who acknowledged the alarm if the current state is ActiveAcked.
     * Empty otherwise.
     * </pre>
     *
     * <code>string operator_user = 10;</code>
     * @return The bytes for operatorUser.
     */
    com.google.protobuf.ByteString
        getOperatorUserBytes();

    /**
     * <pre>
     * Operator comment recorded with the most recent acknowledge if the current
     * state is ActiveAcked. Empty otherwise.
     * </pre>
     *
     * <code>string operator_comment = 11;</code>
     * @return The operatorComment.
     */
    java.lang.String getOperatorComment();
    /**
     * <pre>
     * Operator comment recorded with the most recent acknowledge if the current
     * state is ActiveAcked. Empty otherwise.
     * </pre>
     *
     * <code>string operator_comment = 11;</code>
     * @return The bytes for operatorComment.
     */
    com.google.protobuf.ByteString
        getOperatorCommentBytes();

    /**
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return Whether the currentValue field is set.
     */
    boolean hasCurrentValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return The currentValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getCurrentValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getCurrentValueOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return Whether the limitValue field is set.
     */
    boolean hasLimitValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return The limitValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getLimitValue();
    /**
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getLimitValueOrBuilder();

    /**
     * <pre>
     * True when this snapshot came from the subtag-monitoring fallback rather
     * than the native alarmmgr provider — synthesized from data changes, reduced
     * fidelity (synthetic GUID, no native raise time). Mirrors
     * OnAlarmTransitionEvent.degraded.
     * </pre>
     *
     * <code>bool degraded = 14;</code>
     * @return The degraded.
     */
    boolean getDegraded();

    /**
     * <pre>
     * Which provider produced this snapshot. Mirrors
     * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
     * wire (never UNSPECIFIED).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The enum numeric value on the wire for sourceProvider.
     */
    int getSourceProviderValue();
    /**
     * <pre>
     * Which provider produced this snapshot. Mirrors
     * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
     * wire (never UNSPECIFIED).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The sourceProvider.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getSourceProvider();

    /**
     * <pre>
     * True when the provider fetch that produced this snapshot hit the per-fetch
     * cap: the snapshot set may omit active alarms, and the worker suspended its
     * absence-implies-Clear inference for that poll. Says nothing about THIS
     * record's fidelity — the record is as accurate as any other; it flags that
     * the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
     * bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
     * boolean is the only additive way to carry set-level degraded status on that
     * RPC. Distinct from `degraded`, which is about the subtag fallback provider.
     * Additive (proto3): clients that ignore it deserialize the stream unchanged.
     * </pre>
     *
     * <code>bool from_truncated_snapshot = 16;</code>
     * @return The fromTruncatedSnapshot.
     */
    boolean getFromTruncatedSnapshot();
  }
  /**
   * <pre>
   * Snapshot of a currently-active MXAccess alarm condition, returned from a
   * QueryActiveAlarms ConditionRefresh stream.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.ActiveAlarmSnapshot}
   */
  public static final class ActiveAlarmSnapshot extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ActiveAlarmSnapshot)
      ActiveAlarmSnapshotOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ActiveAlarmSnapshot");
    }
    // Use ActiveAlarmSnapshot.newBuilder() to construct.
    private ActiveAlarmSnapshot(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ActiveAlarmSnapshot() {
      alarmFullReference_ = "";
      sourceObjectReference_ = "";
      alarmTypeName_ = "";
      currentState_ = 0;
      category_ = "";
      description_ = "";
      operatorUser_ = "";
      operatorComment_ = "";
      sourceProvider_ = 0;
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.class, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder.class);
    }

    private int bitField0_;
    public static final int ALARM_FULL_REFERENCE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmFullReference_ = "";
    /**
     * <code>string alarm_full_reference = 1;</code>
     * @return The alarmFullReference.
     */
    @java.lang.Override
    public java.lang.String getAlarmFullReference() {
      java.lang.Object ref = alarmFullReference_;
      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();
        alarmFullReference_ = s;
        return s;
      }
    }
    /**
     * <code>string alarm_full_reference = 1;</code>
     * @return The bytes for alarmFullReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmFullReferenceBytes() {
      java.lang.Object ref = alarmFullReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmFullReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOURCE_OBJECT_REFERENCE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object sourceObjectReference_ = "";
    /**
     * <code>string source_object_reference = 2;</code>
     * @return The sourceObjectReference.
     */
    @java.lang.Override
    public java.lang.String getSourceObjectReference() {
      java.lang.Object ref = sourceObjectReference_;
      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();
        sourceObjectReference_ = s;
        return s;
      }
    }
    /**
     * <code>string source_object_reference = 2;</code>
     * @return The bytes for sourceObjectReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceObjectReferenceBytes() {
      java.lang.Object ref = sourceObjectReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceObjectReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALARM_TYPE_NAME_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmTypeName_ = "";
    /**
     * <code>string alarm_type_name = 3;</code>
     * @return The alarmTypeName.
     */
    @java.lang.Override
    public java.lang.String getAlarmTypeName() {
      java.lang.Object ref = alarmTypeName_;
      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();
        alarmTypeName_ = s;
        return s;
      }
    }
    /**
     * <code>string alarm_type_name = 3;</code>
     * @return The bytes for alarmTypeName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmTypeNameBytes() {
      java.lang.Object ref = alarmTypeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmTypeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEVERITY_FIELD_NUMBER = 4;
    private int severity_ = 0;
    /**
     * <code>int32 severity = 4;</code>
     * @return The severity.
     */
    @java.lang.Override
    public int getSeverity() {
      return severity_;
    }

    public static final int ORIGINAL_RAISE_TIMESTAMP_FIELD_NUMBER = 5;
    private com.google.protobuf.Timestamp originalRaiseTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
     * @return Whether the originalRaiseTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasOriginalRaiseTimestamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
     * @return The originalRaiseTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getOriginalRaiseTimestamp() {
      return originalRaiseTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getOriginalRaiseTimestampOrBuilder() {
      return originalRaiseTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
    }

    public static final int CURRENT_STATE_FIELD_NUMBER = 6;
    private int currentState_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
     * @return The enum numeric value on the wire for currentState.
     */
    @java.lang.Override public int getCurrentStateValue() {
      return currentState_;
    }
    /**
     * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
     * @return The currentState.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState getCurrentState() {
      mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState result = mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState.forNumber(currentState_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState.UNRECOGNIZED : result;
    }

    public static final int CATEGORY_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object category_ = "";
    /**
     * <code>string category = 7;</code>
     * @return The category.
     */
    @java.lang.Override
    public java.lang.String getCategory() {
      java.lang.Object ref = category_;
      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();
        category_ = s;
        return s;
      }
    }
    /**
     * <code>string category = 7;</code>
     * @return The bytes for category.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCategoryBytes() {
      java.lang.Object ref = category_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        category_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private volatile java.lang.Object description_ = "";
    /**
     * <code>string description = 8;</code>
     * @return The description.
     */
    @java.lang.Override
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      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();
        description_ = s;
        return s;
      }
    }
    /**
     * <code>string description = 8;</code>
     * @return The bytes for description.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LAST_TRANSITION_TIMESTAMP_FIELD_NUMBER = 9;
    private com.google.protobuf.Timestamp lastTransitionTimestamp_;
    /**
     * <pre>
     * When the most recent state transition occurred (last raise, last ack,
     * last clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
     * @return Whether the lastTransitionTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasLastTransitionTimestamp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * When the most recent state transition occurred (last raise, last ack,
     * last clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
     * @return The lastTransitionTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getLastTransitionTimestamp() {
      return lastTransitionTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastTransitionTimestamp_;
    }
    /**
     * <pre>
     * When the most recent state transition occurred (last raise, last ack,
     * last clear).
     * </pre>
     *
     * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getLastTransitionTimestampOrBuilder() {
      return lastTransitionTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastTransitionTimestamp_;
    }

    public static final int OPERATOR_USER_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorUser_ = "";
    /**
     * <pre>
     * Operator who acknowledged the alarm if the current state is ActiveAcked.
     * Empty otherwise.
     * </pre>
     *
     * <code>string operator_user = 10;</code>
     * @return The operatorUser.
     */
    @java.lang.Override
    public java.lang.String getOperatorUser() {
      java.lang.Object ref = operatorUser_;
      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();
        operatorUser_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Operator who acknowledged the alarm if the current state is ActiveAcked.
     * Empty otherwise.
     * </pre>
     *
     * <code>string operator_user = 10;</code>
     * @return The bytes for operatorUser.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorUserBytes() {
      java.lang.Object ref = operatorUser_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorUser_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_COMMENT_FIELD_NUMBER = 11;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorComment_ = "";
    /**
     * <pre>
     * Operator comment recorded with the most recent acknowledge if the current
     * state is ActiveAcked. Empty otherwise.
     * </pre>
     *
     * <code>string operator_comment = 11;</code>
     * @return The operatorComment.
     */
    @java.lang.Override
    public java.lang.String getOperatorComment() {
      java.lang.Object ref = operatorComment_;
      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();
        operatorComment_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Operator comment recorded with the most recent acknowledge if the current
     * state is ActiveAcked. Empty otherwise.
     * </pre>
     *
     * <code>string operator_comment = 11;</code>
     * @return The bytes for operatorComment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorCommentBytes() {
      java.lang.Object ref = operatorComment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorComment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CURRENT_VALUE_FIELD_NUMBER = 12;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue currentValue_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return Whether the currentValue field is set.
     */
    @java.lang.Override
    public boolean hasCurrentValue() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     * @return The currentValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getCurrentValue() {
      return currentValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getCurrentValueOrBuilder() {
      return currentValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
    }

    public static final int LIMIT_VALUE_FIELD_NUMBER = 13;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue limitValue_;
    /**
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return Whether the limitValue field is set.
     */
    @java.lang.Override
    public boolean hasLimitValue() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     * @return The limitValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getLimitValue() {
      return limitValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getLimitValueOrBuilder() {
      return limitValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
    }

    public static final int DEGRADED_FIELD_NUMBER = 14;
    private boolean degraded_ = false;
    /**
     * <pre>
     * True when this snapshot came from the subtag-monitoring fallback rather
     * than the native alarmmgr provider — synthesized from data changes, reduced
     * fidelity (synthetic GUID, no native raise time). Mirrors
     * OnAlarmTransitionEvent.degraded.
     * </pre>
     *
     * <code>bool degraded = 14;</code>
     * @return The degraded.
     */
    @java.lang.Override
    public boolean getDegraded() {
      return degraded_;
    }

    public static final int SOURCE_PROVIDER_FIELD_NUMBER = 15;
    private int sourceProvider_ = 0;
    /**
     * <pre>
     * Which provider produced this snapshot. Mirrors
     * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
     * wire (never UNSPECIFIED).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The enum numeric value on the wire for sourceProvider.
     */
    @java.lang.Override public int getSourceProviderValue() {
      return sourceProvider_;
    }
    /**
     * <pre>
     * Which provider produced this snapshot. Mirrors
     * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
     * wire (never UNSPECIFIED).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
     * @return The sourceProvider.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getSourceProvider() {
      mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(sourceProvider_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
    }

    public static final int FROM_TRUNCATED_SNAPSHOT_FIELD_NUMBER = 16;
    private boolean fromTruncatedSnapshot_ = false;
    /**
     * <pre>
     * True when the provider fetch that produced this snapshot hit the per-fetch
     * cap: the snapshot set may omit active alarms, and the worker suspended its
     * absence-implies-Clear inference for that poll. Says nothing about THIS
     * record's fidelity — the record is as accurate as any other; it flags that
     * the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
     * bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
     * boolean is the only additive way to carry set-level degraded status on that
     * RPC. Distinct from `degraded`, which is about the subtag fallback provider.
     * Additive (proto3): clients that ignore it deserialize the stream unchanged.
     * </pre>
     *
     * <code>bool from_truncated_snapshot = 16;</code>
     * @return The fromTruncatedSnapshot.
     */
    @java.lang.Override
    public boolean getFromTruncatedSnapshot() {
      return fromTruncatedSnapshot_;
    }

    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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceObjectReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, sourceObjectReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmTypeName_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, alarmTypeName_);
      }
      if (severity_ != 0) {
        output.writeInt32(4, severity_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(5, getOriginalRaiseTimestamp());
      }
      if (currentState_ != mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState.ALARM_CONDITION_STATE_UNSPECIFIED.getNumber()) {
        output.writeEnum(6, currentState_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(category_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 7, category_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(description_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 8, description_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(9, getLastTransitionTimestamp());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 10, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorComment_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 11, operatorComment_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(12, getCurrentValue());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(13, getLimitValue());
      }
      if (degraded_ != false) {
        output.writeBool(14, degraded_);
      }
      if (sourceProvider_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        output.writeEnum(15, sourceProvider_);
      }
      if (fromTruncatedSnapshot_ != false) {
        output.writeBool(16, fromTruncatedSnapshot_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceObjectReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, sourceObjectReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmTypeName_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, alarmTypeName_);
      }
      if (severity_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, severity_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getOriginalRaiseTimestamp());
      }
      if (currentState_ != mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState.ALARM_CONDITION_STATE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, currentState_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(category_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(7, category_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(description_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(8, description_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getLastTransitionTimestamp());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(10, operatorUser_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorComment_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(11, operatorComment_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getCurrentValue());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getLimitValue());
      }
      if (degraded_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, degraded_);
      }
      if (sourceProvider_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(15, sourceProvider_);
      }
      if (fromTruncatedSnapshot_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(16, fromTruncatedSnapshot_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot other = (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) obj;

      if (!getAlarmFullReference()
          .equals(other.getAlarmFullReference())) return false;
      if (!getSourceObjectReference()
          .equals(other.getSourceObjectReference())) return false;
      if (!getAlarmTypeName()
          .equals(other.getAlarmTypeName())) return false;
      if (getSeverity()
          != other.getSeverity()) return false;
      if (hasOriginalRaiseTimestamp() != other.hasOriginalRaiseTimestamp()) return false;
      if (hasOriginalRaiseTimestamp()) {
        if (!getOriginalRaiseTimestamp()
            .equals(other.getOriginalRaiseTimestamp())) return false;
      }
      if (currentState_ != other.currentState_) return false;
      if (!getCategory()
          .equals(other.getCategory())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (hasLastTransitionTimestamp() != other.hasLastTransitionTimestamp()) return false;
      if (hasLastTransitionTimestamp()) {
        if (!getLastTransitionTimestamp()
            .equals(other.getLastTransitionTimestamp())) return false;
      }
      if (!getOperatorUser()
          .equals(other.getOperatorUser())) return false;
      if (!getOperatorComment()
          .equals(other.getOperatorComment())) return false;
      if (hasCurrentValue() != other.hasCurrentValue()) return false;
      if (hasCurrentValue()) {
        if (!getCurrentValue()
            .equals(other.getCurrentValue())) return false;
      }
      if (hasLimitValue() != other.hasLimitValue()) return false;
      if (hasLimitValue()) {
        if (!getLimitValue()
            .equals(other.getLimitValue())) return false;
      }
      if (getDegraded()
          != other.getDegraded()) return false;
      if (sourceProvider_ != other.sourceProvider_) return false;
      if (getFromTruncatedSnapshot()
          != other.getFromTruncatedSnapshot()) 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();
      hash = (37 * hash) + ALARM_FULL_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmFullReference().hashCode();
      hash = (37 * hash) + SOURCE_OBJECT_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getSourceObjectReference().hashCode();
      hash = (37 * hash) + ALARM_TYPE_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmTypeName().hashCode();
      hash = (37 * hash) + SEVERITY_FIELD_NUMBER;
      hash = (53 * hash) + getSeverity();
      if (hasOriginalRaiseTimestamp()) {
        hash = (37 * hash) + ORIGINAL_RAISE_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getOriginalRaiseTimestamp().hashCode();
      }
      hash = (37 * hash) + CURRENT_STATE_FIELD_NUMBER;
      hash = (53 * hash) + currentState_;
      hash = (37 * hash) + CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + getCategory().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      if (hasLastTransitionTimestamp()) {
        hash = (37 * hash) + LAST_TRANSITION_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getLastTransitionTimestamp().hashCode();
      }
      hash = (37 * hash) + OPERATOR_USER_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorUser().hashCode();
      hash = (37 * hash) + OPERATOR_COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorComment().hashCode();
      if (hasCurrentValue()) {
        hash = (37 * hash) + CURRENT_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getCurrentValue().hashCode();
      }
      if (hasLimitValue()) {
        hash = (37 * hash) + LIMIT_VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getLimitValue().hashCode();
      }
      hash = (37 * hash) + DEGRADED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDegraded());
      hash = (37 * hash) + SOURCE_PROVIDER_FIELD_NUMBER;
      hash = (53 * hash) + sourceProvider_;
      hash = (37 * hash) + FROM_TRUNCATED_SNAPSHOT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getFromTruncatedSnapshot());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot 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 mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot 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 mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot 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(mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot 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;
    }
    /**
     * <pre>
     * Snapshot of a currently-active MXAccess alarm condition, returned from a
     * QueryActiveAlarms ConditionRefresh stream.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.ActiveAlarmSnapshot}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ActiveAlarmSnapshot)
        mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.class, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetOriginalRaiseTimestampFieldBuilder();
          internalGetLastTransitionTimestampFieldBuilder();
          internalGetCurrentValueFieldBuilder();
          internalGetLimitValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        alarmFullReference_ = "";
        sourceObjectReference_ = "";
        alarmTypeName_ = "";
        severity_ = 0;
        originalRaiseTimestamp_ = null;
        if (originalRaiseTimestampBuilder_ != null) {
          originalRaiseTimestampBuilder_.dispose();
          originalRaiseTimestampBuilder_ = null;
        }
        currentState_ = 0;
        category_ = "";
        description_ = "";
        lastTransitionTimestamp_ = null;
        if (lastTransitionTimestampBuilder_ != null) {
          lastTransitionTimestampBuilder_.dispose();
          lastTransitionTimestampBuilder_ = null;
        }
        operatorUser_ = "";
        operatorComment_ = "";
        currentValue_ = null;
        if (currentValueBuilder_ != null) {
          currentValueBuilder_.dispose();
          currentValueBuilder_ = null;
        }
        limitValue_ = null;
        if (limitValueBuilder_ != null) {
          limitValueBuilder_.dispose();
          limitValueBuilder_ = null;
        }
        degraded_ = false;
        sourceProvider_ = 0;
        fromTruncatedSnapshot_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot build() {
        mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot result = new mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.alarmFullReference_ = alarmFullReference_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.sourceObjectReference_ = sourceObjectReference_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.alarmTypeName_ = alarmTypeName_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.severity_ = severity_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.originalRaiseTimestamp_ = originalRaiseTimestampBuilder_ == null
              ? originalRaiseTimestamp_
              : originalRaiseTimestampBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.currentState_ = currentState_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.category_ = category_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.description_ = description_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.lastTransitionTimestamp_ = lastTransitionTimestampBuilder_ == null
              ? lastTransitionTimestamp_
              : lastTransitionTimestampBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.operatorUser_ = operatorUser_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.operatorComment_ = operatorComment_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.currentValue_ = currentValueBuilder_ == null
              ? currentValue_
              : currentValueBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.limitValue_ = limitValueBuilder_ == null
              ? limitValue_
              : limitValueBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.degraded_ = degraded_;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.sourceProvider_ = sourceProvider_;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.fromTruncatedSnapshot_ = fromTruncatedSnapshot_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance()) return this;
        if (!other.getAlarmFullReference().isEmpty()) {
          alarmFullReference_ = other.alarmFullReference_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getSourceObjectReference().isEmpty()) {
          sourceObjectReference_ = other.sourceObjectReference_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getAlarmTypeName().isEmpty()) {
          alarmTypeName_ = other.alarmTypeName_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.getSeverity() != 0) {
          setSeverity(other.getSeverity());
        }
        if (other.hasOriginalRaiseTimestamp()) {
          mergeOriginalRaiseTimestamp(other.getOriginalRaiseTimestamp());
        }
        if (other.currentState_ != 0) {
          setCurrentStateValue(other.getCurrentStateValue());
        }
        if (!other.getCategory().isEmpty()) {
          category_ = other.category_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (other.hasLastTransitionTimestamp()) {
          mergeLastTransitionTimestamp(other.getLastTransitionTimestamp());
        }
        if (!other.getOperatorUser().isEmpty()) {
          operatorUser_ = other.operatorUser_;
          bitField0_ |= 0x00000200;
          onChanged();
        }
        if (!other.getOperatorComment().isEmpty()) {
          operatorComment_ = other.operatorComment_;
          bitField0_ |= 0x00000400;
          onChanged();
        }
        if (other.hasCurrentValue()) {
          mergeCurrentValue(other.getCurrentValue());
        }
        if (other.hasLimitValue()) {
          mergeLimitValue(other.getLimitValue());
        }
        if (other.getDegraded() != false) {
          setDegraded(other.getDegraded());
        }
        if (other.sourceProvider_ != 0) {
          setSourceProviderValue(other.getSourceProviderValue());
        }
        if (other.getFromTruncatedSnapshot() != false) {
          setFromTruncatedSnapshot(other.getFromTruncatedSnapshot());
        }
        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: {
                alarmFullReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                sourceObjectReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                alarmTypeName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                severity_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                input.readMessage(
                    internalGetOriginalRaiseTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 48: {
                currentState_ = input.readEnum();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                category_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                description_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    internalGetLastTransitionTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                operatorUser_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 90: {
                operatorComment_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    internalGetCurrentValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    internalGetLimitValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 112: {
                degraded_ = input.readBool();
                bitField0_ |= 0x00002000;
                break;
              } // case 112
              case 120: {
                sourceProvider_ = input.readEnum();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              case 128: {
                fromTruncatedSnapshot_ = input.readBool();
                bitField0_ |= 0x00008000;
                break;
              } // case 128
              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 alarmFullReference_ = "";
      /**
       * <code>string alarm_full_reference = 1;</code>
       * @return The alarmFullReference.
       */
      public java.lang.String getAlarmFullReference() {
        java.lang.Object ref = alarmFullReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmFullReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string alarm_full_reference = 1;</code>
       * @return The bytes for alarmFullReference.
       */
      public com.google.protobuf.ByteString
          getAlarmFullReferenceBytes() {
        java.lang.Object ref = alarmFullReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmFullReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string alarm_full_reference = 1;</code>
       * @param value The alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmFullReference_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_full_reference = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmFullReference() {
        alarmFullReference_ = getDefaultInstance().getAlarmFullReference();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_full_reference = 1;</code>
       * @param value The bytes for alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmFullReference_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object sourceObjectReference_ = "";
      /**
       * <code>string source_object_reference = 2;</code>
       * @return The sourceObjectReference.
       */
      public java.lang.String getSourceObjectReference() {
        java.lang.Object ref = sourceObjectReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sourceObjectReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string source_object_reference = 2;</code>
       * @return The bytes for sourceObjectReference.
       */
      public com.google.protobuf.ByteString
          getSourceObjectReferenceBytes() {
        java.lang.Object ref = sourceObjectReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sourceObjectReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string source_object_reference = 2;</code>
       * @param value The sourceObjectReference to set.
       * @return This builder for chaining.
       */
      public Builder setSourceObjectReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        sourceObjectReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string source_object_reference = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceObjectReference() {
        sourceObjectReference_ = getDefaultInstance().getSourceObjectReference();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string source_object_reference = 2;</code>
       * @param value The bytes for sourceObjectReference to set.
       * @return This builder for chaining.
       */
      public Builder setSourceObjectReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        sourceObjectReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object alarmTypeName_ = "";
      /**
       * <code>string alarm_type_name = 3;</code>
       * @return The alarmTypeName.
       */
      public java.lang.String getAlarmTypeName() {
        java.lang.Object ref = alarmTypeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmTypeName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string alarm_type_name = 3;</code>
       * @return The bytes for alarmTypeName.
       */
      public com.google.protobuf.ByteString
          getAlarmTypeNameBytes() {
        java.lang.Object ref = alarmTypeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmTypeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string alarm_type_name = 3;</code>
       * @param value The alarmTypeName to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmTypeName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmTypeName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_type_name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmTypeName() {
        alarmTypeName_ = getDefaultInstance().getAlarmTypeName();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_type_name = 3;</code>
       * @param value The bytes for alarmTypeName to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmTypeNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmTypeName_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private int severity_ ;
      /**
       * <code>int32 severity = 4;</code>
       * @return The severity.
       */
      @java.lang.Override
      public int getSeverity() {
        return severity_;
      }
      /**
       * <code>int32 severity = 4;</code>
       * @param value The severity to set.
       * @return This builder for chaining.
       */
      public Builder setSeverity(int value) {

        severity_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 severity = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSeverity() {
        bitField0_ = (bitField0_ & ~0x00000008);
        severity_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp originalRaiseTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> originalRaiseTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       * @return Whether the originalRaiseTimestamp field is set.
       */
      public boolean hasOriginalRaiseTimestamp() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       * @return The originalRaiseTimestamp.
       */
      public com.google.protobuf.Timestamp getOriginalRaiseTimestamp() {
        if (originalRaiseTimestampBuilder_ == null) {
          return originalRaiseTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
        } else {
          return originalRaiseTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       */
      public Builder setOriginalRaiseTimestamp(com.google.protobuf.Timestamp value) {
        if (originalRaiseTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          originalRaiseTimestamp_ = value;
        } else {
          originalRaiseTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       */
      public Builder setOriginalRaiseTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (originalRaiseTimestampBuilder_ == null) {
          originalRaiseTimestamp_ = builderForValue.build();
        } else {
          originalRaiseTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       */
      public Builder mergeOriginalRaiseTimestamp(com.google.protobuf.Timestamp value) {
        if (originalRaiseTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            originalRaiseTimestamp_ != null &&
            originalRaiseTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getOriginalRaiseTimestampBuilder().mergeFrom(value);
          } else {
            originalRaiseTimestamp_ = value;
          }
        } else {
          originalRaiseTimestampBuilder_.mergeFrom(value);
        }
        if (originalRaiseTimestamp_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       */
      public Builder clearOriginalRaiseTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000010);
        originalRaiseTimestamp_ = null;
        if (originalRaiseTimestampBuilder_ != null) {
          originalRaiseTimestampBuilder_.dispose();
          originalRaiseTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       */
      public com.google.protobuf.Timestamp.Builder getOriginalRaiseTimestampBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return internalGetOriginalRaiseTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getOriginalRaiseTimestampOrBuilder() {
        if (originalRaiseTimestampBuilder_ != null) {
          return originalRaiseTimestampBuilder_.getMessageOrBuilder();
        } else {
          return originalRaiseTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : originalRaiseTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp original_raise_timestamp = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetOriginalRaiseTimestampFieldBuilder() {
        if (originalRaiseTimestampBuilder_ == null) {
          originalRaiseTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getOriginalRaiseTimestamp(),
                  getParentForChildren(),
                  isClean());
          originalRaiseTimestamp_ = null;
        }
        return originalRaiseTimestampBuilder_;
      }

      private int currentState_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
       * @return The enum numeric value on the wire for currentState.
       */
      @java.lang.Override public int getCurrentStateValue() {
        return currentState_;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
       * @param value The enum numeric value on the wire for currentState to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentStateValue(int value) {
        currentState_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
       * @return The currentState.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState getCurrentState() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState result = mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState.forNumber(currentState_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
       * @param value The currentState to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentState(mxaccess_gateway.v1.MxaccessGateway.AlarmConditionState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000020;
        currentState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmConditionState current_state = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentState() {
        bitField0_ = (bitField0_ & ~0x00000020);
        currentState_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object category_ = "";
      /**
       * <code>string category = 7;</code>
       * @return The category.
       */
      public java.lang.String getCategory() {
        java.lang.Object ref = category_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          category_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string category = 7;</code>
       * @return The bytes for category.
       */
      public com.google.protobuf.ByteString
          getCategoryBytes() {
        java.lang.Object ref = category_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          category_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string category = 7;</code>
       * @param value The category to set.
       * @return This builder for chaining.
       */
      public Builder setCategory(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        category_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>string category = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategory() {
        category_ = getDefaultInstance().getCategory();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>string category = 7;</code>
       * @param value The bytes for category to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        category_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /**
       * <code>string description = 8;</code>
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string description = 8;</code>
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string description = 8;</code>
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        description_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>string description = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        description_ = getDefaultInstance().getDescription();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>string description = 8;</code>
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        description_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp lastTransitionTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> lastTransitionTimestampBuilder_;
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       * @return Whether the lastTransitionTimestamp field is set.
       */
      public boolean hasLastTransitionTimestamp() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       * @return The lastTransitionTimestamp.
       */
      public com.google.protobuf.Timestamp getLastTransitionTimestamp() {
        if (lastTransitionTimestampBuilder_ == null) {
          return lastTransitionTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastTransitionTimestamp_;
        } else {
          return lastTransitionTimestampBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       */
      public Builder setLastTransitionTimestamp(com.google.protobuf.Timestamp value) {
        if (lastTransitionTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastTransitionTimestamp_ = value;
        } else {
          lastTransitionTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       */
      public Builder setLastTransitionTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (lastTransitionTimestampBuilder_ == null) {
          lastTransitionTimestamp_ = builderForValue.build();
        } else {
          lastTransitionTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       */
      public Builder mergeLastTransitionTimestamp(com.google.protobuf.Timestamp value) {
        if (lastTransitionTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
            lastTransitionTimestamp_ != null &&
            lastTransitionTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getLastTransitionTimestampBuilder().mergeFrom(value);
          } else {
            lastTransitionTimestamp_ = value;
          }
        } else {
          lastTransitionTimestampBuilder_.mergeFrom(value);
        }
        if (lastTransitionTimestamp_ != null) {
          bitField0_ |= 0x00000100;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       */
      public Builder clearLastTransitionTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000100);
        lastTransitionTimestamp_ = null;
        if (lastTransitionTimestampBuilder_ != null) {
          lastTransitionTimestampBuilder_.dispose();
          lastTransitionTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       */
      public com.google.protobuf.Timestamp.Builder getLastTransitionTimestampBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return internalGetLastTransitionTimestampFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getLastTransitionTimestampOrBuilder() {
        if (lastTransitionTimestampBuilder_ != null) {
          return lastTransitionTimestampBuilder_.getMessageOrBuilder();
        } else {
          return lastTransitionTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : lastTransitionTimestamp_;
        }
      }
      /**
       * <pre>
       * When the most recent state transition occurred (last raise, last ack,
       * last clear).
       * </pre>
       *
       * <code>.google.protobuf.Timestamp last_transition_timestamp = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetLastTransitionTimestampFieldBuilder() {
        if (lastTransitionTimestampBuilder_ == null) {
          lastTransitionTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getLastTransitionTimestamp(),
                  getParentForChildren(),
                  isClean());
          lastTransitionTimestamp_ = null;
        }
        return lastTransitionTimestampBuilder_;
      }

      private java.lang.Object operatorUser_ = "";
      /**
       * <pre>
       * Operator who acknowledged the alarm if the current state is ActiveAcked.
       * Empty otherwise.
       * </pre>
       *
       * <code>string operator_user = 10;</code>
       * @return The operatorUser.
       */
      public java.lang.String getOperatorUser() {
        java.lang.Object ref = operatorUser_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorUser_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Operator who acknowledged the alarm if the current state is ActiveAcked.
       * Empty otherwise.
       * </pre>
       *
       * <code>string operator_user = 10;</code>
       * @return The bytes for operatorUser.
       */
      public com.google.protobuf.ByteString
          getOperatorUserBytes() {
        java.lang.Object ref = operatorUser_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorUser_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Operator who acknowledged the alarm if the current state is ActiveAcked.
       * Empty otherwise.
       * </pre>
       *
       * <code>string operator_user = 10;</code>
       * @param value The operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUser(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorUser_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator who acknowledged the alarm if the current state is ActiveAcked.
       * Empty otherwise.
       * </pre>
       *
       * <code>string operator_user = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorUser() {
        operatorUser_ = getDefaultInstance().getOperatorUser();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator who acknowledged the alarm if the current state is ActiveAcked.
       * Empty otherwise.
       * </pre>
       *
       * <code>string operator_user = 10;</code>
       * @param value The bytes for operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorUser_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }

      private java.lang.Object operatorComment_ = "";
      /**
       * <pre>
       * Operator comment recorded with the most recent acknowledge if the current
       * state is ActiveAcked. Empty otherwise.
       * </pre>
       *
       * <code>string operator_comment = 11;</code>
       * @return The operatorComment.
       */
      public java.lang.String getOperatorComment() {
        java.lang.Object ref = operatorComment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorComment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Operator comment recorded with the most recent acknowledge if the current
       * state is ActiveAcked. Empty otherwise.
       * </pre>
       *
       * <code>string operator_comment = 11;</code>
       * @return The bytes for operatorComment.
       */
      public com.google.protobuf.ByteString
          getOperatorCommentBytes() {
        java.lang.Object ref = operatorComment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorComment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Operator comment recorded with the most recent acknowledge if the current
       * state is ActiveAcked. Empty otherwise.
       * </pre>
       *
       * <code>string operator_comment = 11;</code>
       * @param value The operatorComment to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorComment(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorComment_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator comment recorded with the most recent acknowledge if the current
       * state is ActiveAcked. Empty otherwise.
       * </pre>
       *
       * <code>string operator_comment = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorComment() {
        operatorComment_ = getDefaultInstance().getOperatorComment();
        bitField0_ = (bitField0_ & ~0x00000400);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator comment recorded with the most recent acknowledge if the current
       * state is ActiveAcked. Empty otherwise.
       * </pre>
       *
       * <code>string operator_comment = 11;</code>
       * @param value The bytes for operatorComment to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorComment_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue currentValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> currentValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       * @return Whether the currentValue field is set.
       */
      public boolean hasCurrentValue() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       * @return The currentValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getCurrentValue() {
        if (currentValueBuilder_ == null) {
          return currentValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
        } else {
          return currentValueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder setCurrentValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (currentValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          currentValue_ = value;
        } else {
          currentValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder setCurrentValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (currentValueBuilder_ == null) {
          currentValue_ = builderForValue.build();
        } else {
          currentValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder mergeCurrentValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (currentValueBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
            currentValue_ != null &&
            currentValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getCurrentValueBuilder().mergeFrom(value);
          } else {
            currentValue_ = value;
          }
        } else {
          currentValueBuilder_.mergeFrom(value);
        }
        if (currentValue_ != null) {
          bitField0_ |= 0x00000800;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public Builder clearCurrentValue() {
        bitField0_ = (bitField0_ & ~0x00000800);
        currentValue_ = null;
        if (currentValueBuilder_ != null) {
          currentValueBuilder_.dispose();
          currentValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getCurrentValueBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return internalGetCurrentValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getCurrentValueOrBuilder() {
        if (currentValueBuilder_ != null) {
          return currentValueBuilder_.getMessageOrBuilder();
        } else {
          return currentValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : currentValue_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue current_value = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetCurrentValueFieldBuilder() {
        if (currentValueBuilder_ == null) {
          currentValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getCurrentValue(),
                  getParentForChildren(),
                  isClean());
          currentValue_ = null;
        }
        return currentValueBuilder_;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue limitValue_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> limitValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       * @return Whether the limitValue field is set.
       */
      public boolean hasLimitValue() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       * @return The limitValue.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getLimitValue() {
        if (limitValueBuilder_ == null) {
          return limitValue_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
        } else {
          return limitValueBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder setLimitValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (limitValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          limitValue_ = value;
        } else {
          limitValueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder setLimitValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (limitValueBuilder_ == null) {
          limitValue_ = builderForValue.build();
        } else {
          limitValueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder mergeLimitValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (limitValueBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0) &&
            limitValue_ != null &&
            limitValue_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getLimitValueBuilder().mergeFrom(value);
          } else {
            limitValue_ = value;
          }
        } else {
          limitValueBuilder_.mergeFrom(value);
        }
        if (limitValue_ != null) {
          bitField0_ |= 0x00001000;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public Builder clearLimitValue() {
        bitField0_ = (bitField0_ & ~0x00001000);
        limitValue_ = null;
        if (limitValueBuilder_ != null) {
          limitValueBuilder_.dispose();
          limitValueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getLimitValueBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return internalGetLimitValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getLimitValueOrBuilder() {
        if (limitValueBuilder_ != null) {
          return limitValueBuilder_.getMessageOrBuilder();
        } else {
          return limitValue_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : limitValue_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxValue limit_value = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetLimitValueFieldBuilder() {
        if (limitValueBuilder_ == null) {
          limitValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getLimitValue(),
                  getParentForChildren(),
                  isClean());
          limitValue_ = null;
        }
        return limitValueBuilder_;
      }

      private boolean degraded_ ;
      /**
       * <pre>
       * True when this snapshot came from the subtag-monitoring fallback rather
       * than the native alarmmgr provider — synthesized from data changes, reduced
       * fidelity (synthetic GUID, no native raise time). Mirrors
       * OnAlarmTransitionEvent.degraded.
       * </pre>
       *
       * <code>bool degraded = 14;</code>
       * @return The degraded.
       */
      @java.lang.Override
      public boolean getDegraded() {
        return degraded_;
      }
      /**
       * <pre>
       * True when this snapshot came from the subtag-monitoring fallback rather
       * than the native alarmmgr provider — synthesized from data changes, reduced
       * fidelity (synthetic GUID, no native raise time). Mirrors
       * OnAlarmTransitionEvent.degraded.
       * </pre>
       *
       * <code>bool degraded = 14;</code>
       * @param value The degraded to set.
       * @return This builder for chaining.
       */
      public Builder setDegraded(boolean value) {

        degraded_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * True when this snapshot came from the subtag-monitoring fallback rather
       * than the native alarmmgr provider — synthesized from data changes, reduced
       * fidelity (synthetic GUID, no native raise time). Mirrors
       * OnAlarmTransitionEvent.degraded.
       * </pre>
       *
       * <code>bool degraded = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearDegraded() {
        bitField0_ = (bitField0_ & ~0x00002000);
        degraded_ = false;
        onChanged();
        return this;
      }

      private int sourceProvider_ = 0;
      /**
       * <pre>
       * Which provider produced this snapshot. Mirrors
       * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
       * wire (never UNSPECIFIED).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @return The enum numeric value on the wire for sourceProvider.
       */
      @java.lang.Override public int getSourceProviderValue() {
        return sourceProvider_;
      }
      /**
       * <pre>
       * Which provider produced this snapshot. Mirrors
       * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
       * wire (never UNSPECIFIED).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @param value The enum numeric value on the wire for sourceProvider to set.
       * @return This builder for chaining.
       */
      public Builder setSourceProviderValue(int value) {
        sourceProvider_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Which provider produced this snapshot. Mirrors
       * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
       * wire (never UNSPECIFIED).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @return The sourceProvider.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getSourceProvider() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(sourceProvider_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * Which provider produced this snapshot. Mirrors
       * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
       * wire (never UNSPECIFIED).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @param value The sourceProvider to set.
       * @return This builder for chaining.
       */
      public Builder setSourceProvider(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00004000;
        sourceProvider_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Which provider produced this snapshot. Mirrors
       * OnAlarmTransitionEvent.source_provider; always ALARMMGR or SUBTAG on the
       * wire (never UNSPECIFIED).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderMode source_provider = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearSourceProvider() {
        bitField0_ = (bitField0_ & ~0x00004000);
        sourceProvider_ = 0;
        onChanged();
        return this;
      }

      private boolean fromTruncatedSnapshot_ ;
      /**
       * <pre>
       * True when the provider fetch that produced this snapshot hit the per-fetch
       * cap: the snapshot set may omit active alarms, and the worker suspended its
       * absence-implies-Clear inference for that poll. Says nothing about THIS
       * record's fidelity — the record is as accurate as any other; it flags that
       * the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
       * bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
       * boolean is the only additive way to carry set-level degraded status on that
       * RPC. Distinct from `degraded`, which is about the subtag fallback provider.
       * Additive (proto3): clients that ignore it deserialize the stream unchanged.
       * </pre>
       *
       * <code>bool from_truncated_snapshot = 16;</code>
       * @return The fromTruncatedSnapshot.
       */
      @java.lang.Override
      public boolean getFromTruncatedSnapshot() {
        return fromTruncatedSnapshot_;
      }
      /**
       * <pre>
       * True when the provider fetch that produced this snapshot hit the per-fetch
       * cap: the snapshot set may omit active alarms, and the worker suspended its
       * absence-implies-Clear inference for that poll. Says nothing about THIS
       * record's fidelity — the record is as accurate as any other; it flags that
       * the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
       * bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
       * boolean is the only additive way to carry set-level degraded status on that
       * RPC. Distinct from `degraded`, which is about the subtag fallback provider.
       * Additive (proto3): clients that ignore it deserialize the stream unchanged.
       * </pre>
       *
       * <code>bool from_truncated_snapshot = 16;</code>
       * @param value The fromTruncatedSnapshot to set.
       * @return This builder for chaining.
       */
      public Builder setFromTruncatedSnapshot(boolean value) {

        fromTruncatedSnapshot_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * True when the provider fetch that produced this snapshot hit the per-fetch
       * cap: the snapshot set may omit active alarms, and the worker suspended its
       * absence-implies-Clear inference for that poll. Says nothing about THIS
       * record's fidelity — the record is as accurate as any other; it flags that
       * the set it belongs to is possibly incomplete. QueryActiveAlarms returns a
       * bare `stream ActiveAlarmSnapshot` with no envelope message, so a per-record
       * boolean is the only additive way to carry set-level degraded status on that
       * RPC. Distinct from `degraded`, which is about the subtag fallback provider.
       * Additive (proto3): clients that ignore it deserialize the stream unchanged.
       * </pre>
       *
       * <code>bool from_truncated_snapshot = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearFromTruncatedSnapshot() {
        bitField0_ = (bitField0_ & ~0x00008000);
        fromTruncatedSnapshot_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ActiveAlarmSnapshot)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ActiveAlarmSnapshot)
    private static final mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ActiveAlarmSnapshot>
        PARSER = new com.google.protobuf.AbstractParser<ActiveAlarmSnapshot>() {
      @java.lang.Override
      public ActiveAlarmSnapshot 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<ActiveAlarmSnapshot> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeAlarmRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AcknowledgeAlarmRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    java.lang.String getClientCorrelationId();
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    com.google.protobuf.ByteString
        getClientCorrelationIdBytes();

    /**
     * <pre>
     * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
     * </pre>
     *
     * <code>string alarm_full_reference = 3;</code>
     * @return The alarmFullReference.
     */
    java.lang.String getAlarmFullReference();
    /**
     * <pre>
     * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
     * </pre>
     *
     * <code>string alarm_full_reference = 3;</code>
     * @return The bytes for alarmFullReference.
     */
    com.google.protobuf.ByteString
        getAlarmFullReferenceBytes();

    /**
     * <pre>
     * Operator-supplied comment forwarded to MXAccess.
     * </pre>
     *
     * <code>string comment = 4;</code>
     * @return The comment.
     */
    java.lang.String getComment();
    /**
     * <pre>
     * Operator-supplied comment forwarded to MXAccess.
     * </pre>
     *
     * <code>string comment = 4;</code>
     * @return The bytes for comment.
     */
    com.google.protobuf.ByteString
        getCommentBytes();

    /**
     * <pre>
     * Operator principal performing the acknowledgement. The lmxopcua side
     * resolves this from the OPC UA session prior to invoking the RPC.
     * </pre>
     *
     * <code>string operator_user = 5;</code>
     * @return The operatorUser.
     */
    java.lang.String getOperatorUser();
    /**
     * <pre>
     * Operator principal performing the acknowledgement. The lmxopcua side
     * resolves this from the OPC UA session prior to invoking the RPC.
     * </pre>
     *
     * <code>string operator_user = 5;</code>
     * @return The bytes for operatorUser.
     */
    com.google.protobuf.ByteString
        getOperatorUserBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmRequest}
   */
  public static final class AcknowledgeAlarmRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AcknowledgeAlarmRequest)
      AcknowledgeAlarmRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AcknowledgeAlarmRequest");
    }
    // Use AcknowledgeAlarmRequest.newBuilder() to construct.
    private AcknowledgeAlarmRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeAlarmRequest() {
      clientCorrelationId_ = "";
      alarmFullReference_ = "";
      comment_ = "";
      operatorUser_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest.Builder.class);
    }

    public static final int CLIENT_CORRELATION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientCorrelationId_ = "";
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The clientCorrelationId.
     */
    @java.lang.Override
    public java.lang.String getClientCorrelationId() {
      java.lang.Object ref = clientCorrelationId_;
      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();
        clientCorrelationId_ = s;
        return s;
      }
    }
    /**
     * <code>string client_correlation_id = 2;</code>
     * @return The bytes for clientCorrelationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientCorrelationIdBytes() {
      java.lang.Object ref = clientCorrelationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientCorrelationId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALARM_FULL_REFERENCE_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmFullReference_ = "";
    /**
     * <pre>
     * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
     * </pre>
     *
     * <code>string alarm_full_reference = 3;</code>
     * @return The alarmFullReference.
     */
    @java.lang.Override
    public java.lang.String getAlarmFullReference() {
      java.lang.Object ref = alarmFullReference_;
      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();
        alarmFullReference_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
     * </pre>
     *
     * <code>string alarm_full_reference = 3;</code>
     * @return The bytes for alarmFullReference.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmFullReferenceBytes() {
      java.lang.Object ref = alarmFullReference_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmFullReference_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMENT_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object comment_ = "";
    /**
     * <pre>
     * Operator-supplied comment forwarded to MXAccess.
     * </pre>
     *
     * <code>string comment = 4;</code>
     * @return The comment.
     */
    @java.lang.Override
    public java.lang.String getComment() {
      java.lang.Object ref = comment_;
      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();
        comment_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Operator-supplied comment forwarded to MXAccess.
     * </pre>
     *
     * <code>string comment = 4;</code>
     * @return The bytes for comment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCommentBytes() {
      java.lang.Object ref = comment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        comment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_USER_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object operatorUser_ = "";
    /**
     * <pre>
     * Operator principal performing the acknowledgement. The lmxopcua side
     * resolves this from the OPC UA session prior to invoking the RPC.
     * </pre>
     *
     * <code>string operator_user = 5;</code>
     * @return The operatorUser.
     */
    @java.lang.Override
    public java.lang.String getOperatorUser() {
      java.lang.Object ref = operatorUser_;
      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();
        operatorUser_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Operator principal performing the acknowledgement. The lmxopcua side
     * resolves this from the OPC UA session prior to invoking the RPC.
     * </pre>
     *
     * <code>string operator_user = 5;</code>
     * @return The bytes for operatorUser.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOperatorUserBytes() {
      java.lang.Object ref = operatorUser_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        operatorUser_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, clientCorrelationId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(comment_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, comment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, operatorUser_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, clientCorrelationId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFullReference_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, alarmFullReference_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(comment_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, comment_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(operatorUser_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, operatorUser_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest other = (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest) obj;

      if (!getClientCorrelationId()
          .equals(other.getClientCorrelationId())) return false;
      if (!getAlarmFullReference()
          .equals(other.getAlarmFullReference())) return false;
      if (!getComment()
          .equals(other.getComment())) return false;
      if (!getOperatorUser()
          .equals(other.getOperatorUser())) 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();
      hash = (37 * hash) + CLIENT_CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClientCorrelationId().hashCode();
      hash = (37 * hash) + ALARM_FULL_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmFullReference().hashCode();
      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getComment().hashCode();
      hash = (37 * hash) + OPERATOR_USER_FIELD_NUMBER;
      hash = (53 * hash) + getOperatorUser().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest 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(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest 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 mxaccess_gateway.v1.AcknowledgeAlarmRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AcknowledgeAlarmRequest)
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        clientCorrelationId_ = "";
        alarmFullReference_ = "";
        comment_ = "";
        operatorUser_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest build() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest result = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.clientCorrelationId_ = clientCorrelationId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.alarmFullReference_ = alarmFullReference_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.comment_ = comment_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.operatorUser_ = operatorUser_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest.getDefaultInstance()) return this;
        if (!other.getClientCorrelationId().isEmpty()) {
          clientCorrelationId_ = other.clientCorrelationId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getAlarmFullReference().isEmpty()) {
          alarmFullReference_ = other.alarmFullReference_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getComment().isEmpty()) {
          comment_ = other.comment_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (!other.getOperatorUser().isEmpty()) {
          operatorUser_ = other.operatorUser_;
          bitField0_ |= 0x00000008;
          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 18: {
                clientCorrelationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 18
              case 26: {
                alarmFullReference_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 26
              case 34: {
                comment_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 34
              case 42: {
                operatorUser_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 42
              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 clientCorrelationId_ = "";
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The clientCorrelationId.
       */
      public java.lang.String getClientCorrelationId() {
        java.lang.Object ref = clientCorrelationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientCorrelationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return The bytes for clientCorrelationId.
       */
      public com.google.protobuf.ByteString
          getClientCorrelationIdBytes() {
        java.lang.Object ref = clientCorrelationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientCorrelationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientCorrelationId() {
        clientCorrelationId_ = getDefaultInstance().getClientCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 2;</code>
       * @param value The bytes for clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object alarmFullReference_ = "";
      /**
       * <pre>
       * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
       * </pre>
       *
       * <code>string alarm_full_reference = 3;</code>
       * @return The alarmFullReference.
       */
      public java.lang.String getAlarmFullReference() {
        java.lang.Object ref = alarmFullReference_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmFullReference_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
       * </pre>
       *
       * <code>string alarm_full_reference = 3;</code>
       * @return The bytes for alarmFullReference.
       */
      public com.google.protobuf.ByteString
          getAlarmFullReferenceBytes() {
        java.lang.Object ref = alarmFullReference_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmFullReference_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
       * </pre>
       *
       * <code>string alarm_full_reference = 3;</code>
       * @param value The alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReference(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmFullReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
       * </pre>
       *
       * <code>string alarm_full_reference = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmFullReference() {
        alarmFullReference_ = getDefaultInstance().getAlarmFullReference();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Fully-qualified alarm reference matching OnAlarmTransitionEvent.alarm_full_reference.
       * </pre>
       *
       * <code>string alarm_full_reference = 3;</code>
       * @param value The bytes for alarmFullReference to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFullReferenceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmFullReference_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object comment_ = "";
      /**
       * <pre>
       * Operator-supplied comment forwarded to MXAccess.
       * </pre>
       *
       * <code>string comment = 4;</code>
       * @return The comment.
       */
      public java.lang.String getComment() {
        java.lang.Object ref = comment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          comment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Operator-supplied comment forwarded to MXAccess.
       * </pre>
       *
       * <code>string comment = 4;</code>
       * @return The bytes for comment.
       */
      public com.google.protobuf.ByteString
          getCommentBytes() {
        java.lang.Object ref = comment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          comment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Operator-supplied comment forwarded to MXAccess.
       * </pre>
       *
       * <code>string comment = 4;</code>
       * @param value The comment to set.
       * @return This builder for chaining.
       */
      public Builder setComment(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        comment_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator-supplied comment forwarded to MXAccess.
       * </pre>
       *
       * <code>string comment = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearComment() {
        comment_ = getDefaultInstance().getComment();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator-supplied comment forwarded to MXAccess.
       * </pre>
       *
       * <code>string comment = 4;</code>
       * @param value The bytes for comment to set.
       * @return This builder for chaining.
       */
      public Builder setCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        comment_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object operatorUser_ = "";
      /**
       * <pre>
       * Operator principal performing the acknowledgement. The lmxopcua side
       * resolves this from the OPC UA session prior to invoking the RPC.
       * </pre>
       *
       * <code>string operator_user = 5;</code>
       * @return The operatorUser.
       */
      public java.lang.String getOperatorUser() {
        java.lang.Object ref = operatorUser_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          operatorUser_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Operator principal performing the acknowledgement. The lmxopcua side
       * resolves this from the OPC UA session prior to invoking the RPC.
       * </pre>
       *
       * <code>string operator_user = 5;</code>
       * @return The bytes for operatorUser.
       */
      public com.google.protobuf.ByteString
          getOperatorUserBytes() {
        java.lang.Object ref = operatorUser_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          operatorUser_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Operator principal performing the acknowledgement. The lmxopcua side
       * resolves this from the OPC UA session prior to invoking the RPC.
       * </pre>
       *
       * <code>string operator_user = 5;</code>
       * @param value The operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUser(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        operatorUser_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator principal performing the acknowledgement. The lmxopcua side
       * resolves this from the OPC UA session prior to invoking the RPC.
       * </pre>
       *
       * <code>string operator_user = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperatorUser() {
        operatorUser_ = getDefaultInstance().getOperatorUser();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Operator principal performing the acknowledgement. The lmxopcua side
       * resolves this from the OPC UA session prior to invoking the RPC.
       * </pre>
       *
       * <code>string operator_user = 5;</code>
       * @param value The bytes for operatorUser to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        operatorUser_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AcknowledgeAlarmRequest)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AcknowledgeAlarmRequest)
    private static final mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeAlarmRequest>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeAlarmRequest>() {
      @java.lang.Override
      public AcknowledgeAlarmRequest 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<AcknowledgeAlarmRequest> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcknowledgeAlarmReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AcknowledgeAlarmReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string correlation_id = 2;</code>
     * @return The correlationId.
     */
    java.lang.String getCorrelationId();
    /**
     * <code>string correlation_id = 2;</code>
     * @return The bytes for correlationId.
     */
    com.google.protobuf.ByteString
        getCorrelationIdBytes();

    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return Whether the protocolStatus field is set.
     */
    boolean hasProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return The protocolStatus.
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder();

    /**
     * <pre>
     * Native ack return code echoed from the worker. The worker carries the
     * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
     * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
     * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
     * ack-outcome field for the public RPC. Absent only when the worker reply
     * omitted the value entirely (a protocol violation).
     * </pre>
     *
     * <code>optional int32 hresult = 4;</code>
     * @return Whether the hresult field is set.
     */
    boolean hasHresult();
    /**
     * <pre>
     * Native ack return code echoed from the worker. The worker carries the
     * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
     * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
     * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
     * ack-outcome field for the public RPC. Absent only when the worker reply
     * omitted the value entirely (a protocol violation).
     * </pre>
     *
     * <code>optional int32 hresult = 4;</code>
     * @return The hresult.
     */
    int getHresult();

    /**
     * <pre>
     * Reserved for a structured MxStatusProxy view of the ack outcome. The
     * worker by-name/by-GUID ack path produces only the int32 return code
     * (see `hresult`), so the current gateway leaves this field UNSET on every
     * reply. Clients must read `hresult` (and `protocol_status`) for the ack
     * result and must not depend on `status` being populated.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <pre>
     * Reserved for a structured MxStatusProxy view of the ack outcome. The
     * worker by-name/by-GUID ack path produces only the int32 return code
     * (see `hresult`), so the current gateway leaves this field UNSET on every
     * reply. Clients must read `hresult` (and `protocol_status`) for the ack
     * result and must not depend on `status` being populated.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
     * @return The status.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus();
    /**
     * <pre>
     * Reserved for a structured MxStatusProxy view of the ack outcome. The
     * worker by-name/by-GUID ack path produces only the int32 return code
     * (see `hresult`), so the current gateway leaves this field UNSET on every
     * reply. Clients must read `hresult` (and `protocol_status`) for the ack
     * result and must not depend on `status` being populated.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder();

    /**
     * <code>string diagnostic_message = 6;</code>
     * @return The diagnosticMessage.
     */
    java.lang.String getDiagnosticMessage();
    /**
     * <code>string diagnostic_message = 6;</code>
     * @return The bytes for diagnosticMessage.
     */
    com.google.protobuf.ByteString
        getDiagnosticMessageBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AcknowledgeAlarmReply}
   */
  public static final class AcknowledgeAlarmReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AcknowledgeAlarmReply)
      AcknowledgeAlarmReplyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AcknowledgeAlarmReply");
    }
    // Use AcknowledgeAlarmReply.newBuilder() to construct.
    private AcknowledgeAlarmReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AcknowledgeAlarmReply() {
      correlationId_ = "";
      diagnosticMessage_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply.Builder.class);
    }

    private int bitField0_;
    public static final int CORRELATION_ID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object correlationId_ = "";
    /**
     * <code>string correlation_id = 2;</code>
     * @return The correlationId.
     */
    @java.lang.Override
    public java.lang.String getCorrelationId() {
      java.lang.Object ref = correlationId_;
      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();
        correlationId_ = s;
        return s;
      }
    }
    /**
     * <code>string correlation_id = 2;</code>
     * @return The bytes for correlationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCorrelationIdBytes() {
      java.lang.Object ref = correlationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        correlationId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROTOCOL_STATUS_FIELD_NUMBER = 3;
    private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return Whether the protocolStatus field is set.
     */
    @java.lang.Override
    public boolean hasProtocolStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     * @return The protocolStatus.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
      return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
    }

    public static final int HRESULT_FIELD_NUMBER = 4;
    private int hresult_ = 0;
    /**
     * <pre>
     * Native ack return code echoed from the worker. The worker carries the
     * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
     * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
     * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
     * ack-outcome field for the public RPC. Absent only when the worker reply
     * omitted the value entirely (a protocol violation).
     * </pre>
     *
     * <code>optional int32 hresult = 4;</code>
     * @return Whether the hresult field is set.
     */
    @java.lang.Override
    public boolean hasHresult() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Native ack return code echoed from the worker. The worker carries the
     * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
     * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
     * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
     * ack-outcome field for the public RPC. Absent only when the worker reply
     * omitted the value entirely (a protocol violation).
     * </pre>
     *
     * <code>optional int32 hresult = 4;</code>
     * @return The hresult.
     */
    @java.lang.Override
    public int getHresult() {
      return hresult_;
    }

    public static final int STATUS_FIELD_NUMBER = 5;
    private mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy status_;
    /**
     * <pre>
     * Reserved for a structured MxStatusProxy view of the ack outcome. The
     * worker by-name/by-GUID ack path produces only the int32 return code
     * (see `hresult`), so the current gateway leaves this field UNSET on every
     * reply. Clients must read `hresult` (and `protocol_status`) for the ack
     * result and must not depend on `status` being populated.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * Reserved for a structured MxStatusProxy view of the ack outcome. The
     * worker by-name/by-GUID ack path produces only the int32 return code
     * (see `hresult`), so the current gateway leaves this field UNSET on every
     * reply. Clients must read `hresult` (and `protocol_status`) for the ack
     * result and must not depend on `status` being populated.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
     * @return The status.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
    }
    /**
     * <pre>
     * Reserved for a structured MxStatusProxy view of the ack outcome. The
     * worker by-name/by-GUID ack path produces only the int32 return code
     * (see `hresult`), so the current gateway leaves this field UNSET on every
     * reply. Clients must read `hresult` (and `protocol_status`) for the ack
     * result and must not depend on `status` being populated.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
    }

    public static final int DIAGNOSTIC_MESSAGE_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object diagnosticMessage_ = "";
    /**
     * <code>string diagnostic_message = 6;</code>
     * @return The diagnosticMessage.
     */
    @java.lang.Override
    public java.lang.String getDiagnosticMessage() {
      java.lang.Object ref = diagnosticMessage_;
      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();
        diagnosticMessage_ = s;
        return s;
      }
    }
    /**
     * <code>string diagnostic_message = 6;</code>
     * @return The bytes for diagnosticMessage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDiagnosticMessageBytes() {
      java.lang.Object ref = diagnosticMessage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        diagnosticMessage_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, correlationId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getProtocolStatus());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(4, hresult_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(5, getStatus());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticMessage_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, diagnosticMessage_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, correlationId_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getProtocolStatus());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, hresult_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getStatus());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticMessage_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, diagnosticMessage_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply other = (mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply) obj;

      if (!getCorrelationId()
          .equals(other.getCorrelationId())) return false;
      if (hasProtocolStatus() != other.hasProtocolStatus()) return false;
      if (hasProtocolStatus()) {
        if (!getProtocolStatus()
            .equals(other.getProtocolStatus())) return false;
      }
      if (hasHresult() != other.hasHresult()) return false;
      if (hasHresult()) {
        if (getHresult()
            != other.getHresult()) return false;
      }
      if (hasStatus() != other.hasStatus()) return false;
      if (hasStatus()) {
        if (!getStatus()
            .equals(other.getStatus())) return false;
      }
      if (!getDiagnosticMessage()
          .equals(other.getDiagnosticMessage())) 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();
      hash = (37 * hash) + CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCorrelationId().hashCode();
      if (hasProtocolStatus()) {
        hash = (37 * hash) + PROTOCOL_STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getProtocolStatus().hashCode();
      }
      if (hasHresult()) {
        hash = (37 * hash) + HRESULT_FIELD_NUMBER;
        hash = (53 * hash) + getHresult();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (37 * hash) + DIAGNOSTIC_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getDiagnosticMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply 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 mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply 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(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply 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 mxaccess_gateway.v1.AcknowledgeAlarmReply}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AcknowledgeAlarmReply)
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReplyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply.class, mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetProtocolStatusFieldBuilder();
          internalGetStatusFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        correlationId_ = "";
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        hresult_ = 0;
        status_ = null;
        if (statusBuilder_ != null) {
          statusBuilder_.dispose();
          statusBuilder_ = null;
        }
        diagnosticMessage_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply build() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply result = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.correlationId_ = correlationId_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.protocolStatus_ = protocolStatusBuilder_ == null
              ? protocolStatus_
              : protocolStatusBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.hresult_ = hresult_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.status_ = statusBuilder_ == null
              ? status_
              : statusBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.diagnosticMessage_ = diagnosticMessage_;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply.getDefaultInstance()) return this;
        if (!other.getCorrelationId().isEmpty()) {
          correlationId_ = other.correlationId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasProtocolStatus()) {
          mergeProtocolStatus(other.getProtocolStatus());
        }
        if (other.hasHresult()) {
          setHresult(other.getHresult());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        if (!other.getDiagnosticMessage().isEmpty()) {
          diagnosticMessage_ = other.diagnosticMessage_;
          bitField0_ |= 0x00000010;
          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 18: {
                correlationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    internalGetProtocolStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 26
              case 32: {
                hresult_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 32
              case 42: {
                input.readMessage(
                    internalGetStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 42
              case 50: {
                diagnosticMessage_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 50
              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 correlationId_ = "";
      /**
       * <code>string correlation_id = 2;</code>
       * @return The correlationId.
       */
      public java.lang.String getCorrelationId() {
        java.lang.Object ref = correlationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          correlationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @return The bytes for correlationId.
       */
      public com.google.protobuf.ByteString
          getCorrelationIdBytes() {
        java.lang.Object ref = correlationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          correlationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @param value The correlationId to set.
       * @return This builder for chaining.
       */
      public Builder setCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        correlationId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCorrelationId() {
        correlationId_ = getDefaultInstance().getCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string correlation_id = 2;</code>
       * @param value The bytes for correlationId to set.
       * @return This builder for chaining.
       */
      public Builder setCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        correlationId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> protocolStatusBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       * @return Whether the protocolStatus field is set.
       */
      public boolean hasProtocolStatus() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       * @return The protocolStatus.
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus() {
        if (protocolStatusBuilder_ == null) {
          return protocolStatus_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        } else {
          return protocolStatusBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder setProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          protocolStatus_ = value;
        } else {
          protocolStatusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder setProtocolStatus(
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder builderForValue) {
        if (protocolStatusBuilder_ == null) {
          protocolStatus_ = builderForValue.build();
        } else {
          protocolStatusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder mergeProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            protocolStatus_ != null &&
            protocolStatus_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance()) {
            getProtocolStatusBuilder().mergeFrom(value);
          } else {
            protocolStatus_ = value;
          }
        } else {
          protocolStatusBuilder_.mergeFrom(value);
        }
        if (protocolStatus_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public Builder clearProtocolStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder getProtocolStatusBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetProtocolStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder() {
        if (protocolStatusBuilder_ != null) {
          return protocolStatusBuilder_.getMessageOrBuilder();
        } else {
          return protocolStatus_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : protocolStatus_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> 
          internalGetProtocolStatusFieldBuilder() {
        if (protocolStatusBuilder_ == null) {
          protocolStatusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder>(
                  getProtocolStatus(),
                  getParentForChildren(),
                  isClean());
          protocolStatus_ = null;
        }
        return protocolStatusBuilder_;
      }

      private int hresult_ ;
      /**
       * <pre>
       * Native ack return code echoed from the worker. The worker carries the
       * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
       * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
       * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
       * ack-outcome field for the public RPC. Absent only when the worker reply
       * omitted the value entirely (a protocol violation).
       * </pre>
       *
       * <code>optional int32 hresult = 4;</code>
       * @return Whether the hresult field is set.
       */
      @java.lang.Override
      public boolean hasHresult() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Native ack return code echoed from the worker. The worker carries the
       * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
       * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
       * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
       * ack-outcome field for the public RPC. Absent only when the worker reply
       * omitted the value entirely (a protocol violation).
       * </pre>
       *
       * <code>optional int32 hresult = 4;</code>
       * @return The hresult.
       */
      @java.lang.Override
      public int getHresult() {
        return hresult_;
      }
      /**
       * <pre>
       * Native ack return code echoed from the worker. The worker carries the
       * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
       * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
       * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
       * ack-outcome field for the public RPC. Absent only when the worker reply
       * omitted the value entirely (a protocol violation).
       * </pre>
       *
       * <code>optional int32 hresult = 4;</code>
       * @param value The hresult to set.
       * @return This builder for chaining.
       */
      public Builder setHresult(int value) {

        hresult_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Native ack return code echoed from the worker. The worker carries the
       * ack outcome as a single int32 (AcknowledgeAlarmReplyPayload.native_status,
       * = AlarmAckByName / AlarmAckByGUID return code; 0 = success); the gateway's
       * WorkerAlarmRpcDispatcher copies that value here. This is the authoritative
       * ack-outcome field for the public RPC. Absent only when the worker reply
       * omitted the value entirely (a protocol violation).
       * </pre>
       *
       * <code>optional int32 hresult = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHresult() {
        bitField0_ = (bitField0_ & ~0x00000004);
        hresult_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy status_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> statusBuilder_;
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       * @return The status.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       */
      public Builder setStatus(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       */
      public Builder setStatus(
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       */
      public Builder mergeStatus(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            status_ != null &&
            status_ != mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance()) {
            getStatusBuilder().mergeFrom(value);
          } else {
            status_ = value;
          }
        } else {
          statusBuilder_.mergeFrom(value);
        }
        if (status_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000008);
        status_ = null;
        if (statusBuilder_ != null) {
          statusBuilder_.dispose();
          statusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder getStatusBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance() : status_;
        }
      }
      /**
       * <pre>
       * Reserved for a structured MxStatusProxy view of the ack outcome. The
       * worker by-name/by-GUID ack path produces only the int32 return code
       * (see `hresult`), so the current gateway leaves this field UNSET on every
       * reply. Clients must read `hresult` (and `protocol_status`) for the ack
       * result and must not depend on `status` being populated.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxStatusProxy status = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder> 
          internalGetStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder>(
                  getStatus(),
                  getParentForChildren(),
                  isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      private java.lang.Object diagnosticMessage_ = "";
      /**
       * <code>string diagnostic_message = 6;</code>
       * @return The diagnosticMessage.
       */
      public java.lang.String getDiagnosticMessage() {
        java.lang.Object ref = diagnosticMessage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          diagnosticMessage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string diagnostic_message = 6;</code>
       * @return The bytes for diagnosticMessage.
       */
      public com.google.protobuf.ByteString
          getDiagnosticMessageBytes() {
        java.lang.Object ref = diagnosticMessage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          diagnosticMessage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string diagnostic_message = 6;</code>
       * @param value The diagnosticMessage to set.
       * @return This builder for chaining.
       */
      public Builder setDiagnosticMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        diagnosticMessage_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>string diagnostic_message = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiagnosticMessage() {
        diagnosticMessage_ = getDefaultInstance().getDiagnosticMessage();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>string diagnostic_message = 6;</code>
       * @param value The bytes for diagnosticMessage to set.
       * @return This builder for chaining.
       */
      public Builder setDiagnosticMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        diagnosticMessage_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AcknowledgeAlarmReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AcknowledgeAlarmReply)
    private static final mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcknowledgeAlarmReply>
        PARSER = new com.google.protobuf.AbstractParser<AcknowledgeAlarmReply>() {
      @java.lang.Override
      public AcknowledgeAlarmReply 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<AcknowledgeAlarmReply> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AcknowledgeAlarmReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StreamAlarmsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.StreamAlarmsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string client_correlation_id = 1;</code>
     * @return The clientCorrelationId.
     */
    java.lang.String getClientCorrelationId();
    /**
     * <code>string client_correlation_id = 1;</code>
     * @return The bytes for clientCorrelationId.
     */
    com.google.protobuf.ByteString
        getClientCorrelationIdBytes();

    /**
     * <pre>
     * Optional alarm-reference prefix scoping the feed to an equipment
     * sub-tree. Empty streams every active alarm.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 2;</code>
     * @return The alarmFilterPrefix.
     */
    java.lang.String getAlarmFilterPrefix();
    /**
     * <pre>
     * Optional alarm-reference prefix scoping the feed to an equipment
     * sub-tree. Empty streams every active alarm.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 2;</code>
     * @return The bytes for alarmFilterPrefix.
     */
    com.google.protobuf.ByteString
        getAlarmFilterPrefixBytes();
  }
  /**
   * <pre>
   * Request to attach to the gateway's central alarm feed (StreamAlarms).
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.StreamAlarmsRequest}
   */
  public static final class StreamAlarmsRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.StreamAlarmsRequest)
      StreamAlarmsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "StreamAlarmsRequest");
    }
    // Use StreamAlarmsRequest.newBuilder() to construct.
    private StreamAlarmsRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private StreamAlarmsRequest() {
      clientCorrelationId_ = "";
      alarmFilterPrefix_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest.class, mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest.Builder.class);
    }

    public static final int CLIENT_CORRELATION_ID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object clientCorrelationId_ = "";
    /**
     * <code>string client_correlation_id = 1;</code>
     * @return The clientCorrelationId.
     */
    @java.lang.Override
    public java.lang.String getClientCorrelationId() {
      java.lang.Object ref = clientCorrelationId_;
      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();
        clientCorrelationId_ = s;
        return s;
      }
    }
    /**
     * <code>string client_correlation_id = 1;</code>
     * @return The bytes for clientCorrelationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientCorrelationIdBytes() {
      java.lang.Object ref = clientCorrelationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientCorrelationId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALARM_FILTER_PREFIX_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object alarmFilterPrefix_ = "";
    /**
     * <pre>
     * Optional alarm-reference prefix scoping the feed to an equipment
     * sub-tree. Empty streams every active alarm.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 2;</code>
     * @return The alarmFilterPrefix.
     */
    @java.lang.Override
    public java.lang.String getAlarmFilterPrefix() {
      java.lang.Object ref = alarmFilterPrefix_;
      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();
        alarmFilterPrefix_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Optional alarm-reference prefix scoping the feed to an equipment
     * sub-tree. Empty streams every active alarm.
     * </pre>
     *
     * <code>string alarm_filter_prefix = 2;</code>
     * @return The bytes for alarmFilterPrefix.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmFilterPrefixBytes() {
      java.lang.Object ref = alarmFilterPrefix_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alarmFilterPrefix_ = 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 (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, clientCorrelationId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFilterPrefix_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, alarmFilterPrefix_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(clientCorrelationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, clientCorrelationId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(alarmFilterPrefix_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, alarmFilterPrefix_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest other = (mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest) obj;

      if (!getClientCorrelationId()
          .equals(other.getClientCorrelationId())) return false;
      if (!getAlarmFilterPrefix()
          .equals(other.getAlarmFilterPrefix())) 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();
      hash = (37 * hash) + CLIENT_CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getClientCorrelationId().hashCode();
      hash = (37 * hash) + ALARM_FILTER_PREFIX_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmFilterPrefix().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest 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 mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest 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 mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest 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(mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest 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;
    }
    /**
     * <pre>
     * Request to attach to the gateway's central alarm feed (StreamAlarms).
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.StreamAlarmsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.StreamAlarmsRequest)
        mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest.class, mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        clientCorrelationId_ = "";
        alarmFilterPrefix_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest build() {
        mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest result = new mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.clientCorrelationId_ = clientCorrelationId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.alarmFilterPrefix_ = alarmFilterPrefix_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest.getDefaultInstance()) return this;
        if (!other.getClientCorrelationId().isEmpty()) {
          clientCorrelationId_ = other.clientCorrelationId_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (!other.getAlarmFilterPrefix().isEmpty()) {
          alarmFilterPrefix_ = other.alarmFilterPrefix_;
          bitField0_ |= 0x00000002;
          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: {
                clientCorrelationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                alarmFilterPrefix_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 clientCorrelationId_ = "";
      /**
       * <code>string client_correlation_id = 1;</code>
       * @return The clientCorrelationId.
       */
      public java.lang.String getClientCorrelationId() {
        java.lang.Object ref = clientCorrelationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          clientCorrelationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 1;</code>
       * @return The bytes for clientCorrelationId.
       */
      public com.google.protobuf.ByteString
          getClientCorrelationIdBytes() {
        java.lang.Object ref = clientCorrelationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientCorrelationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string client_correlation_id = 1;</code>
       * @param value The clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientCorrelationId() {
        clientCorrelationId_ = getDefaultInstance().getClientCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string client_correlation_id = 1;</code>
       * @param value The bytes for clientCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setClientCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        clientCorrelationId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object alarmFilterPrefix_ = "";
      /**
       * <pre>
       * Optional alarm-reference prefix scoping the feed to an equipment
       * sub-tree. Empty streams every active alarm.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 2;</code>
       * @return The alarmFilterPrefix.
       */
      public java.lang.String getAlarmFilterPrefix() {
        java.lang.Object ref = alarmFilterPrefix_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alarmFilterPrefix_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Optional alarm-reference prefix scoping the feed to an equipment
       * sub-tree. Empty streams every active alarm.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 2;</code>
       * @return The bytes for alarmFilterPrefix.
       */
      public com.google.protobuf.ByteString
          getAlarmFilterPrefixBytes() {
        java.lang.Object ref = alarmFilterPrefix_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alarmFilterPrefix_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Optional alarm-reference prefix scoping the feed to an equipment
       * sub-tree. Empty streams every active alarm.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 2;</code>
       * @param value The alarmFilterPrefix to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFilterPrefix(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        alarmFilterPrefix_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional alarm-reference prefix scoping the feed to an equipment
       * sub-tree. Empty streams every active alarm.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmFilterPrefix() {
        alarmFilterPrefix_ = getDefaultInstance().getAlarmFilterPrefix();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Optional alarm-reference prefix scoping the feed to an equipment
       * sub-tree. Empty streams every active alarm.
       * </pre>
       *
       * <code>string alarm_filter_prefix = 2;</code>
       * @param value The bytes for alarmFilterPrefix to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmFilterPrefixBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        alarmFilterPrefix_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.StreamAlarmsRequest)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.StreamAlarmsRequest)
    private static final mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StreamAlarmsRequest>
        PARSER = new com.google.protobuf.AbstractParser<StreamAlarmsRequest>() {
      @java.lang.Override
      public StreamAlarmsRequest 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<StreamAlarmsRequest> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.StreamAlarmsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AlarmFeedMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AlarmFeedMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Part of the initial active-alarm snapshot (ConditionRefresh).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
     * @return Whether the activeAlarm field is set.
     */
    boolean hasActiveAlarm();
    /**
     * <pre>
     * Part of the initial active-alarm snapshot (ConditionRefresh).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
     * @return The activeAlarm.
     */
    mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getActiveAlarm();
    /**
     * <pre>
     * Part of the initial active-alarm snapshot (ConditionRefresh).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder getActiveAlarmOrBuilder();

    /**
     * <pre>
     * Sentinel: the initial snapshot is fully delivered and `transition`
     * messages follow. Always true when present.
     * </pre>
     *
     * <code>bool snapshot_complete = 2;</code>
     * @return Whether the snapshotComplete field is set.
     */
    boolean hasSnapshotComplete();
    /**
     * <pre>
     * Sentinel: the initial snapshot is fully delivered and `transition`
     * messages follow. Always true when present.
     * </pre>
     *
     * <code>bool snapshot_complete = 2;</code>
     * @return The snapshotComplete.
     */
    boolean getSnapshotComplete();

    /**
     * <pre>
     * A live alarm state change (raise / acknowledge / clear).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
     * @return Whether the transition field is set.
     */
    boolean hasTransition();
    /**
     * <pre>
     * A live alarm state change (raise / acknowledge / clear).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
     * @return The transition.
     */
    mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getTransition();
    /**
     * <pre>
     * A live alarm state change (raise / acknowledge / clear).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder getTransitionOrBuilder();

    /**
     * <pre>
     * Provider-mode status. Emitted once on stream open and again on every
     * failover/failback so late joiners learn the current mode immediately.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
     * @return Whether the providerStatus field is set.
     */
    boolean hasProviderStatus();
    /**
     * <pre>
     * Provider-mode status. Emitted once on stream open and again on every
     * failover/failback so late joiners learn the current mode immediately.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
     * @return The providerStatus.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus getProviderStatus();
    /**
     * <pre>
     * Provider-mode status. Emitted once on stream open and again on every
     * failover/failback so late joiners learn the current mode immediately.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatusOrBuilder getProviderStatusOrBuilder();

    /**
     * <pre>
     * Snapshot-completeness status. Emitted once on stream open and again on
     * every change of the truncation verdict, so late joiners learn whether the
     * feed's active-alarm set may be incomplete.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
     * @return Whether the snapshotStatus field is set.
     */
    boolean hasSnapshotStatus();
    /**
     * <pre>
     * Snapshot-completeness status. Emitted once on stream open and again on
     * every change of the truncation verdict, so late joiners learn whether the
     * feed's active-alarm set may be incomplete.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
     * @return The snapshotStatus.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus getSnapshotStatus();
    /**
     * <pre>
     * Snapshot-completeness status. Emitted once on stream open and again on
     * every change of the truncation verdict, so late joiners learn whether the
     * feed's active-alarm set may be incomplete.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatusOrBuilder getSnapshotStatusOrBuilder();

    mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.PayloadCase getPayloadCase();
  }
  /**
   * <pre>
   * One message on the StreamAlarms feed. The stream opens with a
   * `provider_status` (the current provider mode), then a `snapshot_status`
   * (whether the cached active set may be incomplete), then one `active_alarm`
   * per currently-active alarm, then a single `snapshot_complete`. After that
   * come the live frames: a `transition` for every subsequent alarm change,
   * interleaved with a further `provider_status` on each failover/failback and a
   * further `snapshot_status` on each change of the truncation verdict.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.AlarmFeedMessage}
   */
  public static final class AlarmFeedMessage extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AlarmFeedMessage)
      AlarmFeedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmFeedMessage");
    }
    // Use AlarmFeedMessage.newBuilder() to construct.
    private AlarmFeedMessage(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AlarmFeedMessage() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFeedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFeedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.class, mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.Builder.class);
    }

    private int payloadCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object payload_;
    public enum PayloadCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ACTIVE_ALARM(1),
      SNAPSHOT_COMPLETE(2),
      TRANSITION(3),
      PROVIDER_STATUS(4),
      SNAPSHOT_STATUS(5),
      PAYLOAD_NOT_SET(0);
      private final int value;
      private PayloadCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PayloadCase valueOf(int value) {
        return forNumber(value);
      }

      public static PayloadCase forNumber(int value) {
        switch (value) {
          case 1: return ACTIVE_ALARM;
          case 2: return SNAPSHOT_COMPLETE;
          case 3: return TRANSITION;
          case 4: return PROVIDER_STATUS;
          case 5: return SNAPSHOT_STATUS;
          case 0: return PAYLOAD_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public PayloadCase
    getPayloadCase() {
      return PayloadCase.forNumber(
          payloadCase_);
    }

    public static final int ACTIVE_ALARM_FIELD_NUMBER = 1;
    /**
     * <pre>
     * Part of the initial active-alarm snapshot (ConditionRefresh).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
     * @return Whether the activeAlarm field is set.
     */
    @java.lang.Override
    public boolean hasActiveAlarm() {
      return payloadCase_ == 1;
    }
    /**
     * <pre>
     * Part of the initial active-alarm snapshot (ConditionRefresh).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
     * @return The activeAlarm.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getActiveAlarm() {
      if (payloadCase_ == 1) {
         return (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance();
    }
    /**
     * <pre>
     * Part of the initial active-alarm snapshot (ConditionRefresh).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder getActiveAlarmOrBuilder() {
      if (payloadCase_ == 1) {
         return (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance();
    }

    public static final int SNAPSHOT_COMPLETE_FIELD_NUMBER = 2;
    /**
     * <pre>
     * Sentinel: the initial snapshot is fully delivered and `transition`
     * messages follow. Always true when present.
     * </pre>
     *
     * <code>bool snapshot_complete = 2;</code>
     * @return Whether the snapshotComplete field is set.
     */
    @java.lang.Override
    public boolean hasSnapshotComplete() {
      return payloadCase_ == 2;
    }
    /**
     * <pre>
     * Sentinel: the initial snapshot is fully delivered and `transition`
     * messages follow. Always true when present.
     * </pre>
     *
     * <code>bool snapshot_complete = 2;</code>
     * @return The snapshotComplete.
     */
    @java.lang.Override
    public boolean getSnapshotComplete() {
      if (payloadCase_ == 2) {
        return (java.lang.Boolean) payload_;
      }
      return false;
    }

    public static final int TRANSITION_FIELD_NUMBER = 3;
    /**
     * <pre>
     * A live alarm state change (raise / acknowledge / clear).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
     * @return Whether the transition field is set.
     */
    @java.lang.Override
    public boolean hasTransition() {
      return payloadCase_ == 3;
    }
    /**
     * <pre>
     * A live alarm state change (raise / acknowledge / clear).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
     * @return The transition.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getTransition() {
      if (payloadCase_ == 3) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
    }
    /**
     * <pre>
     * A live alarm state change (raise / acknowledge / clear).
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder getTransitionOrBuilder() {
      if (payloadCase_ == 3) {
         return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
    }

    public static final int PROVIDER_STATUS_FIELD_NUMBER = 4;
    /**
     * <pre>
     * Provider-mode status. Emitted once on stream open and again on every
     * failover/failback so late joiners learn the current mode immediately.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
     * @return Whether the providerStatus field is set.
     */
    @java.lang.Override
    public boolean hasProviderStatus() {
      return payloadCase_ == 4;
    }
    /**
     * <pre>
     * Provider-mode status. Emitted once on stream open and again on every
     * failover/failback so late joiners learn the current mode immediately.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
     * @return The providerStatus.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus getProviderStatus() {
      if (payloadCase_ == 4) {
         return (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance();
    }
    /**
     * <pre>
     * Provider-mode status. Emitted once on stream open and again on every
     * failover/failback so late joiners learn the current mode immediately.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatusOrBuilder getProviderStatusOrBuilder() {
      if (payloadCase_ == 4) {
         return (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance();
    }

    public static final int SNAPSHOT_STATUS_FIELD_NUMBER = 5;
    /**
     * <pre>
     * Snapshot-completeness status. Emitted once on stream open and again on
     * every change of the truncation verdict, so late joiners learn whether the
     * feed's active-alarm set may be incomplete.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
     * @return Whether the snapshotStatus field is set.
     */
    @java.lang.Override
    public boolean hasSnapshotStatus() {
      return payloadCase_ == 5;
    }
    /**
     * <pre>
     * Snapshot-completeness status. Emitted once on stream open and again on
     * every change of the truncation verdict, so late joiners learn whether the
     * feed's active-alarm set may be incomplete.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
     * @return The snapshotStatus.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus getSnapshotStatus() {
      if (payloadCase_ == 5) {
         return (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance();
    }
    /**
     * <pre>
     * Snapshot-completeness status. Emitted once on stream open and again on
     * every change of the truncation verdict, so late joiners learn whether the
     * feed's active-alarm set may be incomplete.
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatusOrBuilder getSnapshotStatusOrBuilder() {
      if (payloadCase_ == 5) {
         return (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance();
    }

    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 (payloadCase_ == 1) {
        output.writeMessage(1, (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_);
      }
      if (payloadCase_ == 2) {
        output.writeBool(
            2, (boolean)((java.lang.Boolean) payload_));
      }
      if (payloadCase_ == 3) {
        output.writeMessage(3, (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_);
      }
      if (payloadCase_ == 4) {
        output.writeMessage(4, (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_);
      }
      if (payloadCase_ == 5) {
        output.writeMessage(5, (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (payloadCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_);
      }
      if (payloadCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              2, (boolean)((java.lang.Boolean) payload_));
      }
      if (payloadCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_);
      }
      if (payloadCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_);
      }
      if (payloadCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage other = (mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage) obj;

      if (!getPayloadCase().equals(other.getPayloadCase())) return false;
      switch (payloadCase_) {
        case 1:
          if (!getActiveAlarm()
              .equals(other.getActiveAlarm())) return false;
          break;
        case 2:
          if (getSnapshotComplete()
              != other.getSnapshotComplete()) return false;
          break;
        case 3:
          if (!getTransition()
              .equals(other.getTransition())) return false;
          break;
        case 4:
          if (!getProviderStatus()
              .equals(other.getProviderStatus())) return false;
          break;
        case 5:
          if (!getSnapshotStatus()
              .equals(other.getSnapshotStatus())) return false;
          break;
        case 0:
        default:
      }
      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();
      switch (payloadCase_) {
        case 1:
          hash = (37 * hash) + ACTIVE_ALARM_FIELD_NUMBER;
          hash = (53 * hash) + getActiveAlarm().hashCode();
          break;
        case 2:
          hash = (37 * hash) + SNAPSHOT_COMPLETE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getSnapshotComplete());
          break;
        case 3:
          hash = (37 * hash) + TRANSITION_FIELD_NUMBER;
          hash = (53 * hash) + getTransition().hashCode();
          break;
        case 4:
          hash = (37 * hash) + PROVIDER_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getProviderStatus().hashCode();
          break;
        case 5:
          hash = (37 * hash) + SNAPSHOT_STATUS_FIELD_NUMBER;
          hash = (53 * hash) + getSnapshotStatus().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage 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 mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage 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 mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage 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(mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage 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;
    }
    /**
     * <pre>
     * One message on the StreamAlarms feed. The stream opens with a
     * `provider_status` (the current provider mode), then a `snapshot_status`
     * (whether the cached active set may be incomplete), then one `active_alarm`
     * per currently-active alarm, then a single `snapshot_complete`. After that
     * come the live frames: a `transition` for every subsequent alarm change,
     * interleaved with a further `provider_status` on each failover/failback and a
     * further `snapshot_status` on each change of the truncation verdict.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.AlarmFeedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AlarmFeedMessage)
        mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFeedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFeedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.class, mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (activeAlarmBuilder_ != null) {
          activeAlarmBuilder_.clear();
        }
        if (transitionBuilder_ != null) {
          transitionBuilder_.clear();
        }
        if (providerStatusBuilder_ != null) {
          providerStatusBuilder_.clear();
        }
        if (snapshotStatusBuilder_ != null) {
          snapshotStatusBuilder_.clear();
        }
        payloadCase_ = 0;
        payload_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmFeedMessage_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage build() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage result = new mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage result) {
        int from_bitField0_ = bitField0_;
      }

      private void buildPartialOneofs(mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage result) {
        result.payloadCase_ = payloadCase_;
        result.payload_ = this.payload_;
        if (payloadCase_ == 1 &&
            activeAlarmBuilder_ != null) {
          result.payload_ = activeAlarmBuilder_.build();
        }
        if (payloadCase_ == 3 &&
            transitionBuilder_ != null) {
          result.payload_ = transitionBuilder_.build();
        }
        if (payloadCase_ == 4 &&
            providerStatusBuilder_ != null) {
          result.payload_ = providerStatusBuilder_.build();
        }
        if (payloadCase_ == 5 &&
            snapshotStatusBuilder_ != null) {
          result.payload_ = snapshotStatusBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage.getDefaultInstance()) return this;
        switch (other.getPayloadCase()) {
          case ACTIVE_ALARM: {
            mergeActiveAlarm(other.getActiveAlarm());
            break;
          }
          case SNAPSHOT_COMPLETE: {
            setSnapshotComplete(other.getSnapshotComplete());
            break;
          }
          case TRANSITION: {
            mergeTransition(other.getTransition());
            break;
          }
          case PROVIDER_STATUS: {
            mergeProviderStatus(other.getProviderStatus());
            break;
          }
          case SNAPSHOT_STATUS: {
            mergeSnapshotStatus(other.getSnapshotStatus());
            break;
          }
          case PAYLOAD_NOT_SET: {
            break;
          }
        }
        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: {
                input.readMessage(
                    internalGetActiveAlarmFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 1;
                break;
              } // case 10
              case 16: {
                payload_ = input.readBool();
                payloadCase_ = 2;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    internalGetTransitionFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 3;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    internalGetProviderStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 4;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    internalGetSnapshotStatusFieldBuilder().getBuilder(),
                    extensionRegistry);
                payloadCase_ = 5;
                break;
              } // case 42
              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 payloadCase_ = 0;
      private java.lang.Object payload_;
      public PayloadCase
          getPayloadCase() {
        return PayloadCase.forNumber(
            payloadCase_);
      }

      public Builder clearPayload() {
        payloadCase_ = 0;
        payload_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder> activeAlarmBuilder_;
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       * @return Whether the activeAlarm field is set.
       */
      @java.lang.Override
      public boolean hasActiveAlarm() {
        return payloadCase_ == 1;
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       * @return The activeAlarm.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot getActiveAlarm() {
        if (activeAlarmBuilder_ == null) {
          if (payloadCase_ == 1) {
            return (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance();
        } else {
          if (payloadCase_ == 1) {
            return activeAlarmBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       */
      public Builder setActiveAlarm(mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot value) {
        if (activeAlarmBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          activeAlarmBuilder_.setMessage(value);
        }
        payloadCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       */
      public Builder setActiveAlarm(
          mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder builderForValue) {
        if (activeAlarmBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          activeAlarmBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       */
      public Builder mergeActiveAlarm(mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot value) {
        if (activeAlarmBuilder_ == null) {
          if (payloadCase_ == 1 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.newBuilder((mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 1) {
            activeAlarmBuilder_.mergeFrom(value);
          } else {
            activeAlarmBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 1;
        return this;
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       */
      public Builder clearActiveAlarm() {
        if (activeAlarmBuilder_ == null) {
          if (payloadCase_ == 1) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 1) {
            payloadCase_ = 0;
            payload_ = null;
          }
          activeAlarmBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder getActiveAlarmBuilder() {
        return internalGetActiveAlarmFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder getActiveAlarmOrBuilder() {
        if ((payloadCase_ == 1) && (activeAlarmBuilder_ != null)) {
          return activeAlarmBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 1) {
            return (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Part of the initial active-alarm snapshot (ConditionRefresh).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.ActiveAlarmSnapshot active_alarm = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder> 
          internalGetActiveAlarmFieldBuilder() {
        if (activeAlarmBuilder_ == null) {
          if (!(payloadCase_ == 1)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.getDefaultInstance();
          }
          activeAlarmBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot.Builder, mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshotOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.ActiveAlarmSnapshot) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 1;
        onChanged();
        return activeAlarmBuilder_;
      }

      /**
       * <pre>
       * Sentinel: the initial snapshot is fully delivered and `transition`
       * messages follow. Always true when present.
       * </pre>
       *
       * <code>bool snapshot_complete = 2;</code>
       * @return Whether the snapshotComplete field is set.
       */
      public boolean hasSnapshotComplete() {
        return payloadCase_ == 2;
      }
      /**
       * <pre>
       * Sentinel: the initial snapshot is fully delivered and `transition`
       * messages follow. Always true when present.
       * </pre>
       *
       * <code>bool snapshot_complete = 2;</code>
       * @return The snapshotComplete.
       */
      public boolean getSnapshotComplete() {
        if (payloadCase_ == 2) {
          return (java.lang.Boolean) payload_;
        }
        return false;
      }
      /**
       * <pre>
       * Sentinel: the initial snapshot is fully delivered and `transition`
       * messages follow. Always true when present.
       * </pre>
       *
       * <code>bool snapshot_complete = 2;</code>
       * @param value The snapshotComplete to set.
       * @return This builder for chaining.
       */
      public Builder setSnapshotComplete(boolean value) {

        payloadCase_ = 2;
        payload_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Sentinel: the initial snapshot is fully delivered and `transition`
       * messages follow. Always true when present.
       * </pre>
       *
       * <code>bool snapshot_complete = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSnapshotComplete() {
        if (payloadCase_ == 2) {
          payloadCase_ = 0;
          payload_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder> transitionBuilder_;
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       * @return Whether the transition field is set.
       */
      @java.lang.Override
      public boolean hasTransition() {
        return payloadCase_ == 3;
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       * @return The transition.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent getTransition() {
        if (transitionBuilder_ == null) {
          if (payloadCase_ == 3) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
        } else {
          if (payloadCase_ == 3) {
            return transitionBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       */
      public Builder setTransition(mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent value) {
        if (transitionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          transitionBuilder_.setMessage(value);
        }
        payloadCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       */
      public Builder setTransition(
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder builderForValue) {
        if (transitionBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          transitionBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       */
      public Builder mergeTransition(mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent value) {
        if (transitionBuilder_ == null) {
          if (payloadCase_ == 3 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.newBuilder((mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 3) {
            transitionBuilder_.mergeFrom(value);
          } else {
            transitionBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 3;
        return this;
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       */
      public Builder clearTransition() {
        if (transitionBuilder_ == null) {
          if (payloadCase_ == 3) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 3) {
            payloadCase_ = 0;
            payload_ = null;
          }
          transitionBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder getTransitionBuilder() {
        return internalGetTransitionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder getTransitionOrBuilder() {
        if ((payloadCase_ == 3) && (transitionBuilder_ != null)) {
          return transitionBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 3) {
            return (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * A live alarm state change (raise / acknowledge / clear).
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.OnAlarmTransitionEvent transition = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder> 
          internalGetTransitionFieldBuilder() {
        if (transitionBuilder_ == null) {
          if (!(payloadCase_ == 3)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.getDefaultInstance();
          }
          transitionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEventOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.OnAlarmTransitionEvent) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 3;
        onChanged();
        return transitionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatusOrBuilder> providerStatusBuilder_;
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       * @return Whether the providerStatus field is set.
       */
      @java.lang.Override
      public boolean hasProviderStatus() {
        return payloadCase_ == 4;
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       * @return The providerStatus.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus getProviderStatus() {
        if (providerStatusBuilder_ == null) {
          if (payloadCase_ == 4) {
            return (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance();
        } else {
          if (payloadCase_ == 4) {
            return providerStatusBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       */
      public Builder setProviderStatus(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus value) {
        if (providerStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          providerStatusBuilder_.setMessage(value);
        }
        payloadCase_ = 4;
        return this;
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       */
      public Builder setProviderStatus(
          mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.Builder builderForValue) {
        if (providerStatusBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          providerStatusBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 4;
        return this;
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       */
      public Builder mergeProviderStatus(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus value) {
        if (providerStatusBuilder_ == null) {
          if (payloadCase_ == 4 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 4) {
            providerStatusBuilder_.mergeFrom(value);
          } else {
            providerStatusBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 4;
        return this;
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       */
      public Builder clearProviderStatus() {
        if (providerStatusBuilder_ == null) {
          if (payloadCase_ == 4) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 4) {
            payloadCase_ = 0;
            payload_ = null;
          }
          providerStatusBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.Builder getProviderStatusBuilder() {
        return internalGetProviderStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatusOrBuilder getProviderStatusOrBuilder() {
        if ((payloadCase_ == 4) && (providerStatusBuilder_ != null)) {
          return providerStatusBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 4) {
            return (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Provider-mode status. Emitted once on stream open and again on every
       * failover/failback so late joiners learn the current mode immediately.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmProviderStatus provider_status = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatusOrBuilder> 
          internalGetProviderStatusFieldBuilder() {
        if (providerStatusBuilder_ == null) {
          if (!(payloadCase_ == 4)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance();
          }
          providerStatusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatusOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 4;
        onChanged();
        return providerStatusBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatusOrBuilder> snapshotStatusBuilder_;
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       * @return Whether the snapshotStatus field is set.
       */
      @java.lang.Override
      public boolean hasSnapshotStatus() {
        return payloadCase_ == 5;
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       * @return The snapshotStatus.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus getSnapshotStatus() {
        if (snapshotStatusBuilder_ == null) {
          if (payloadCase_ == 5) {
            return (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance();
        } else {
          if (payloadCase_ == 5) {
            return snapshotStatusBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       */
      public Builder setSnapshotStatus(mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus value) {
        if (snapshotStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          snapshotStatusBuilder_.setMessage(value);
        }
        payloadCase_ = 5;
        return this;
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       */
      public Builder setSnapshotStatus(
          mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.Builder builderForValue) {
        if (snapshotStatusBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          snapshotStatusBuilder_.setMessage(builderForValue.build());
        }
        payloadCase_ = 5;
        return this;
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       */
      public Builder mergeSnapshotStatus(mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus value) {
        if (snapshotStatusBuilder_ == null) {
          if (payloadCase_ == 5 &&
              payload_ != mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance()) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.newBuilder((mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_)
                .mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          if (payloadCase_ == 5) {
            snapshotStatusBuilder_.mergeFrom(value);
          } else {
            snapshotStatusBuilder_.setMessage(value);
          }
        }
        payloadCase_ = 5;
        return this;
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       */
      public Builder clearSnapshotStatus() {
        if (snapshotStatusBuilder_ == null) {
          if (payloadCase_ == 5) {
            payloadCase_ = 0;
            payload_ = null;
            onChanged();
          }
        } else {
          if (payloadCase_ == 5) {
            payloadCase_ = 0;
            payload_ = null;
          }
          snapshotStatusBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.Builder getSnapshotStatusBuilder() {
        return internalGetSnapshotStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatusOrBuilder getSnapshotStatusOrBuilder() {
        if ((payloadCase_ == 5) && (snapshotStatusBuilder_ != null)) {
          return snapshotStatusBuilder_.getMessageOrBuilder();
        } else {
          if (payloadCase_ == 5) {
            return (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance();
        }
      }
      /**
       * <pre>
       * Snapshot-completeness status. Emitted once on stream open and again on
       * every change of the truncation verdict, so late joiners learn whether the
       * feed's active-alarm set may be incomplete.
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.AlarmSnapshotStatus snapshot_status = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatusOrBuilder> 
          internalGetSnapshotStatusFieldBuilder() {
        if (snapshotStatusBuilder_ == null) {
          if (!(payloadCase_ == 5)) {
            payload_ = mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance();
          }
          snapshotStatusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatusOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        payloadCase_ = 5;
        onChanged();
        return snapshotStatusBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AlarmFeedMessage)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AlarmFeedMessage)
    private static final mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AlarmFeedMessage>
        PARSER = new com.google.protobuf.AbstractParser<AlarmFeedMessage>() {
      @java.lang.Override
      public AlarmFeedMessage 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<AlarmFeedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmFeedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AlarmProviderStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AlarmProviderStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The enum numeric value on the wire for mode.
     */
    int getModeValue();
    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The mode.
     */
    mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getMode();

    /**
     * <pre>
     * true whenever mode == SUBTAG
     * </pre>
     *
     * <code>bool degraded = 2;</code>
     * @return The degraded.
     */
    boolean getDegraded();

    /**
     * <pre>
     * human-readable switch reason
     * </pre>
     *
     * <code>string reason = 3;</code>
     * @return The reason.
     */
    java.lang.String getReason();
    /**
     * <pre>
     * human-readable switch reason
     * </pre>
     *
     * <code>string reason = 3;</code>
     * @return The bytes for reason.
     */
    com.google.protobuf.ByteString
        getReasonBytes();

    /**
     * <code>.google.protobuf.Timestamp since = 4;</code>
     * @return Whether the since field is set.
     */
    boolean hasSince();
    /**
     * <code>.google.protobuf.Timestamp since = 4;</code>
     * @return The since.
     */
    com.google.protobuf.Timestamp getSince();
    /**
     * <code>.google.protobuf.Timestamp since = 4;</code>
     */
    com.google.protobuf.TimestampOrBuilder getSinceOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.AlarmProviderStatus}
   */
  public static final class AlarmProviderStatus extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AlarmProviderStatus)
      AlarmProviderStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmProviderStatus");
    }
    // Use AlarmProviderStatus.newBuilder() to construct.
    private AlarmProviderStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AlarmProviderStatus() {
      mode_ = 0;
      reason_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmProviderStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmProviderStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.class, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.Builder.class);
    }

    private int bitField0_;
    public static final int MODE_FIELD_NUMBER = 1;
    private int mode_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The enum numeric value on the wire for mode.
     */
    @java.lang.Override public int getModeValue() {
      return mode_;
    }
    /**
     * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
     * @return The mode.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getMode() {
      mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(mode_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
    }

    public static final int DEGRADED_FIELD_NUMBER = 2;
    private boolean degraded_ = false;
    /**
     * <pre>
     * true whenever mode == SUBTAG
     * </pre>
     *
     * <code>bool degraded = 2;</code>
     * @return The degraded.
     */
    @java.lang.Override
    public boolean getDegraded() {
      return degraded_;
    }

    public static final int REASON_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object reason_ = "";
    /**
     * <pre>
     * human-readable switch reason
     * </pre>
     *
     * <code>string reason = 3;</code>
     * @return The reason.
     */
    @java.lang.Override
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      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();
        reason_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * human-readable switch reason
     * </pre>
     *
     * <code>string reason = 3;</code>
     * @return The bytes for reason.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SINCE_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp since_;
    /**
     * <code>.google.protobuf.Timestamp since = 4;</code>
     * @return Whether the since field is set.
     */
    @java.lang.Override
    public boolean hasSince() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp since = 4;</code>
     * @return The since.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getSince() {
      return since_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : since_;
    }
    /**
     * <code>.google.protobuf.Timestamp since = 4;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getSinceOrBuilder() {
      return since_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : since_;
    }

    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 (mode_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, mode_);
      }
      if (degraded_ != false) {
        output.writeBool(2, degraded_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(reason_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, reason_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getSince());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (mode_ != mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.ALARM_PROVIDER_MODE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, mode_);
      }
      if (degraded_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, degraded_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(reason_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, reason_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getSince());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus other = (mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) obj;

      if (mode_ != other.mode_) return false;
      if (getDegraded()
          != other.getDegraded()) return false;
      if (!getReason()
          .equals(other.getReason())) return false;
      if (hasSince() != other.hasSince()) return false;
      if (hasSince()) {
        if (!getSince()
            .equals(other.getSince())) 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();
      hash = (37 * hash) + MODE_FIELD_NUMBER;
      hash = (53 * hash) + mode_;
      hash = (37 * hash) + DEGRADED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDegraded());
      hash = (37 * hash) + REASON_FIELD_NUMBER;
      hash = (53 * hash) + getReason().hashCode();
      if (hasSince()) {
        hash = (37 * hash) + SINCE_FIELD_NUMBER;
        hash = (53 * hash) + getSince().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus 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 mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus 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 mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus 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(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus 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 mxaccess_gateway.v1.AlarmProviderStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AlarmProviderStatus)
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmProviderStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmProviderStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.class, mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetSinceFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        mode_ = 0;
        degraded_ = false;
        reason_ = "";
        since_ = null;
        if (sinceBuilder_ != null) {
          sinceBuilder_.dispose();
          sinceBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmProviderStatus_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus build() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus result = new mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.mode_ = mode_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.degraded_ = degraded_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.reason_ = reason_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.since_ = sinceBuilder_ == null
              ? since_
              : sinceBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus.getDefaultInstance()) return this;
        if (other.mode_ != 0) {
          setModeValue(other.getModeValue());
        }
        if (other.getDegraded() != false) {
          setDegraded(other.getDegraded());
        }
        if (!other.getReason().isEmpty()) {
          reason_ = other.reason_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasSince()) {
          mergeSince(other.getSince());
        }
        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 8: {
                mode_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                degraded_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                reason_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    internalGetSinceFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              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 int mode_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @return The enum numeric value on the wire for mode.
       */
      @java.lang.Override public int getModeValue() {
        return mode_;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @param value The enum numeric value on the wire for mode to set.
       * @return This builder for chaining.
       */
      public Builder setModeValue(int value) {
        mode_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @return The mode.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode getMode() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode result = mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.forNumber(mode_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @param value The mode to set.
       * @return This builder for chaining.
       */
      public Builder setMode(mxaccess_gateway.v1.MxaccessGateway.AlarmProviderMode value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        mode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.AlarmProviderMode mode = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        mode_ = 0;
        onChanged();
        return this;
      }

      private boolean degraded_ ;
      /**
       * <pre>
       * true whenever mode == SUBTAG
       * </pre>
       *
       * <code>bool degraded = 2;</code>
       * @return The degraded.
       */
      @java.lang.Override
      public boolean getDegraded() {
        return degraded_;
      }
      /**
       * <pre>
       * true whenever mode == SUBTAG
       * </pre>
       *
       * <code>bool degraded = 2;</code>
       * @param value The degraded to set.
       * @return This builder for chaining.
       */
      public Builder setDegraded(boolean value) {

        degraded_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * true whenever mode == SUBTAG
       * </pre>
       *
       * <code>bool degraded = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDegraded() {
        bitField0_ = (bitField0_ & ~0x00000002);
        degraded_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object reason_ = "";
      /**
       * <pre>
       * human-readable switch reason
       * </pre>
       *
       * <code>string reason = 3;</code>
       * @return The reason.
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          reason_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * human-readable switch reason
       * </pre>
       *
       * <code>string reason = 3;</code>
       * @return The bytes for reason.
       */
      public com.google.protobuf.ByteString
          getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * human-readable switch reason
       * </pre>
       *
       * <code>string reason = 3;</code>
       * @param value The reason to set.
       * @return This builder for chaining.
       */
      public Builder setReason(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        reason_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * human-readable switch reason
       * </pre>
       *
       * <code>string reason = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearReason() {
        reason_ = getDefaultInstance().getReason();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * human-readable switch reason
       * </pre>
       *
       * <code>string reason = 3;</code>
       * @param value The bytes for reason to set.
       * @return This builder for chaining.
       */
      public Builder setReasonBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        reason_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp since_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> sinceBuilder_;
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       * @return Whether the since field is set.
       */
      public boolean hasSince() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       * @return The since.
       */
      public com.google.protobuf.Timestamp getSince() {
        if (sinceBuilder_ == null) {
          return since_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : since_;
        } else {
          return sinceBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       */
      public Builder setSince(com.google.protobuf.Timestamp value) {
        if (sinceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          since_ = value;
        } else {
          sinceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       */
      public Builder setSince(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (sinceBuilder_ == null) {
          since_ = builderForValue.build();
        } else {
          sinceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       */
      public Builder mergeSince(com.google.protobuf.Timestamp value) {
        if (sinceBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            since_ != null &&
            since_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getSinceBuilder().mergeFrom(value);
          } else {
            since_ = value;
          }
        } else {
          sinceBuilder_.mergeFrom(value);
        }
        if (since_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       */
      public Builder clearSince() {
        bitField0_ = (bitField0_ & ~0x00000008);
        since_ = null;
        if (sinceBuilder_ != null) {
          sinceBuilder_.dispose();
          sinceBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       */
      public com.google.protobuf.Timestamp.Builder getSinceBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetSinceFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getSinceOrBuilder() {
        if (sinceBuilder_ != null) {
          return sinceBuilder_.getMessageOrBuilder();
        } else {
          return since_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : since_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp since = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetSinceFieldBuilder() {
        if (sinceBuilder_ == null) {
          sinceBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getSince(),
                  getParentForChildren(),
                  isClean());
          since_ = null;
        }
        return sinceBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AlarmProviderStatus)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AlarmProviderStatus)
    private static final mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AlarmProviderStatus>
        PARSER = new com.google.protobuf.AbstractParser<AlarmProviderStatus>() {
      @java.lang.Override
      public AlarmProviderStatus 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<AlarmProviderStatus> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmProviderStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AlarmSnapshotStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.AlarmSnapshotStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * True while the monitor's cached active-alarm set derives from a truncated
     * (capped) worker fetch — the set may be missing alarms. Distinct from
     * provider degradation (AlarmProviderStatus.degraded), which describes the
     * fidelity of the records rather than the completeness of the set.
     * </pre>
     *
     * <code>bool truncated = 1;</code>
     * @return The truncated.
     */
    boolean getTruncated();
  }
  /**
   * <pre>
   * Feed-level snapshot-completeness status. Emitted once on StreamAlarms open
   * (after the initial provider_status frame, before the cached active_alarm
   * frames) so late joiners learn the current verdict, and again on every change
   * of the truncation verdict — when a reconcile reports a different verdict, and
   * when the gateway's alarm monitor restarts and drops a truncated verdict with
   * the cache generation it described (feed subscribers outlive that monitor
   * session, so they are sent the clearing frame). Mirrors the per-record
   * ActiveAlarmSnapshot.from_truncated_snapshot caveat at feed level so live
   * consumers can reason about completeness without polling QueryActiveAlarms.
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.AlarmSnapshotStatus}
   */
  public static final class AlarmSnapshotStatus extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.AlarmSnapshotStatus)
      AlarmSnapshotStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "AlarmSnapshotStatus");
    }
    // Use AlarmSnapshotStatus.newBuilder() to construct.
    private AlarmSnapshotStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private AlarmSnapshotStatus() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.class, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.Builder.class);
    }

    public static final int TRUNCATED_FIELD_NUMBER = 1;
    private boolean truncated_ = false;
    /**
     * <pre>
     * True while the monitor's cached active-alarm set derives from a truncated
     * (capped) worker fetch — the set may be missing alarms. Distinct from
     * provider degradation (AlarmProviderStatus.degraded), which describes the
     * fidelity of the records rather than the completeness of the set.
     * </pre>
     *
     * <code>bool truncated = 1;</code>
     * @return The truncated.
     */
    @java.lang.Override
    public boolean getTruncated() {
      return truncated_;
    }

    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 (truncated_ != false) {
        output.writeBool(1, truncated_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (truncated_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, truncated_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus other = (mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) obj;

      if (getTruncated()
          != other.getTruncated()) 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();
      hash = (37 * hash) + TRUNCATED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getTruncated());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus 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 mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus 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 mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus 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(mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus 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;
    }
    /**
     * <pre>
     * Feed-level snapshot-completeness status. Emitted once on StreamAlarms open
     * (after the initial provider_status frame, before the cached active_alarm
     * frames) so late joiners learn the current verdict, and again on every change
     * of the truncation verdict — when a reconcile reports a different verdict, and
     * when the gateway's alarm monitor restarts and drops a truncated verdict with
     * the cache generation it described (feed subscribers outlive that monitor
     * session, so they are sent the clearing frame). Mirrors the per-record
     * ActiveAlarmSnapshot.from_truncated_snapshot caveat at feed level so live
     * consumers can reason about completeness without polling QueryActiveAlarms.
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.AlarmSnapshotStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.AlarmSnapshotStatus)
        mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.class, mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        truncated_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus build() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus result = new mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.truncated_ = truncated_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus.getDefaultInstance()) return this;
        if (other.getTruncated() != false) {
          setTruncated(other.getTruncated());
        }
        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 8: {
                truncated_ = input.readBool();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              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 boolean truncated_ ;
      /**
       * <pre>
       * True while the monitor's cached active-alarm set derives from a truncated
       * (capped) worker fetch — the set may be missing alarms. Distinct from
       * provider degradation (AlarmProviderStatus.degraded), which describes the
       * fidelity of the records rather than the completeness of the set.
       * </pre>
       *
       * <code>bool truncated = 1;</code>
       * @return The truncated.
       */
      @java.lang.Override
      public boolean getTruncated() {
        return truncated_;
      }
      /**
       * <pre>
       * True while the monitor's cached active-alarm set derives from a truncated
       * (capped) worker fetch — the set may be missing alarms. Distinct from
       * provider degradation (AlarmProviderStatus.degraded), which describes the
       * fidelity of the records rather than the completeness of the set.
       * </pre>
       *
       * <code>bool truncated = 1;</code>
       * @param value The truncated to set.
       * @return This builder for chaining.
       */
      public Builder setTruncated(boolean value) {

        truncated_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * True while the monitor's cached active-alarm set derives from a truncated
       * (capped) worker fetch — the set may be missing alarms. Distinct from
       * provider degradation (AlarmProviderStatus.degraded), which describes the
       * fidelity of the records rather than the completeness of the set.
       * </pre>
       *
       * <code>bool truncated = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTruncated() {
        bitField0_ = (bitField0_ & ~0x00000001);
        truncated_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.AlarmSnapshotStatus)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.AlarmSnapshotStatus)
    private static final mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AlarmSnapshotStatus>
        PARSER = new com.google.protobuf.AbstractParser<AlarmSnapshotStatus>() {
      @java.lang.Override
      public AlarmSnapshotStatus 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<AlarmSnapshotStatus> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.AlarmSnapshotStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxStatusProxyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxStatusProxy)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Mirrors the `success` member of the MXAccess MXSTATUS_PROXY struct
     * (a 16-bit signed value in the COM struct, widened to int32 on the
     * wire). Despite the name it is NOT a boolean — it is the raw numeric
     * indicator the worker reads off the COM struct without reinterpretation.
     * It is carried verbatim for diagnostics; the authoritative success/
     * failure of the operation is `category` (MX_STATUS_CATEGORY_OK marks
     * success), with `detail`, `diagnostic_text`, `raw_category`, and
     * `raw_detected_by` describing any non-OK outcome. Clients should branch
     * on `category`, not on a specific `success` value.
     * </pre>
     *
     * <code>int32 success = 1;</code>
     * @return The success.
     */
    int getSuccess();

    /**
     * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
     * @return The enum numeric value on the wire for category.
     */
    int getCategoryValue();
    /**
     * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
     * @return The category.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory getCategory();

    /**
     * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
     * @return The enum numeric value on the wire for detectedBy.
     */
    int getDetectedByValue();
    /**
     * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
     * @return The detectedBy.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxStatusSource getDetectedBy();

    /**
     * <code>int32 detail = 4;</code>
     * @return The detail.
     */
    int getDetail();

    /**
     * <code>int32 raw_category = 5;</code>
     * @return The rawCategory.
     */
    int getRawCategory();

    /**
     * <code>int32 raw_detected_by = 6;</code>
     * @return The rawDetectedBy.
     */
    int getRawDetectedBy();

    /**
     * <code>string diagnostic_text = 7;</code>
     * @return The diagnosticText.
     */
    java.lang.String getDiagnosticText();
    /**
     * <code>string diagnostic_text = 7;</code>
     * @return The bytes for diagnosticText.
     */
    com.google.protobuf.ByteString
        getDiagnosticTextBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxStatusProxy}
   */
  public static final class MxStatusProxy extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxStatusProxy)
      MxStatusProxyOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxStatusProxy");
    }
    // Use MxStatusProxy.newBuilder() to construct.
    private MxStatusProxy(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxStatusProxy() {
      category_ = 0;
      detectedBy_ = 0;
      diagnosticText_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxStatusProxy_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxStatusProxy_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.class, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder.class);
    }

    public static final int SUCCESS_FIELD_NUMBER = 1;
    private int success_ = 0;
    /**
     * <pre>
     * Mirrors the `success` member of the MXAccess MXSTATUS_PROXY struct
     * (a 16-bit signed value in the COM struct, widened to int32 on the
     * wire). Despite the name it is NOT a boolean — it is the raw numeric
     * indicator the worker reads off the COM struct without reinterpretation.
     * It is carried verbatim for diagnostics; the authoritative success/
     * failure of the operation is `category` (MX_STATUS_CATEGORY_OK marks
     * success), with `detail`, `diagnostic_text`, `raw_category`, and
     * `raw_detected_by` describing any non-OK outcome. Clients should branch
     * on `category`, not on a specific `success` value.
     * </pre>
     *
     * <code>int32 success = 1;</code>
     * @return The success.
     */
    @java.lang.Override
    public int getSuccess() {
      return success_;
    }

    public static final int CATEGORY_FIELD_NUMBER = 2;
    private int category_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
     * @return The enum numeric value on the wire for category.
     */
    @java.lang.Override public int getCategoryValue() {
      return category_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
     * @return The category.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory getCategory() {
      mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory result = mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory.forNumber(category_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory.UNRECOGNIZED : result;
    }

    public static final int DETECTED_BY_FIELD_NUMBER = 3;
    private int detectedBy_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
     * @return The enum numeric value on the wire for detectedBy.
     */
    @java.lang.Override public int getDetectedByValue() {
      return detectedBy_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
     * @return The detectedBy.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxStatusSource getDetectedBy() {
      mxaccess_gateway.v1.MxaccessGateway.MxStatusSource result = mxaccess_gateway.v1.MxaccessGateway.MxStatusSource.forNumber(detectedBy_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusSource.UNRECOGNIZED : result;
    }

    public static final int DETAIL_FIELD_NUMBER = 4;
    private int detail_ = 0;
    /**
     * <code>int32 detail = 4;</code>
     * @return The detail.
     */
    @java.lang.Override
    public int getDetail() {
      return detail_;
    }

    public static final int RAW_CATEGORY_FIELD_NUMBER = 5;
    private int rawCategory_ = 0;
    /**
     * <code>int32 raw_category = 5;</code>
     * @return The rawCategory.
     */
    @java.lang.Override
    public int getRawCategory() {
      return rawCategory_;
    }

    public static final int RAW_DETECTED_BY_FIELD_NUMBER = 6;
    private int rawDetectedBy_ = 0;
    /**
     * <code>int32 raw_detected_by = 6;</code>
     * @return The rawDetectedBy.
     */
    @java.lang.Override
    public int getRawDetectedBy() {
      return rawDetectedBy_;
    }

    public static final int DIAGNOSTIC_TEXT_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object diagnosticText_ = "";
    /**
     * <code>string diagnostic_text = 7;</code>
     * @return The diagnosticText.
     */
    @java.lang.Override
    public java.lang.String getDiagnosticText() {
      java.lang.Object ref = diagnosticText_;
      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();
        diagnosticText_ = s;
        return s;
      }
    }
    /**
     * <code>string diagnostic_text = 7;</code>
     * @return The bytes for diagnosticText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDiagnosticTextBytes() {
      java.lang.Object ref = diagnosticText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        diagnosticText_ = 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 (success_ != 0) {
        output.writeInt32(1, success_);
      }
      if (category_ != mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory.MX_STATUS_CATEGORY_UNSPECIFIED.getNumber()) {
        output.writeEnum(2, category_);
      }
      if (detectedBy_ != mxaccess_gateway.v1.MxaccessGateway.MxStatusSource.MX_STATUS_SOURCE_UNSPECIFIED.getNumber()) {
        output.writeEnum(3, detectedBy_);
      }
      if (detail_ != 0) {
        output.writeInt32(4, detail_);
      }
      if (rawCategory_ != 0) {
        output.writeInt32(5, rawCategory_);
      }
      if (rawDetectedBy_ != 0) {
        output.writeInt32(6, rawDetectedBy_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticText_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 7, diagnosticText_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (success_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, success_);
      }
      if (category_ != mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory.MX_STATUS_CATEGORY_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, category_);
      }
      if (detectedBy_ != mxaccess_gateway.v1.MxaccessGateway.MxStatusSource.MX_STATUS_SOURCE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, detectedBy_);
      }
      if (detail_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, detail_);
      }
      if (rawCategory_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, rawCategory_);
      }
      if (rawDetectedBy_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, rawDetectedBy_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticText_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(7, diagnosticText_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy other = (mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy) obj;

      if (getSuccess()
          != other.getSuccess()) return false;
      if (category_ != other.category_) return false;
      if (detectedBy_ != other.detectedBy_) return false;
      if (getDetail()
          != other.getDetail()) return false;
      if (getRawCategory()
          != other.getRawCategory()) return false;
      if (getRawDetectedBy()
          != other.getRawDetectedBy()) return false;
      if (!getDiagnosticText()
          .equals(other.getDiagnosticText())) 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();
      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
      hash = (53 * hash) + getSuccess();
      hash = (37 * hash) + CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + category_;
      hash = (37 * hash) + DETECTED_BY_FIELD_NUMBER;
      hash = (53 * hash) + detectedBy_;
      hash = (37 * hash) + DETAIL_FIELD_NUMBER;
      hash = (53 * hash) + getDetail();
      hash = (37 * hash) + RAW_CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + getRawCategory();
      hash = (37 * hash) + RAW_DETECTED_BY_FIELD_NUMBER;
      hash = (53 * hash) + getRawDetectedBy();
      hash = (37 * hash) + DIAGNOSTIC_TEXT_FIELD_NUMBER;
      hash = (53 * hash) + getDiagnosticText().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy 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 mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy 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 mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy 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(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy 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 mxaccess_gateway.v1.MxStatusProxy}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxStatusProxy)
        mxaccess_gateway.v1.MxaccessGateway.MxStatusProxyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxStatusProxy_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxStatusProxy_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.class, mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        success_ = 0;
        category_ = 0;
        detectedBy_ = 0;
        detail_ = 0;
        rawCategory_ = 0;
        rawDetectedBy_ = 0;
        diagnosticText_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxStatusProxy_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy build() {
        mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy result = new mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.success_ = success_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.category_ = category_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.detectedBy_ = detectedBy_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.detail_ = detail_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.rawCategory_ = rawCategory_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.rawDetectedBy_ = rawDetectedBy_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.diagnosticText_ = diagnosticText_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy.getDefaultInstance()) return this;
        if (other.getSuccess() != 0) {
          setSuccess(other.getSuccess());
        }
        if (other.category_ != 0) {
          setCategoryValue(other.getCategoryValue());
        }
        if (other.detectedBy_ != 0) {
          setDetectedByValue(other.getDetectedByValue());
        }
        if (other.getDetail() != 0) {
          setDetail(other.getDetail());
        }
        if (other.getRawCategory() != 0) {
          setRawCategory(other.getRawCategory());
        }
        if (other.getRawDetectedBy() != 0) {
          setRawDetectedBy(other.getRawDetectedBy());
        }
        if (!other.getDiagnosticText().isEmpty()) {
          diagnosticText_ = other.diagnosticText_;
          bitField0_ |= 0x00000040;
          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 8: {
                success_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                category_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                detectedBy_ = input.readEnum();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                detail_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                rawCategory_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                rawDetectedBy_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                diagnosticText_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              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 int success_ ;
      /**
       * <pre>
       * Mirrors the `success` member of the MXAccess MXSTATUS_PROXY struct
       * (a 16-bit signed value in the COM struct, widened to int32 on the
       * wire). Despite the name it is NOT a boolean — it is the raw numeric
       * indicator the worker reads off the COM struct without reinterpretation.
       * It is carried verbatim for diagnostics; the authoritative success/
       * failure of the operation is `category` (MX_STATUS_CATEGORY_OK marks
       * success), with `detail`, `diagnostic_text`, `raw_category`, and
       * `raw_detected_by` describing any non-OK outcome. Clients should branch
       * on `category`, not on a specific `success` value.
       * </pre>
       *
       * <code>int32 success = 1;</code>
       * @return The success.
       */
      @java.lang.Override
      public int getSuccess() {
        return success_;
      }
      /**
       * <pre>
       * Mirrors the `success` member of the MXAccess MXSTATUS_PROXY struct
       * (a 16-bit signed value in the COM struct, widened to int32 on the
       * wire). Despite the name it is NOT a boolean — it is the raw numeric
       * indicator the worker reads off the COM struct without reinterpretation.
       * It is carried verbatim for diagnostics; the authoritative success/
       * failure of the operation is `category` (MX_STATUS_CATEGORY_OK marks
       * success), with `detail`, `diagnostic_text`, `raw_category`, and
       * `raw_detected_by` describing any non-OK outcome. Clients should branch
       * on `category`, not on a specific `success` value.
       * </pre>
       *
       * <code>int32 success = 1;</code>
       * @param value The success to set.
       * @return This builder for chaining.
       */
      public Builder setSuccess(int value) {

        success_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Mirrors the `success` member of the MXAccess MXSTATUS_PROXY struct
       * (a 16-bit signed value in the COM struct, widened to int32 on the
       * wire). Despite the name it is NOT a boolean — it is the raw numeric
       * indicator the worker reads off the COM struct without reinterpretation.
       * It is carried verbatim for diagnostics; the authoritative success/
       * failure of the operation is `category` (MX_STATUS_CATEGORY_OK marks
       * success), with `detail`, `diagnostic_text`, `raw_category`, and
       * `raw_detected_by` describing any non-OK outcome. Clients should branch
       * on `category`, not on a specific `success` value.
       * </pre>
       *
       * <code>int32 success = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000001);
        success_ = 0;
        onChanged();
        return this;
      }

      private int category_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
       * @return The enum numeric value on the wire for category.
       */
      @java.lang.Override public int getCategoryValue() {
        return category_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
       * @param value The enum numeric value on the wire for category to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryValue(int value) {
        category_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
       * @return The category.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory getCategory() {
        mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory result = mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory.forNumber(category_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
       * @param value The category to set.
       * @return This builder for chaining.
       */
      public Builder setCategory(mxaccess_gateway.v1.MxaccessGateway.MxStatusCategory value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        category_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusCategory category = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategory() {
        bitField0_ = (bitField0_ & ~0x00000002);
        category_ = 0;
        onChanged();
        return this;
      }

      private int detectedBy_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
       * @return The enum numeric value on the wire for detectedBy.
       */
      @java.lang.Override public int getDetectedByValue() {
        return detectedBy_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
       * @param value The enum numeric value on the wire for detectedBy to set.
       * @return This builder for chaining.
       */
      public Builder setDetectedByValue(int value) {
        detectedBy_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
       * @return The detectedBy.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxStatusSource getDetectedBy() {
        mxaccess_gateway.v1.MxaccessGateway.MxStatusSource result = mxaccess_gateway.v1.MxaccessGateway.MxStatusSource.forNumber(detectedBy_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxStatusSource.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
       * @param value The detectedBy to set.
       * @return This builder for chaining.
       */
      public Builder setDetectedBy(mxaccess_gateway.v1.MxaccessGateway.MxStatusSource value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000004;
        detectedBy_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxStatusSource detected_by = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDetectedBy() {
        bitField0_ = (bitField0_ & ~0x00000004);
        detectedBy_ = 0;
        onChanged();
        return this;
      }

      private int detail_ ;
      /**
       * <code>int32 detail = 4;</code>
       * @return The detail.
       */
      @java.lang.Override
      public int getDetail() {
        return detail_;
      }
      /**
       * <code>int32 detail = 4;</code>
       * @param value The detail to set.
       * @return This builder for chaining.
       */
      public Builder setDetail(int value) {

        detail_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 detail = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDetail() {
        bitField0_ = (bitField0_ & ~0x00000008);
        detail_ = 0;
        onChanged();
        return this;
      }

      private int rawCategory_ ;
      /**
       * <code>int32 raw_category = 5;</code>
       * @return The rawCategory.
       */
      @java.lang.Override
      public int getRawCategory() {
        return rawCategory_;
      }
      /**
       * <code>int32 raw_category = 5;</code>
       * @param value The rawCategory to set.
       * @return This builder for chaining.
       */
      public Builder setRawCategory(int value) {

        rawCategory_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 raw_category = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawCategory() {
        bitField0_ = (bitField0_ & ~0x00000010);
        rawCategory_ = 0;
        onChanged();
        return this;
      }

      private int rawDetectedBy_ ;
      /**
       * <code>int32 raw_detected_by = 6;</code>
       * @return The rawDetectedBy.
       */
      @java.lang.Override
      public int getRawDetectedBy() {
        return rawDetectedBy_;
      }
      /**
       * <code>int32 raw_detected_by = 6;</code>
       * @param value The rawDetectedBy to set.
       * @return This builder for chaining.
       */
      public Builder setRawDetectedBy(int value) {

        rawDetectedBy_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 raw_detected_by = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawDetectedBy() {
        bitField0_ = (bitField0_ & ~0x00000020);
        rawDetectedBy_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object diagnosticText_ = "";
      /**
       * <code>string diagnostic_text = 7;</code>
       * @return The diagnosticText.
       */
      public java.lang.String getDiagnosticText() {
        java.lang.Object ref = diagnosticText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          diagnosticText_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string diagnostic_text = 7;</code>
       * @return The bytes for diagnosticText.
       */
      public com.google.protobuf.ByteString
          getDiagnosticTextBytes() {
        java.lang.Object ref = diagnosticText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          diagnosticText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string diagnostic_text = 7;</code>
       * @param value The diagnosticText to set.
       * @return This builder for chaining.
       */
      public Builder setDiagnosticText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        diagnosticText_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>string diagnostic_text = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiagnosticText() {
        diagnosticText_ = getDefaultInstance().getDiagnosticText();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>string diagnostic_text = 7;</code>
       * @param value The bytes for diagnosticText to set.
       * @return This builder for chaining.
       */
      public Builder setDiagnosticTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        diagnosticText_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxStatusProxy)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxStatusProxy)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxStatusProxy>
        PARSER = new com.google.protobuf.AbstractParser<MxStatusProxy>() {
      @java.lang.Override
      public MxStatusProxy 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<MxStatusProxy> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxStatusProxy getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The enum numeric value on the wire for dataType.
     */
    int getDataTypeValue();
    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The dataType.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxDataType getDataType();

    /**
     * <code>string variant_type = 2;</code>
     * @return The variantType.
     */
    java.lang.String getVariantType();
    /**
     * <code>string variant_type = 2;</code>
     * @return The bytes for variantType.
     */
    com.google.protobuf.ByteString
        getVariantTypeBytes();

    /**
     * <code>bool is_null = 3;</code>
     * @return The isNull.
     */
    boolean getIsNull();

    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The rawDiagnostic.
     */
    java.lang.String getRawDiagnostic();
    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The bytes for rawDiagnostic.
     */
    com.google.protobuf.ByteString
        getRawDiagnosticBytes();

    /**
     * <code>int32 raw_data_type = 5;</code>
     * @return The rawDataType.
     */
    int getRawDataType();

    /**
     * <code>bool bool_value = 10;</code>
     * @return Whether the boolValue field is set.
     */
    boolean hasBoolValue();
    /**
     * <code>bool bool_value = 10;</code>
     * @return The boolValue.
     */
    boolean getBoolValue();

    /**
     * <code>int32 int32_value = 11;</code>
     * @return Whether the int32Value field is set.
     */
    boolean hasInt32Value();
    /**
     * <code>int32 int32_value = 11;</code>
     * @return The int32Value.
     */
    int getInt32Value();

    /**
     * <code>int64 int64_value = 12;</code>
     * @return Whether the int64Value field is set.
     */
    boolean hasInt64Value();
    /**
     * <code>int64 int64_value = 12;</code>
     * @return The int64Value.
     */
    long getInt64Value();

    /**
     * <code>float float_value = 13;</code>
     * @return Whether the floatValue field is set.
     */
    boolean hasFloatValue();
    /**
     * <code>float float_value = 13;</code>
     * @return The floatValue.
     */
    float getFloatValue();

    /**
     * <code>double double_value = 14;</code>
     * @return Whether the doubleValue field is set.
     */
    boolean hasDoubleValue();
    /**
     * <code>double double_value = 14;</code>
     * @return The doubleValue.
     */
    double getDoubleValue();

    /**
     * <code>string string_value = 15;</code>
     * @return Whether the stringValue field is set.
     */
    boolean hasStringValue();
    /**
     * <code>string string_value = 15;</code>
     * @return The stringValue.
     */
    java.lang.String getStringValue();
    /**
     * <code>string string_value = 15;</code>
     * @return The bytes for stringValue.
     */
    com.google.protobuf.ByteString
        getStringValueBytes();

    /**
     * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
     * @return Whether the timestampValue field is set.
     */
    boolean hasTimestampValue();
    /**
     * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
     * @return The timestampValue.
     */
    com.google.protobuf.Timestamp getTimestampValue();
    /**
     * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
     */
    com.google.protobuf.TimestampOrBuilder getTimestampValueOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
     * @return Whether the arrayValue field is set.
     */
    boolean hasArrayValue();
    /**
     * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
     * @return The arrayValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxArray getArrayValue();
    /**
     * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getArrayValueOrBuilder();

    /**
     * <code>bytes raw_value = 18;</code>
     * @return Whether the rawValue field is set.
     */
    boolean hasRawValue();
    /**
     * <code>bytes raw_value = 18;</code>
     * @return The rawValue.
     */
    com.google.protobuf.ByteString getRawValue();

    /**
     * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
     * @return Whether the sparseArrayValue field is set.
     */
    boolean hasSparseArrayValue();
    /**
     * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
     * @return The sparseArrayValue.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxSparseArray getSparseArrayValue();
    /**
     * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxSparseArrayOrBuilder getSparseArrayValueOrBuilder();

    mxaccess_gateway.v1.MxaccessGateway.MxValue.KindCase getKindCase();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxValue}
   */
  public static final class MxValue extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxValue)
      MxValueOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxValue");
    }
    // Use MxValue.newBuilder() to construct.
    private MxValue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxValue() {
      dataType_ = 0;
      variantType_ = "";
      rawDiagnostic_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxValue.class, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder.class);
    }

    private int kindCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object kind_;
    public enum KindCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      BOOL_VALUE(10),
      INT32_VALUE(11),
      INT64_VALUE(12),
      FLOAT_VALUE(13),
      DOUBLE_VALUE(14),
      STRING_VALUE(15),
      TIMESTAMP_VALUE(16),
      ARRAY_VALUE(17),
      RAW_VALUE(18),
      SPARSE_ARRAY_VALUE(19),
      KIND_NOT_SET(0);
      private final int value;
      private KindCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static KindCase valueOf(int value) {
        return forNumber(value);
      }

      public static KindCase forNumber(int value) {
        switch (value) {
          case 10: return BOOL_VALUE;
          case 11: return INT32_VALUE;
          case 12: return INT64_VALUE;
          case 13: return FLOAT_VALUE;
          case 14: return DOUBLE_VALUE;
          case 15: return STRING_VALUE;
          case 16: return TIMESTAMP_VALUE;
          case 17: return ARRAY_VALUE;
          case 18: return RAW_VALUE;
          case 19: return SPARSE_ARRAY_VALUE;
          case 0: return KIND_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public KindCase
    getKindCase() {
      return KindCase.forNumber(
          kindCase_);
    }

    public static final int DATA_TYPE_FIELD_NUMBER = 1;
    private int dataType_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The enum numeric value on the wire for dataType.
     */
    @java.lang.Override public int getDataTypeValue() {
      return dataType_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
     * @return The dataType.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxDataType getDataType() {
      mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(dataType_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
    }

    public static final int VARIANT_TYPE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object variantType_ = "";
    /**
     * <code>string variant_type = 2;</code>
     * @return The variantType.
     */
    @java.lang.Override
    public java.lang.String getVariantType() {
      java.lang.Object ref = variantType_;
      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();
        variantType_ = s;
        return s;
      }
    }
    /**
     * <code>string variant_type = 2;</code>
     * @return The bytes for variantType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVariantTypeBytes() {
      java.lang.Object ref = variantType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        variantType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS_NULL_FIELD_NUMBER = 3;
    private boolean isNull_ = false;
    /**
     * <code>bool is_null = 3;</code>
     * @return The isNull.
     */
    @java.lang.Override
    public boolean getIsNull() {
      return isNull_;
    }

    public static final int RAW_DIAGNOSTIC_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rawDiagnostic_ = "";
    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The rawDiagnostic.
     */
    @java.lang.Override
    public java.lang.String getRawDiagnostic() {
      java.lang.Object ref = rawDiagnostic_;
      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();
        rawDiagnostic_ = s;
        return s;
      }
    }
    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The bytes for rawDiagnostic.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRawDiagnosticBytes() {
      java.lang.Object ref = rawDiagnostic_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rawDiagnostic_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RAW_DATA_TYPE_FIELD_NUMBER = 5;
    private int rawDataType_ = 0;
    /**
     * <code>int32 raw_data_type = 5;</code>
     * @return The rawDataType.
     */
    @java.lang.Override
    public int getRawDataType() {
      return rawDataType_;
    }

    public static final int BOOL_VALUE_FIELD_NUMBER = 10;
    /**
     * <code>bool bool_value = 10;</code>
     * @return Whether the boolValue field is set.
     */
    @java.lang.Override
    public boolean hasBoolValue() {
      return kindCase_ == 10;
    }
    /**
     * <code>bool bool_value = 10;</code>
     * @return The boolValue.
     */
    @java.lang.Override
    public boolean getBoolValue() {
      if (kindCase_ == 10) {
        return (java.lang.Boolean) kind_;
      }
      return false;
    }

    public static final int INT32_VALUE_FIELD_NUMBER = 11;
    /**
     * <code>int32 int32_value = 11;</code>
     * @return Whether the int32Value field is set.
     */
    @java.lang.Override
    public boolean hasInt32Value() {
      return kindCase_ == 11;
    }
    /**
     * <code>int32 int32_value = 11;</code>
     * @return The int32Value.
     */
    @java.lang.Override
    public int getInt32Value() {
      if (kindCase_ == 11) {
        return (java.lang.Integer) kind_;
      }
      return 0;
    }

    public static final int INT64_VALUE_FIELD_NUMBER = 12;
    /**
     * <code>int64 int64_value = 12;</code>
     * @return Whether the int64Value field is set.
     */
    @java.lang.Override
    public boolean hasInt64Value() {
      return kindCase_ == 12;
    }
    /**
     * <code>int64 int64_value = 12;</code>
     * @return The int64Value.
     */
    @java.lang.Override
    public long getInt64Value() {
      if (kindCase_ == 12) {
        return (java.lang.Long) kind_;
      }
      return 0L;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 13;
    /**
     * <code>float float_value = 13;</code>
     * @return Whether the floatValue field is set.
     */
    @java.lang.Override
    public boolean hasFloatValue() {
      return kindCase_ == 13;
    }
    /**
     * <code>float float_value = 13;</code>
     * @return The floatValue.
     */
    @java.lang.Override
    public float getFloatValue() {
      if (kindCase_ == 13) {
        return (java.lang.Float) kind_;
      }
      return 0F;
    }

    public static final int DOUBLE_VALUE_FIELD_NUMBER = 14;
    /**
     * <code>double double_value = 14;</code>
     * @return Whether the doubleValue field is set.
     */
    @java.lang.Override
    public boolean hasDoubleValue() {
      return kindCase_ == 14;
    }
    /**
     * <code>double double_value = 14;</code>
     * @return The doubleValue.
     */
    @java.lang.Override
    public double getDoubleValue() {
      if (kindCase_ == 14) {
        return (java.lang.Double) kind_;
      }
      return 0D;
    }

    public static final int STRING_VALUE_FIELD_NUMBER = 15;
    /**
     * <code>string string_value = 15;</code>
     * @return Whether the stringValue field is set.
     */
    public boolean hasStringValue() {
      return kindCase_ == 15;
    }
    /**
     * <code>string string_value = 15;</code>
     * @return The stringValue.
     */
    public java.lang.String getStringValue() {
      java.lang.Object ref = "";
      if (kindCase_ == 15) {
        ref = kind_;
      }
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (kindCase_ == 15) {
          kind_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string string_value = 15;</code>
     * @return The bytes for stringValue.
     */
    public com.google.protobuf.ByteString
        getStringValueBytes() {
      java.lang.Object ref = "";
      if (kindCase_ == 15) {
        ref = kind_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (kindCase_ == 15) {
          kind_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMESTAMP_VALUE_FIELD_NUMBER = 16;
    /**
     * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
     * @return Whether the timestampValue field is set.
     */
    @java.lang.Override
    public boolean hasTimestampValue() {
      return kindCase_ == 16;
    }
    /**
     * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
     * @return The timestampValue.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getTimestampValue() {
      if (kindCase_ == 16) {
         return (com.google.protobuf.Timestamp) kind_;
      }
      return com.google.protobuf.Timestamp.getDefaultInstance();
    }
    /**
     * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getTimestampValueOrBuilder() {
      if (kindCase_ == 16) {
         return (com.google.protobuf.Timestamp) kind_;
      }
      return com.google.protobuf.Timestamp.getDefaultInstance();
    }

    public static final int ARRAY_VALUE_FIELD_NUMBER = 17;
    /**
     * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
     * @return Whether the arrayValue field is set.
     */
    @java.lang.Override
    public boolean hasArrayValue() {
      return kindCase_ == 17;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
     * @return The arrayValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxArray getArrayValue() {
      if (kindCase_ == 17) {
         return (mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getArrayValueOrBuilder() {
      if (kindCase_ == 17) {
         return (mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance();
    }

    public static final int RAW_VALUE_FIELD_NUMBER = 18;
    /**
     * <code>bytes raw_value = 18;</code>
     * @return Whether the rawValue field is set.
     */
    @java.lang.Override
    public boolean hasRawValue() {
      return kindCase_ == 18;
    }
    /**
     * <code>bytes raw_value = 18;</code>
     * @return The rawValue.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getRawValue() {
      if (kindCase_ == 18) {
        return (com.google.protobuf.ByteString) kind_;
      }
      return com.google.protobuf.ByteString.EMPTY;
    }

    public static final int SPARSE_ARRAY_VALUE_FIELD_NUMBER = 19;
    /**
     * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
     * @return Whether the sparseArrayValue field is set.
     */
    @java.lang.Override
    public boolean hasSparseArrayValue() {
      return kindCase_ == 19;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
     * @return The sparseArrayValue.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxSparseArray getSparseArrayValue() {
      if (kindCase_ == 19) {
         return (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxSparseArrayOrBuilder getSparseArrayValueOrBuilder() {
      if (kindCase_ == 19) {
         return (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance();
    }

    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 (dataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, dataType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(variantType_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, variantType_);
      }
      if (isNull_ != false) {
        output.writeBool(3, isNull_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(rawDiagnostic_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, rawDiagnostic_);
      }
      if (rawDataType_ != 0) {
        output.writeInt32(5, rawDataType_);
      }
      if (kindCase_ == 10) {
        output.writeBool(
            10, (boolean)((java.lang.Boolean) kind_));
      }
      if (kindCase_ == 11) {
        output.writeInt32(
            11, (int)((java.lang.Integer) kind_));
      }
      if (kindCase_ == 12) {
        output.writeInt64(
            12, (long)((java.lang.Long) kind_));
      }
      if (kindCase_ == 13) {
        output.writeFloat(
            13, (float)((java.lang.Float) kind_));
      }
      if (kindCase_ == 14) {
        output.writeDouble(
            14, (double)((java.lang.Double) kind_));
      }
      if (kindCase_ == 15) {
        com.google.protobuf.GeneratedMessage.writeString(output, 15, kind_);
      }
      if (kindCase_ == 16) {
        output.writeMessage(16, (com.google.protobuf.Timestamp) kind_);
      }
      if (kindCase_ == 17) {
        output.writeMessage(17, (mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_);
      }
      if (kindCase_ == 18) {
        output.writeBytes(
            18, (com.google.protobuf.ByteString) kind_);
      }
      if (kindCase_ == 19) {
        output.writeMessage(19, (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (dataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, dataType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(variantType_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, variantType_);
      }
      if (isNull_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isNull_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(rawDiagnostic_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, rawDiagnostic_);
      }
      if (rawDataType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, rawDataType_);
      }
      if (kindCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              10, (boolean)((java.lang.Boolean) kind_));
      }
      if (kindCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(
              11, (int)((java.lang.Integer) kind_));
      }
      if (kindCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(
              12, (long)((java.lang.Long) kind_));
      }
      if (kindCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              13, (float)((java.lang.Float) kind_));
      }
      if (kindCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(
              14, (double)((java.lang.Double) kind_));
      }
      if (kindCase_ == 15) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(15, kind_);
      }
      if (kindCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (com.google.protobuf.Timestamp) kind_);
      }
      if (kindCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_);
      }
      if (kindCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(
              18, (com.google.protobuf.ByteString) kind_);
      }
      if (kindCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxValue)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxValue other = (mxaccess_gateway.v1.MxaccessGateway.MxValue) obj;

      if (dataType_ != other.dataType_) return false;
      if (!getVariantType()
          .equals(other.getVariantType())) return false;
      if (getIsNull()
          != other.getIsNull()) return false;
      if (!getRawDiagnostic()
          .equals(other.getRawDiagnostic())) return false;
      if (getRawDataType()
          != other.getRawDataType()) return false;
      if (!getKindCase().equals(other.getKindCase())) return false;
      switch (kindCase_) {
        case 10:
          if (getBoolValue()
              != other.getBoolValue()) return false;
          break;
        case 11:
          if (getInt32Value()
              != other.getInt32Value()) return false;
          break;
        case 12:
          if (getInt64Value()
              != other.getInt64Value()) return false;
          break;
        case 13:
          if (java.lang.Float.floatToIntBits(getFloatValue())
              != java.lang.Float.floatToIntBits(
                  other.getFloatValue())) return false;
          break;
        case 14:
          if (java.lang.Double.doubleToLongBits(getDoubleValue())
              != java.lang.Double.doubleToLongBits(
                  other.getDoubleValue())) return false;
          break;
        case 15:
          if (!getStringValue()
              .equals(other.getStringValue())) return false;
          break;
        case 16:
          if (!getTimestampValue()
              .equals(other.getTimestampValue())) return false;
          break;
        case 17:
          if (!getArrayValue()
              .equals(other.getArrayValue())) return false;
          break;
        case 18:
          if (!getRawValue()
              .equals(other.getRawValue())) return false;
          break;
        case 19:
          if (!getSparseArrayValue()
              .equals(other.getSparseArrayValue())) return false;
          break;
        case 0:
        default:
      }
      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();
      hash = (37 * hash) + DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + dataType_;
      hash = (37 * hash) + VARIANT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getVariantType().hashCode();
      hash = (37 * hash) + IS_NULL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsNull());
      hash = (37 * hash) + RAW_DIAGNOSTIC_FIELD_NUMBER;
      hash = (53 * hash) + getRawDiagnostic().hashCode();
      hash = (37 * hash) + RAW_DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRawDataType();
      switch (kindCase_) {
        case 10:
          hash = (37 * hash) + BOOL_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getBoolValue());
          break;
        case 11:
          hash = (37 * hash) + INT32_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getInt32Value();
          break;
        case 12:
          hash = (37 * hash) + INT64_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getInt64Value());
          break;
        case 13:
          hash = (37 * hash) + FLOAT_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getFloatValue());
          break;
        case 14:
          hash = (37 * hash) + DOUBLE_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              java.lang.Double.doubleToLongBits(getDoubleValue()));
          break;
        case 15:
          hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStringValue().hashCode();
          break;
        case 16:
          hash = (37 * hash) + TIMESTAMP_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getTimestampValue().hashCode();
          break;
        case 17:
          hash = (37 * hash) + ARRAY_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getArrayValue().hashCode();
          break;
        case 18:
          hash = (37 * hash) + RAW_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getRawValue().hashCode();
          break;
        case 19:
          hash = (37 * hash) + SPARSE_ARRAY_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getSparseArrayValue().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue 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 mxaccess_gateway.v1.MxaccessGateway.MxValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxValue 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 mxaccess_gateway.v1.MxaccessGateway.MxValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxValue 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(mxaccess_gateway.v1.MxaccessGateway.MxValue 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 mxaccess_gateway.v1.MxValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxValue)
        mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxValue.class, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxValue.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        dataType_ = 0;
        variantType_ = "";
        isNull_ = false;
        rawDiagnostic_ = "";
        rawDataType_ = 0;
        if (timestampValueBuilder_ != null) {
          timestampValueBuilder_.clear();
        }
        if (arrayValueBuilder_ != null) {
          arrayValueBuilder_.clear();
        }
        if (sparseArrayValueBuilder_ != null) {
          sparseArrayValueBuilder_.clear();
        }
        kindCase_ = 0;
        kind_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxValue_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxValue build() {
        mxaccess_gateway.v1.MxaccessGateway.MxValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxValue buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxValue result = new mxaccess_gateway.v1.MxaccessGateway.MxValue(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxValue result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.dataType_ = dataType_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.variantType_ = variantType_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.isNull_ = isNull_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.rawDiagnostic_ = rawDiagnostic_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.rawDataType_ = rawDataType_;
        }
      }

      private void buildPartialOneofs(mxaccess_gateway.v1.MxaccessGateway.MxValue result) {
        result.kindCase_ = kindCase_;
        result.kind_ = this.kind_;
        if (kindCase_ == 16 &&
            timestampValueBuilder_ != null) {
          result.kind_ = timestampValueBuilder_.build();
        }
        if (kindCase_ == 17 &&
            arrayValueBuilder_ != null) {
          result.kind_ = arrayValueBuilder_.build();
        }
        if (kindCase_ == 19 &&
            sparseArrayValueBuilder_ != null) {
          result.kind_ = sparseArrayValueBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxValue) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxValue other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) return this;
        if (other.dataType_ != 0) {
          setDataTypeValue(other.getDataTypeValue());
        }
        if (!other.getVariantType().isEmpty()) {
          variantType_ = other.variantType_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getIsNull() != false) {
          setIsNull(other.getIsNull());
        }
        if (!other.getRawDiagnostic().isEmpty()) {
          rawDiagnostic_ = other.rawDiagnostic_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.getRawDataType() != 0) {
          setRawDataType(other.getRawDataType());
        }
        switch (other.getKindCase()) {
          case BOOL_VALUE: {
            setBoolValue(other.getBoolValue());
            break;
          }
          case INT32_VALUE: {
            setInt32Value(other.getInt32Value());
            break;
          }
          case INT64_VALUE: {
            setInt64Value(other.getInt64Value());
            break;
          }
          case FLOAT_VALUE: {
            setFloatValue(other.getFloatValue());
            break;
          }
          case DOUBLE_VALUE: {
            setDoubleValue(other.getDoubleValue());
            break;
          }
          case STRING_VALUE: {
            kindCase_ = 15;
            kind_ = other.kind_;
            onChanged();
            break;
          }
          case TIMESTAMP_VALUE: {
            mergeTimestampValue(other.getTimestampValue());
            break;
          }
          case ARRAY_VALUE: {
            mergeArrayValue(other.getArrayValue());
            break;
          }
          case RAW_VALUE: {
            setRawValue(other.getRawValue());
            break;
          }
          case SPARSE_ARRAY_VALUE: {
            mergeSparseArrayValue(other.getSparseArrayValue());
            break;
          }
          case KIND_NOT_SET: {
            break;
          }
        }
        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 8: {
                dataType_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                variantType_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                isNull_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                rawDiagnostic_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                rawDataType_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 80: {
                kind_ = input.readBool();
                kindCase_ = 10;
                break;
              } // case 80
              case 88: {
                kind_ = input.readInt32();
                kindCase_ = 11;
                break;
              } // case 88
              case 96: {
                kind_ = input.readInt64();
                kindCase_ = 12;
                break;
              } // case 96
              case 109: {
                kind_ = input.readFloat();
                kindCase_ = 13;
                break;
              } // case 109
              case 113: {
                kind_ = input.readDouble();
                kindCase_ = 14;
                break;
              } // case 113
              case 122: {
                java.lang.String s = input.readStringRequireUtf8();
                kindCase_ = 15;
                kind_ = s;
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    internalGetTimestampValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                kindCase_ = 16;
                break;
              } // case 130
              case 138: {
                input.readMessage(
                    internalGetArrayValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                kindCase_ = 17;
                break;
              } // case 138
              case 146: {
                kind_ = input.readBytes();
                kindCase_ = 18;
                break;
              } // case 146
              case 154: {
                input.readMessage(
                    internalGetSparseArrayValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                kindCase_ = 19;
                break;
              } // case 154
              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 kindCase_ = 0;
      private java.lang.Object kind_;
      public KindCase
          getKindCase() {
        return KindCase.forNumber(
            kindCase_);
      }

      public Builder clearKind() {
        kindCase_ = 0;
        kind_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int dataType_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @return The enum numeric value on the wire for dataType.
       */
      @java.lang.Override public int getDataTypeValue() {
        return dataType_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @param value The enum numeric value on the wire for dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataTypeValue(int value) {
        dataType_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @return The dataType.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxDataType getDataType() {
        mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(dataType_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @param value The dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataType(mxaccess_gateway.v1.MxaccessGateway.MxDataType value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        dataType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType data_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        dataType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object variantType_ = "";
      /**
       * <code>string variant_type = 2;</code>
       * @return The variantType.
       */
      public java.lang.String getVariantType() {
        java.lang.Object ref = variantType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          variantType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string variant_type = 2;</code>
       * @return The bytes for variantType.
       */
      public com.google.protobuf.ByteString
          getVariantTypeBytes() {
        java.lang.Object ref = variantType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          variantType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string variant_type = 2;</code>
       * @param value The variantType to set.
       * @return This builder for chaining.
       */
      public Builder setVariantType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        variantType_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string variant_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearVariantType() {
        variantType_ = getDefaultInstance().getVariantType();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string variant_type = 2;</code>
       * @param value The bytes for variantType to set.
       * @return This builder for chaining.
       */
      public Builder setVariantTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        variantType_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean isNull_ ;
      /**
       * <code>bool is_null = 3;</code>
       * @return The isNull.
       */
      @java.lang.Override
      public boolean getIsNull() {
        return isNull_;
      }
      /**
       * <code>bool is_null = 3;</code>
       * @param value The isNull to set.
       * @return This builder for chaining.
       */
      public Builder setIsNull(boolean value) {

        isNull_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_null = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsNull() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isNull_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object rawDiagnostic_ = "";
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @return The rawDiagnostic.
       */
      public java.lang.String getRawDiagnostic() {
        java.lang.Object ref = rawDiagnostic_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          rawDiagnostic_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @return The bytes for rawDiagnostic.
       */
      public com.google.protobuf.ByteString
          getRawDiagnosticBytes() {
        java.lang.Object ref = rawDiagnostic_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rawDiagnostic_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @param value The rawDiagnostic to set.
       * @return This builder for chaining.
       */
      public Builder setRawDiagnostic(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rawDiagnostic_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawDiagnostic() {
        rawDiagnostic_ = getDefaultInstance().getRawDiagnostic();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @param value The bytes for rawDiagnostic to set.
       * @return This builder for chaining.
       */
      public Builder setRawDiagnosticBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        rawDiagnostic_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private int rawDataType_ ;
      /**
       * <code>int32 raw_data_type = 5;</code>
       * @return The rawDataType.
       */
      @java.lang.Override
      public int getRawDataType() {
        return rawDataType_;
      }
      /**
       * <code>int32 raw_data_type = 5;</code>
       * @param value The rawDataType to set.
       * @return This builder for chaining.
       */
      public Builder setRawDataType(int value) {

        rawDataType_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 raw_data_type = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawDataType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        rawDataType_ = 0;
        onChanged();
        return this;
      }

      /**
       * <code>bool bool_value = 10;</code>
       * @return Whether the boolValue field is set.
       */
      public boolean hasBoolValue() {
        return kindCase_ == 10;
      }
      /**
       * <code>bool bool_value = 10;</code>
       * @return The boolValue.
       */
      public boolean getBoolValue() {
        if (kindCase_ == 10) {
          return (java.lang.Boolean) kind_;
        }
        return false;
      }
      /**
       * <code>bool bool_value = 10;</code>
       * @param value The boolValue to set.
       * @return This builder for chaining.
       */
      public Builder setBoolValue(boolean value) {

        kindCase_ = 10;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool bool_value = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearBoolValue() {
        if (kindCase_ == 10) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int32 int32_value = 11;</code>
       * @return Whether the int32Value field is set.
       */
      public boolean hasInt32Value() {
        return kindCase_ == 11;
      }
      /**
       * <code>int32 int32_value = 11;</code>
       * @return The int32Value.
       */
      public int getInt32Value() {
        if (kindCase_ == 11) {
          return (java.lang.Integer) kind_;
        }
        return 0;
      }
      /**
       * <code>int32 int32_value = 11;</code>
       * @param value The int32Value to set.
       * @return This builder for chaining.
       */
      public Builder setInt32Value(int value) {

        kindCase_ = 11;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 int32_value = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearInt32Value() {
        if (kindCase_ == 11) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>int64 int64_value = 12;</code>
       * @return Whether the int64Value field is set.
       */
      public boolean hasInt64Value() {
        return kindCase_ == 12;
      }
      /**
       * <code>int64 int64_value = 12;</code>
       * @return The int64Value.
       */
      public long getInt64Value() {
        if (kindCase_ == 12) {
          return (java.lang.Long) kind_;
        }
        return 0L;
      }
      /**
       * <code>int64 int64_value = 12;</code>
       * @param value The int64Value to set.
       * @return This builder for chaining.
       */
      public Builder setInt64Value(long value) {

        kindCase_ = 12;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 int64_value = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearInt64Value() {
        if (kindCase_ == 12) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>float float_value = 13;</code>
       * @return Whether the floatValue field is set.
       */
      public boolean hasFloatValue() {
        return kindCase_ == 13;
      }
      /**
       * <code>float float_value = 13;</code>
       * @return The floatValue.
       */
      public float getFloatValue() {
        if (kindCase_ == 13) {
          return (java.lang.Float) kind_;
        }
        return 0F;
      }
      /**
       * <code>float float_value = 13;</code>
       * @param value The floatValue to set.
       * @return This builder for chaining.
       */
      public Builder setFloatValue(float value) {

        kindCase_ = 13;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>float float_value = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearFloatValue() {
        if (kindCase_ == 13) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>double double_value = 14;</code>
       * @return Whether the doubleValue field is set.
       */
      public boolean hasDoubleValue() {
        return kindCase_ == 14;
      }
      /**
       * <code>double double_value = 14;</code>
       * @return The doubleValue.
       */
      public double getDoubleValue() {
        if (kindCase_ == 14) {
          return (java.lang.Double) kind_;
        }
        return 0D;
      }
      /**
       * <code>double double_value = 14;</code>
       * @param value The doubleValue to set.
       * @return This builder for chaining.
       */
      public Builder setDoubleValue(double value) {

        kindCase_ = 14;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>double double_value = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearDoubleValue() {
        if (kindCase_ == 14) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>string string_value = 15;</code>
       * @return Whether the stringValue field is set.
       */
      @java.lang.Override
      public boolean hasStringValue() {
        return kindCase_ == 15;
      }
      /**
       * <code>string string_value = 15;</code>
       * @return The stringValue.
       */
      @java.lang.Override
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (kindCase_ == 15) {
          ref = kind_;
        }
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (kindCase_ == 15) {
            kind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string string_value = 15;</code>
       * @return The bytes for stringValue.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (kindCase_ == 15) {
          ref = kind_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (kindCase_ == 15) {
            kind_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string string_value = 15;</code>
       * @param value The stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValue(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        kindCase_ = 15;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string string_value = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearStringValue() {
        if (kindCase_ == 15) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string string_value = 15;</code>
       * @param value The bytes for stringValue to set.
       * @return This builder for chaining.
       */
      public Builder setStringValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        kindCase_ = 15;
        kind_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> timestampValueBuilder_;
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       * @return Whether the timestampValue field is set.
       */
      @java.lang.Override
      public boolean hasTimestampValue() {
        return kindCase_ == 16;
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       * @return The timestampValue.
       */
      @java.lang.Override
      public com.google.protobuf.Timestamp getTimestampValue() {
        if (timestampValueBuilder_ == null) {
          if (kindCase_ == 16) {
            return (com.google.protobuf.Timestamp) kind_;
          }
          return com.google.protobuf.Timestamp.getDefaultInstance();
        } else {
          if (kindCase_ == 16) {
            return timestampValueBuilder_.getMessage();
          }
          return com.google.protobuf.Timestamp.getDefaultInstance();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       */
      public Builder setTimestampValue(com.google.protobuf.Timestamp value) {
        if (timestampValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          timestampValueBuilder_.setMessage(value);
        }
        kindCase_ = 16;
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       */
      public Builder setTimestampValue(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (timestampValueBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          timestampValueBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 16;
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       */
      public Builder mergeTimestampValue(com.google.protobuf.Timestamp value) {
        if (timestampValueBuilder_ == null) {
          if (kindCase_ == 16 &&
              kind_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            kind_ = com.google.protobuf.Timestamp.newBuilder((com.google.protobuf.Timestamp) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 16) {
            timestampValueBuilder_.mergeFrom(value);
          } else {
            timestampValueBuilder_.setMessage(value);
          }
        }
        kindCase_ = 16;
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       */
      public Builder clearTimestampValue() {
        if (timestampValueBuilder_ == null) {
          if (kindCase_ == 16) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 16) {
            kindCase_ = 0;
            kind_ = null;
          }
          timestampValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       */
      public com.google.protobuf.Timestamp.Builder getTimestampValueBuilder() {
        return internalGetTimestampValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       */
      @java.lang.Override
      public com.google.protobuf.TimestampOrBuilder getTimestampValueOrBuilder() {
        if ((kindCase_ == 16) && (timestampValueBuilder_ != null)) {
          return timestampValueBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 16) {
            return (com.google.protobuf.Timestamp) kind_;
          }
          return com.google.protobuf.Timestamp.getDefaultInstance();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp timestamp_value = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetTimestampValueFieldBuilder() {
        if (timestampValueBuilder_ == null) {
          if (!(kindCase_ == 16)) {
            kind_ = com.google.protobuf.Timestamp.getDefaultInstance();
          }
          timestampValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  (com.google.protobuf.Timestamp) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 16;
        onChanged();
        return timestampValueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder> arrayValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       * @return Whether the arrayValue field is set.
       */
      @java.lang.Override
      public boolean hasArrayValue() {
        return kindCase_ == 17;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       * @return The arrayValue.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxArray getArrayValue() {
        if (arrayValueBuilder_ == null) {
          if (kindCase_ == 17) {
            return (mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance();
        } else {
          if (kindCase_ == 17) {
            return arrayValueBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       */
      public Builder setArrayValue(mxaccess_gateway.v1.MxaccessGateway.MxArray value) {
        if (arrayValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          arrayValueBuilder_.setMessage(value);
        }
        kindCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       */
      public Builder setArrayValue(
          mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder builderForValue) {
        if (arrayValueBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          arrayValueBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       */
      public Builder mergeArrayValue(mxaccess_gateway.v1.MxaccessGateway.MxArray value) {
        if (arrayValueBuilder_ == null) {
          if (kindCase_ == 17 &&
              kind_ != mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance()) {
            kind_ = mxaccess_gateway.v1.MxaccessGateway.MxArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 17) {
            arrayValueBuilder_.mergeFrom(value);
          } else {
            arrayValueBuilder_.setMessage(value);
          }
        }
        kindCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       */
      public Builder clearArrayValue() {
        if (arrayValueBuilder_ == null) {
          if (kindCase_ == 17) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 17) {
            kindCase_ = 0;
            kind_ = null;
          }
          arrayValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder getArrayValueBuilder() {
        return internalGetArrayValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder getArrayValueOrBuilder() {
        if ((kindCase_ == 17) && (arrayValueBuilder_ != null)) {
          return arrayValueBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 17) {
            return (mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxArray array_value = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder> 
          internalGetArrayValueFieldBuilder() {
        if (arrayValueBuilder_ == null) {
          if (!(kindCase_ == 17)) {
            kind_ = mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance();
          }
          arrayValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxArray, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.MxArray) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 17;
        onChanged();
        return arrayValueBuilder_;
      }

      /**
       * <code>bytes raw_value = 18;</code>
       * @return Whether the rawValue field is set.
       */
      public boolean hasRawValue() {
        return kindCase_ == 18;
      }
      /**
       * <code>bytes raw_value = 18;</code>
       * @return The rawValue.
       */
      public com.google.protobuf.ByteString getRawValue() {
        if (kindCase_ == 18) {
          return (com.google.protobuf.ByteString) kind_;
        }
        return com.google.protobuf.ByteString.EMPTY;
      }
      /**
       * <code>bytes raw_value = 18;</code>
       * @param value The rawValue to set.
       * @return This builder for chaining.
       */
      public Builder setRawValue(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        kindCase_ = 18;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes raw_value = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawValue() {
        if (kindCase_ == 18) {
          kindCase_ = 0;
          kind_ = null;
          onChanged();
        }
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxSparseArray, mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxSparseArrayOrBuilder> sparseArrayValueBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       * @return Whether the sparseArrayValue field is set.
       */
      @java.lang.Override
      public boolean hasSparseArrayValue() {
        return kindCase_ == 19;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       * @return The sparseArrayValue.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseArray getSparseArrayValue() {
        if (sparseArrayValueBuilder_ == null) {
          if (kindCase_ == 19) {
            return (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance();
        } else {
          if (kindCase_ == 19) {
            return sparseArrayValueBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       */
      public Builder setSparseArrayValue(mxaccess_gateway.v1.MxaccessGateway.MxSparseArray value) {
        if (sparseArrayValueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          sparseArrayValueBuilder_.setMessage(value);
        }
        kindCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       */
      public Builder setSparseArrayValue(
          mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.Builder builderForValue) {
        if (sparseArrayValueBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          sparseArrayValueBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       */
      public Builder mergeSparseArrayValue(mxaccess_gateway.v1.MxaccessGateway.MxSparseArray value) {
        if (sparseArrayValueBuilder_ == null) {
          if (kindCase_ == 19 &&
              kind_ != mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance()) {
            kind_ = mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 19) {
            sparseArrayValueBuilder_.mergeFrom(value);
          } else {
            sparseArrayValueBuilder_.setMessage(value);
          }
        }
        kindCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       */
      public Builder clearSparseArrayValue() {
        if (sparseArrayValueBuilder_ == null) {
          if (kindCase_ == 19) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 19) {
            kindCase_ = 0;
            kind_ = null;
          }
          sparseArrayValueBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.Builder getSparseArrayValueBuilder() {
        return internalGetSparseArrayValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseArrayOrBuilder getSparseArrayValueOrBuilder() {
        if ((kindCase_ == 19) && (sparseArrayValueBuilder_ != null)) {
          return sparseArrayValueBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 19) {
            return (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxSparseArray sparse_array_value = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxSparseArray, mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxSparseArrayOrBuilder> 
          internalGetSparseArrayValueFieldBuilder() {
        if (sparseArrayValueBuilder_ == null) {
          if (!(kindCase_ == 19)) {
            kind_ = mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance();
          }
          sparseArrayValueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxSparseArray, mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.Builder, mxaccess_gateway.v1.MxaccessGateway.MxSparseArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 19;
        onChanged();
        return sparseArrayValueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxValue)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxValue)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxValue();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxValue>
        PARSER = new com.google.protobuf.AbstractParser<MxValue>() {
      @java.lang.Override
      public MxValue 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<MxValue> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The enum numeric value on the wire for elementDataType.
     */
    int getElementDataTypeValue();
    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The elementDataType.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxDataType getElementDataType();

    /**
     * <code>string variant_type = 2;</code>
     * @return The variantType.
     */
    java.lang.String getVariantType();
    /**
     * <code>string variant_type = 2;</code>
     * @return The bytes for variantType.
     */
    com.google.protobuf.ByteString
        getVariantTypeBytes();

    /**
     * <code>repeated uint32 dimensions = 3;</code>
     * @return A list containing the dimensions.
     */
    java.util.List<java.lang.Integer> getDimensionsList();
    /**
     * <code>repeated uint32 dimensions = 3;</code>
     * @return The count of dimensions.
     */
    int getDimensionsCount();
    /**
     * <code>repeated uint32 dimensions = 3;</code>
     * @param index The index of the element to return.
     * @return The dimensions at the given index.
     */
    int getDimensions(int index);

    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The rawDiagnostic.
     */
    java.lang.String getRawDiagnostic();
    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The bytes for rawDiagnostic.
     */
    com.google.protobuf.ByteString
        getRawDiagnosticBytes();

    /**
     * <code>int32 raw_element_data_type = 5;</code>
     * @return The rawElementDataType.
     */
    int getRawElementDataType();

    /**
     * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
     * @return Whether the boolValues field is set.
     */
    boolean hasBoolValues();
    /**
     * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
     * @return The boolValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.BoolArray getBoolValues();
    /**
     * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.BoolArrayOrBuilder getBoolValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
     * @return Whether the int32Values field is set.
     */
    boolean hasInt32Values();
    /**
     * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
     * @return The int32Values.
     */
    mxaccess_gateway.v1.MxaccessGateway.Int32Array getInt32Values();
    /**
     * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.Int32ArrayOrBuilder getInt32ValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
     * @return Whether the int64Values field is set.
     */
    boolean hasInt64Values();
    /**
     * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
     * @return The int64Values.
     */
    mxaccess_gateway.v1.MxaccessGateway.Int64Array getInt64Values();
    /**
     * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.Int64ArrayOrBuilder getInt64ValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
     * @return Whether the floatValues field is set.
     */
    boolean hasFloatValues();
    /**
     * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
     * @return The floatValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.FloatArray getFloatValues();
    /**
     * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.FloatArrayOrBuilder getFloatValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
     * @return Whether the doubleValues field is set.
     */
    boolean hasDoubleValues();
    /**
     * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
     * @return The doubleValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.DoubleArray getDoubleValues();
    /**
     * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.DoubleArrayOrBuilder getDoubleValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
     * @return Whether the stringValues field is set.
     */
    boolean hasStringValues();
    /**
     * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
     * @return The stringValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.StringArray getStringValues();
    /**
     * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.StringArrayOrBuilder getStringValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
     * @return Whether the timestampValues field is set.
     */
    boolean hasTimestampValues();
    /**
     * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
     * @return The timestampValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.TimestampArray getTimestampValues();
    /**
     * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.TimestampArrayOrBuilder getTimestampValuesOrBuilder();

    /**
     * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
     * @return Whether the rawValues field is set.
     */
    boolean hasRawValues();
    /**
     * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
     * @return The rawValues.
     */
    mxaccess_gateway.v1.MxaccessGateway.RawArray getRawValues();
    /**
     * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.RawArrayOrBuilder getRawValuesOrBuilder();

    mxaccess_gateway.v1.MxaccessGateway.MxArray.ValuesCase getValuesCase();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxArray}
   */
  public static final class MxArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxArray)
      MxArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxArray");
    }
    // Use MxArray.newBuilder() to construct.
    private MxArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxArray() {
      elementDataType_ = 0;
      variantType_ = "";
      dimensions_ = emptyIntList();
      rawDiagnostic_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxArray.class, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder.class);
    }

    private int valuesCase_ = 0;
    @SuppressWarnings("serial")
    private java.lang.Object values_;
    public enum ValuesCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      BOOL_VALUES(10),
      INT32_VALUES(11),
      INT64_VALUES(12),
      FLOAT_VALUES(13),
      DOUBLE_VALUES(14),
      STRING_VALUES(15),
      TIMESTAMP_VALUES(16),
      RAW_VALUES(17),
      VALUES_NOT_SET(0);
      private final int value;
      private ValuesCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValuesCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValuesCase forNumber(int value) {
        switch (value) {
          case 10: return BOOL_VALUES;
          case 11: return INT32_VALUES;
          case 12: return INT64_VALUES;
          case 13: return FLOAT_VALUES;
          case 14: return DOUBLE_VALUES;
          case 15: return STRING_VALUES;
          case 16: return TIMESTAMP_VALUES;
          case 17: return RAW_VALUES;
          case 0: return VALUES_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValuesCase
    getValuesCase() {
      return ValuesCase.forNumber(
          valuesCase_);
    }

    public static final int ELEMENT_DATA_TYPE_FIELD_NUMBER = 1;
    private int elementDataType_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The enum numeric value on the wire for elementDataType.
     */
    @java.lang.Override public int getElementDataTypeValue() {
      return elementDataType_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The elementDataType.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxDataType getElementDataType() {
      mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(elementDataType_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
    }

    public static final int VARIANT_TYPE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object variantType_ = "";
    /**
     * <code>string variant_type = 2;</code>
     * @return The variantType.
     */
    @java.lang.Override
    public java.lang.String getVariantType() {
      java.lang.Object ref = variantType_;
      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();
        variantType_ = s;
        return s;
      }
    }
    /**
     * <code>string variant_type = 2;</code>
     * @return The bytes for variantType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVariantTypeBytes() {
      java.lang.Object ref = variantType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        variantType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DIMENSIONS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList dimensions_ =
        emptyIntList();
    /**
     * <code>repeated uint32 dimensions = 3;</code>
     * @return A list containing the dimensions.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getDimensionsList() {
      return dimensions_;
    }
    /**
     * <code>repeated uint32 dimensions = 3;</code>
     * @return The count of dimensions.
     */
    public int getDimensionsCount() {
      return dimensions_.size();
    }
    /**
     * <code>repeated uint32 dimensions = 3;</code>
     * @param index The index of the element to return.
     * @return The dimensions at the given index.
     */
    public int getDimensions(int index) {
      return dimensions_.getInt(index);
    }
    private int dimensionsMemoizedSerializedSize = -1;

    public static final int RAW_DIAGNOSTIC_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object rawDiagnostic_ = "";
    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The rawDiagnostic.
     */
    @java.lang.Override
    public java.lang.String getRawDiagnostic() {
      java.lang.Object ref = rawDiagnostic_;
      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();
        rawDiagnostic_ = s;
        return s;
      }
    }
    /**
     * <code>string raw_diagnostic = 4;</code>
     * @return The bytes for rawDiagnostic.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRawDiagnosticBytes() {
      java.lang.Object ref = rawDiagnostic_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rawDiagnostic_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RAW_ELEMENT_DATA_TYPE_FIELD_NUMBER = 5;
    private int rawElementDataType_ = 0;
    /**
     * <code>int32 raw_element_data_type = 5;</code>
     * @return The rawElementDataType.
     */
    @java.lang.Override
    public int getRawElementDataType() {
      return rawElementDataType_;
    }

    public static final int BOOL_VALUES_FIELD_NUMBER = 10;
    /**
     * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
     * @return Whether the boolValues field is set.
     */
    @java.lang.Override
    public boolean hasBoolValues() {
      return valuesCase_ == 10;
    }
    /**
     * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
     * @return The boolValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BoolArray getBoolValues() {
      if (valuesCase_ == 10) {
         return (mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BoolArrayOrBuilder getBoolValuesOrBuilder() {
      if (valuesCase_ == 10) {
         return (mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance();
    }

    public static final int INT32_VALUES_FIELD_NUMBER = 11;
    /**
     * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
     * @return Whether the int32Values field is set.
     */
    @java.lang.Override
    public boolean hasInt32Values() {
      return valuesCase_ == 11;
    }
    /**
     * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
     * @return The int32Values.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Int32Array getInt32Values() {
      if (valuesCase_ == 11) {
         return (mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Int32ArrayOrBuilder getInt32ValuesOrBuilder() {
      if (valuesCase_ == 11) {
         return (mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance();
    }

    public static final int INT64_VALUES_FIELD_NUMBER = 12;
    /**
     * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
     * @return Whether the int64Values field is set.
     */
    @java.lang.Override
    public boolean hasInt64Values() {
      return valuesCase_ == 12;
    }
    /**
     * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
     * @return The int64Values.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Int64Array getInt64Values() {
      if (valuesCase_ == 12) {
         return (mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Int64ArrayOrBuilder getInt64ValuesOrBuilder() {
      if (valuesCase_ == 12) {
         return (mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance();
    }

    public static final int FLOAT_VALUES_FIELD_NUMBER = 13;
    /**
     * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
     * @return Whether the floatValues field is set.
     */
    @java.lang.Override
    public boolean hasFloatValues() {
      return valuesCase_ == 13;
    }
    /**
     * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
     * @return The floatValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.FloatArray getFloatValues() {
      if (valuesCase_ == 13) {
         return (mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.FloatArrayOrBuilder getFloatValuesOrBuilder() {
      if (valuesCase_ == 13) {
         return (mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance();
    }

    public static final int DOUBLE_VALUES_FIELD_NUMBER = 14;
    /**
     * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
     * @return Whether the doubleValues field is set.
     */
    @java.lang.Override
    public boolean hasDoubleValues() {
      return valuesCase_ == 14;
    }
    /**
     * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
     * @return The doubleValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DoubleArray getDoubleValues() {
      if (valuesCase_ == 14) {
         return (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DoubleArrayOrBuilder getDoubleValuesOrBuilder() {
      if (valuesCase_ == 14) {
         return (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance();
    }

    public static final int STRING_VALUES_FIELD_NUMBER = 15;
    /**
     * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
     * @return Whether the stringValues field is set.
     */
    @java.lang.Override
    public boolean hasStringValues() {
      return valuesCase_ == 15;
    }
    /**
     * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
     * @return The stringValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.StringArray getStringValues() {
      if (valuesCase_ == 15) {
         return (mxaccess_gateway.v1.MxaccessGateway.StringArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.StringArrayOrBuilder getStringValuesOrBuilder() {
      if (valuesCase_ == 15) {
         return (mxaccess_gateway.v1.MxaccessGateway.StringArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance();
    }

    public static final int TIMESTAMP_VALUES_FIELD_NUMBER = 16;
    /**
     * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
     * @return Whether the timestampValues field is set.
     */
    @java.lang.Override
    public boolean hasTimestampValues() {
      return valuesCase_ == 16;
    }
    /**
     * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
     * @return The timestampValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.TimestampArray getTimestampValues() {
      if (valuesCase_ == 16) {
         return (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.TimestampArrayOrBuilder getTimestampValuesOrBuilder() {
      if (valuesCase_ == 16) {
         return (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance();
    }

    public static final int RAW_VALUES_FIELD_NUMBER = 17;
    /**
     * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
     * @return Whether the rawValues field is set.
     */
    @java.lang.Override
    public boolean hasRawValues() {
      return valuesCase_ == 17;
    }
    /**
     * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
     * @return The rawValues.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RawArray getRawValues() {
      if (valuesCase_ == 17) {
         return (mxaccess_gateway.v1.MxaccessGateway.RawArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RawArrayOrBuilder getRawValuesOrBuilder() {
      if (valuesCase_ == 17) {
         return (mxaccess_gateway.v1.MxaccessGateway.RawArray) values_;
      }
      return mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance();
    }

    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 {
      getSerializedSize();
      if (elementDataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, elementDataType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(variantType_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, variantType_);
      }
      if (getDimensionsList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(dimensionsMemoizedSerializedSize);
      }
      for (int i = 0; i < dimensions_.size(); i++) {
        output.writeUInt32NoTag(dimensions_.getInt(i));
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(rawDiagnostic_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, rawDiagnostic_);
      }
      if (rawElementDataType_ != 0) {
        output.writeInt32(5, rawElementDataType_);
      }
      if (valuesCase_ == 10) {
        output.writeMessage(10, (mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_);
      }
      if (valuesCase_ == 11) {
        output.writeMessage(11, (mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_);
      }
      if (valuesCase_ == 12) {
        output.writeMessage(12, (mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_);
      }
      if (valuesCase_ == 13) {
        output.writeMessage(13, (mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_);
      }
      if (valuesCase_ == 14) {
        output.writeMessage(14, (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_);
      }
      if (valuesCase_ == 15) {
        output.writeMessage(15, (mxaccess_gateway.v1.MxaccessGateway.StringArray) values_);
      }
      if (valuesCase_ == 16) {
        output.writeMessage(16, (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_);
      }
      if (valuesCase_ == 17) {
        output.writeMessage(17, (mxaccess_gateway.v1.MxaccessGateway.RawArray) values_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (elementDataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, elementDataType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(variantType_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, variantType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < dimensions_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(dimensions_.getInt(i));
        }
        size += dataSize;
        if (!getDimensionsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        dimensionsMemoizedSerializedSize = dataSize;
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(rawDiagnostic_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, rawDiagnostic_);
      }
      if (rawElementDataType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, rawElementDataType_);
      }
      if (valuesCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_);
      }
      if (valuesCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_);
      }
      if (valuesCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_);
      }
      if (valuesCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_);
      }
      if (valuesCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_);
      }
      if (valuesCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (mxaccess_gateway.v1.MxaccessGateway.StringArray) values_);
      }
      if (valuesCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_);
      }
      if (valuesCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (mxaccess_gateway.v1.MxaccessGateway.RawArray) values_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxArray other = (mxaccess_gateway.v1.MxaccessGateway.MxArray) obj;

      if (elementDataType_ != other.elementDataType_) return false;
      if (!getVariantType()
          .equals(other.getVariantType())) return false;
      if (!getDimensionsList()
          .equals(other.getDimensionsList())) return false;
      if (!getRawDiagnostic()
          .equals(other.getRawDiagnostic())) return false;
      if (getRawElementDataType()
          != other.getRawElementDataType()) return false;
      if (!getValuesCase().equals(other.getValuesCase())) return false;
      switch (valuesCase_) {
        case 10:
          if (!getBoolValues()
              .equals(other.getBoolValues())) return false;
          break;
        case 11:
          if (!getInt32Values()
              .equals(other.getInt32Values())) return false;
          break;
        case 12:
          if (!getInt64Values()
              .equals(other.getInt64Values())) return false;
          break;
        case 13:
          if (!getFloatValues()
              .equals(other.getFloatValues())) return false;
          break;
        case 14:
          if (!getDoubleValues()
              .equals(other.getDoubleValues())) return false;
          break;
        case 15:
          if (!getStringValues()
              .equals(other.getStringValues())) return false;
          break;
        case 16:
          if (!getTimestampValues()
              .equals(other.getTimestampValues())) return false;
          break;
        case 17:
          if (!getRawValues()
              .equals(other.getRawValues())) return false;
          break;
        case 0:
        default:
      }
      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();
      hash = (37 * hash) + ELEMENT_DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + elementDataType_;
      hash = (37 * hash) + VARIANT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getVariantType().hashCode();
      if (getDimensionsCount() > 0) {
        hash = (37 * hash) + DIMENSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDimensionsList().hashCode();
      }
      hash = (37 * hash) + RAW_DIAGNOSTIC_FIELD_NUMBER;
      hash = (53 * hash) + getRawDiagnostic().hashCode();
      hash = (37 * hash) + RAW_ELEMENT_DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRawElementDataType();
      switch (valuesCase_) {
        case 10:
          hash = (37 * hash) + BOOL_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getBoolValues().hashCode();
          break;
        case 11:
          hash = (37 * hash) + INT32_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getInt32Values().hashCode();
          break;
        case 12:
          hash = (37 * hash) + INT64_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getInt64Values().hashCode();
          break;
        case 13:
          hash = (37 * hash) + FLOAT_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getFloatValues().hashCode();
          break;
        case 14:
          hash = (37 * hash) + DOUBLE_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getDoubleValues().hashCode();
          break;
        case 15:
          hash = (37 * hash) + STRING_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getStringValues().hashCode();
          break;
        case 16:
          hash = (37 * hash) + TIMESTAMP_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getTimestampValues().hashCode();
          break;
        case 17:
          hash = (37 * hash) + RAW_VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getRawValues().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray 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 mxaccess_gateway.v1.MxaccessGateway.MxArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxArray 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 mxaccess_gateway.v1.MxaccessGateway.MxArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxArray 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(mxaccess_gateway.v1.MxaccessGateway.MxArray 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 mxaccess_gateway.v1.MxArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxArray)
        mxaccess_gateway.v1.MxaccessGateway.MxArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxArray.class, mxaccess_gateway.v1.MxaccessGateway.MxArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        elementDataType_ = 0;
        variantType_ = "";
        dimensions_ = emptyIntList();
        rawDiagnostic_ = "";
        rawElementDataType_ = 0;
        if (boolValuesBuilder_ != null) {
          boolValuesBuilder_.clear();
        }
        if (int32ValuesBuilder_ != null) {
          int32ValuesBuilder_.clear();
        }
        if (int64ValuesBuilder_ != null) {
          int64ValuesBuilder_.clear();
        }
        if (floatValuesBuilder_ != null) {
          floatValuesBuilder_.clear();
        }
        if (doubleValuesBuilder_ != null) {
          doubleValuesBuilder_.clear();
        }
        if (stringValuesBuilder_ != null) {
          stringValuesBuilder_.clear();
        }
        if (timestampValuesBuilder_ != null) {
          timestampValuesBuilder_.clear();
        }
        if (rawValuesBuilder_ != null) {
          rawValuesBuilder_.clear();
        }
        valuesCase_ = 0;
        values_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxArray build() {
        mxaccess_gateway.v1.MxaccessGateway.MxArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxArray result = new mxaccess_gateway.v1.MxaccessGateway.MxArray(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxArray result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.elementDataType_ = elementDataType_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.variantType_ = variantType_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          dimensions_.makeImmutable();
          result.dimensions_ = dimensions_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.rawDiagnostic_ = rawDiagnostic_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.rawElementDataType_ = rawElementDataType_;
        }
      }

      private void buildPartialOneofs(mxaccess_gateway.v1.MxaccessGateway.MxArray result) {
        result.valuesCase_ = valuesCase_;
        result.values_ = this.values_;
        if (valuesCase_ == 10 &&
            boolValuesBuilder_ != null) {
          result.values_ = boolValuesBuilder_.build();
        }
        if (valuesCase_ == 11 &&
            int32ValuesBuilder_ != null) {
          result.values_ = int32ValuesBuilder_.build();
        }
        if (valuesCase_ == 12 &&
            int64ValuesBuilder_ != null) {
          result.values_ = int64ValuesBuilder_.build();
        }
        if (valuesCase_ == 13 &&
            floatValuesBuilder_ != null) {
          result.values_ = floatValuesBuilder_.build();
        }
        if (valuesCase_ == 14 &&
            doubleValuesBuilder_ != null) {
          result.values_ = doubleValuesBuilder_.build();
        }
        if (valuesCase_ == 15 &&
            stringValuesBuilder_ != null) {
          result.values_ = stringValuesBuilder_.build();
        }
        if (valuesCase_ == 16 &&
            timestampValuesBuilder_ != null) {
          result.values_ = timestampValuesBuilder_.build();
        }
        if (valuesCase_ == 17 &&
            rawValuesBuilder_ != null) {
          result.values_ = rawValuesBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxArray.getDefaultInstance()) return this;
        if (other.elementDataType_ != 0) {
          setElementDataTypeValue(other.getElementDataTypeValue());
        }
        if (!other.getVariantType().isEmpty()) {
          variantType_ = other.variantType_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.dimensions_.isEmpty()) {
          if (dimensions_.isEmpty()) {
            dimensions_ = other.dimensions_;
            dimensions_.makeImmutable();
            bitField0_ |= 0x00000004;
          } else {
            ensureDimensionsIsMutable();
            dimensions_.addAll(other.dimensions_);
          }
          onChanged();
        }
        if (!other.getRawDiagnostic().isEmpty()) {
          rawDiagnostic_ = other.rawDiagnostic_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.getRawElementDataType() != 0) {
          setRawElementDataType(other.getRawElementDataType());
        }
        switch (other.getValuesCase()) {
          case BOOL_VALUES: {
            mergeBoolValues(other.getBoolValues());
            break;
          }
          case INT32_VALUES: {
            mergeInt32Values(other.getInt32Values());
            break;
          }
          case INT64_VALUES: {
            mergeInt64Values(other.getInt64Values());
            break;
          }
          case FLOAT_VALUES: {
            mergeFloatValues(other.getFloatValues());
            break;
          }
          case DOUBLE_VALUES: {
            mergeDoubleValues(other.getDoubleValues());
            break;
          }
          case STRING_VALUES: {
            mergeStringValues(other.getStringValues());
            break;
          }
          case TIMESTAMP_VALUES: {
            mergeTimestampValues(other.getTimestampValues());
            break;
          }
          case RAW_VALUES: {
            mergeRawValues(other.getRawValues());
            break;
          }
          case VALUES_NOT_SET: {
            break;
          }
        }
        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 8: {
                elementDataType_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                variantType_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                int v = input.readUInt32();
                ensureDimensionsIsMutable();
                dimensions_.addInt(v);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureDimensionsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  dimensions_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 26
              case 34: {
                rawDiagnostic_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                rawElementDataType_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 82: {
                input.readMessage(
                    internalGetBoolValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 10;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    internalGetInt32ValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 11;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    internalGetInt64ValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 12;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    internalGetFloatValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 13;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    internalGetDoubleValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 14;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    internalGetStringValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 15;
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    internalGetTimestampValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 16;
                break;
              } // case 130
              case 138: {
                input.readMessage(
                    internalGetRawValuesFieldBuilder().getBuilder(),
                    extensionRegistry);
                valuesCase_ = 17;
                break;
              } // case 138
              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 valuesCase_ = 0;
      private java.lang.Object values_;
      public ValuesCase
          getValuesCase() {
        return ValuesCase.forNumber(
            valuesCase_);
      }

      public Builder clearValues() {
        valuesCase_ = 0;
        values_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private int elementDataType_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @return The enum numeric value on the wire for elementDataType.
       */
      @java.lang.Override public int getElementDataTypeValue() {
        return elementDataType_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @param value The enum numeric value on the wire for elementDataType to set.
       * @return This builder for chaining.
       */
      public Builder setElementDataTypeValue(int value) {
        elementDataType_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @return The elementDataType.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxDataType getElementDataType() {
        mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(elementDataType_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @param value The elementDataType to set.
       * @return This builder for chaining.
       */
      public Builder setElementDataType(mxaccess_gateway.v1.MxaccessGateway.MxDataType value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        elementDataType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearElementDataType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        elementDataType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object variantType_ = "";
      /**
       * <code>string variant_type = 2;</code>
       * @return The variantType.
       */
      public java.lang.String getVariantType() {
        java.lang.Object ref = variantType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          variantType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string variant_type = 2;</code>
       * @return The bytes for variantType.
       */
      public com.google.protobuf.ByteString
          getVariantTypeBytes() {
        java.lang.Object ref = variantType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          variantType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string variant_type = 2;</code>
       * @param value The variantType to set.
       * @return This builder for chaining.
       */
      public Builder setVariantType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        variantType_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string variant_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearVariantType() {
        variantType_ = getDefaultInstance().getVariantType();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string variant_type = 2;</code>
       * @param value The bytes for variantType to set.
       * @return This builder for chaining.
       */
      public Builder setVariantTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        variantType_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList dimensions_ = emptyIntList();
      private void ensureDimensionsIsMutable() {
        if (!dimensions_.isModifiable()) {
          dimensions_ = makeMutableCopy(dimensions_);
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <code>repeated uint32 dimensions = 3;</code>
       * @return A list containing the dimensions.
       */
      public java.util.List<java.lang.Integer>
          getDimensionsList() {
        dimensions_.makeImmutable();
        return dimensions_;
      }
      /**
       * <code>repeated uint32 dimensions = 3;</code>
       * @return The count of dimensions.
       */
      public int getDimensionsCount() {
        return dimensions_.size();
      }
      /**
       * <code>repeated uint32 dimensions = 3;</code>
       * @param index The index of the element to return.
       * @return The dimensions at the given index.
       */
      public int getDimensions(int index) {
        return dimensions_.getInt(index);
      }
      /**
       * <code>repeated uint32 dimensions = 3;</code>
       * @param index The index to set the value at.
       * @param value The dimensions to set.
       * @return This builder for chaining.
       */
      public Builder setDimensions(
          int index, int value) {

        ensureDimensionsIsMutable();
        dimensions_.setInt(index, value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 dimensions = 3;</code>
       * @param value The dimensions to add.
       * @return This builder for chaining.
       */
      public Builder addDimensions(int value) {

        ensureDimensionsIsMutable();
        dimensions_.addInt(value);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 dimensions = 3;</code>
       * @param values The dimensions to add.
       * @return This builder for chaining.
       */
      public Builder addAllDimensions(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureDimensionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, dimensions_);
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 dimensions = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDimensions() {
        dimensions_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private java.lang.Object rawDiagnostic_ = "";
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @return The rawDiagnostic.
       */
      public java.lang.String getRawDiagnostic() {
        java.lang.Object ref = rawDiagnostic_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          rawDiagnostic_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @return The bytes for rawDiagnostic.
       */
      public com.google.protobuf.ByteString
          getRawDiagnosticBytes() {
        java.lang.Object ref = rawDiagnostic_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rawDiagnostic_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @param value The rawDiagnostic to set.
       * @return This builder for chaining.
       */
      public Builder setRawDiagnostic(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rawDiagnostic_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawDiagnostic() {
        rawDiagnostic_ = getDefaultInstance().getRawDiagnostic();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string raw_diagnostic = 4;</code>
       * @param value The bytes for rawDiagnostic to set.
       * @return This builder for chaining.
       */
      public Builder setRawDiagnosticBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        rawDiagnostic_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private int rawElementDataType_ ;
      /**
       * <code>int32 raw_element_data_type = 5;</code>
       * @return The rawElementDataType.
       */
      @java.lang.Override
      public int getRawElementDataType() {
        return rawElementDataType_;
      }
      /**
       * <code>int32 raw_element_data_type = 5;</code>
       * @param value The rawElementDataType to set.
       * @return This builder for chaining.
       */
      public Builder setRawElementDataType(int value) {

        rawElementDataType_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 raw_element_data_type = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawElementDataType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        rawElementDataType_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BoolArray, mxaccess_gateway.v1.MxaccessGateway.BoolArray.Builder, mxaccess_gateway.v1.MxaccessGateway.BoolArrayOrBuilder> boolValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       * @return Whether the boolValues field is set.
       */
      @java.lang.Override
      public boolean hasBoolValues() {
        return valuesCase_ == 10;
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       * @return The boolValues.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BoolArray getBoolValues() {
        if (boolValuesBuilder_ == null) {
          if (valuesCase_ == 10) {
            return (mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance();
        } else {
          if (valuesCase_ == 10) {
            return boolValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       */
      public Builder setBoolValues(mxaccess_gateway.v1.MxaccessGateway.BoolArray value) {
        if (boolValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          boolValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       */
      public Builder setBoolValues(
          mxaccess_gateway.v1.MxaccessGateway.BoolArray.Builder builderForValue) {
        if (boolValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          boolValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       */
      public Builder mergeBoolValues(mxaccess_gateway.v1.MxaccessGateway.BoolArray value) {
        if (boolValuesBuilder_ == null) {
          if (valuesCase_ == 10 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.BoolArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 10) {
            boolValuesBuilder_.mergeFrom(value);
          } else {
            boolValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       */
      public Builder clearBoolValues() {
        if (boolValuesBuilder_ == null) {
          if (valuesCase_ == 10) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 10) {
            valuesCase_ = 0;
            values_ = null;
          }
          boolValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.BoolArray.Builder getBoolValuesBuilder() {
        return internalGetBoolValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BoolArrayOrBuilder getBoolValuesOrBuilder() {
        if ((valuesCase_ == 10) && (boolValuesBuilder_ != null)) {
          return boolValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 10) {
            return (mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.BoolArray bool_values = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.BoolArray, mxaccess_gateway.v1.MxaccessGateway.BoolArray.Builder, mxaccess_gateway.v1.MxaccessGateway.BoolArrayOrBuilder> 
          internalGetBoolValuesFieldBuilder() {
        if (boolValuesBuilder_ == null) {
          if (!(valuesCase_ == 10)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance();
          }
          boolValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.BoolArray, mxaccess_gateway.v1.MxaccessGateway.BoolArray.Builder, mxaccess_gateway.v1.MxaccessGateway.BoolArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.BoolArray) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 10;
        onChanged();
        return boolValuesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Int32Array, mxaccess_gateway.v1.MxaccessGateway.Int32Array.Builder, mxaccess_gateway.v1.MxaccessGateway.Int32ArrayOrBuilder> int32ValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       * @return Whether the int32Values field is set.
       */
      @java.lang.Override
      public boolean hasInt32Values() {
        return valuesCase_ == 11;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       * @return The int32Values.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int32Array getInt32Values() {
        if (int32ValuesBuilder_ == null) {
          if (valuesCase_ == 11) {
            return (mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance();
        } else {
          if (valuesCase_ == 11) {
            return int32ValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       */
      public Builder setInt32Values(mxaccess_gateway.v1.MxaccessGateway.Int32Array value) {
        if (int32ValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          int32ValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       */
      public Builder setInt32Values(
          mxaccess_gateway.v1.MxaccessGateway.Int32Array.Builder builderForValue) {
        if (int32ValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          int32ValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       */
      public Builder mergeInt32Values(mxaccess_gateway.v1.MxaccessGateway.Int32Array value) {
        if (int32ValuesBuilder_ == null) {
          if (valuesCase_ == 11 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.Int32Array.newBuilder((mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 11) {
            int32ValuesBuilder_.mergeFrom(value);
          } else {
            int32ValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       */
      public Builder clearInt32Values() {
        if (int32ValuesBuilder_ == null) {
          if (valuesCase_ == 11) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 11) {
            valuesCase_ = 0;
            values_ = null;
          }
          int32ValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Int32Array.Builder getInt32ValuesBuilder() {
        return internalGetInt32ValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int32ArrayOrBuilder getInt32ValuesOrBuilder() {
        if ((valuesCase_ == 11) && (int32ValuesBuilder_ != null)) {
          return int32ValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 11) {
            return (mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Int32Array int32_values = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Int32Array, mxaccess_gateway.v1.MxaccessGateway.Int32Array.Builder, mxaccess_gateway.v1.MxaccessGateway.Int32ArrayOrBuilder> 
          internalGetInt32ValuesFieldBuilder() {
        if (int32ValuesBuilder_ == null) {
          if (!(valuesCase_ == 11)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance();
          }
          int32ValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.Int32Array, mxaccess_gateway.v1.MxaccessGateway.Int32Array.Builder, mxaccess_gateway.v1.MxaccessGateway.Int32ArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.Int32Array) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 11;
        onChanged();
        return int32ValuesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Int64Array, mxaccess_gateway.v1.MxaccessGateway.Int64Array.Builder, mxaccess_gateway.v1.MxaccessGateway.Int64ArrayOrBuilder> int64ValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       * @return Whether the int64Values field is set.
       */
      @java.lang.Override
      public boolean hasInt64Values() {
        return valuesCase_ == 12;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       * @return The int64Values.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int64Array getInt64Values() {
        if (int64ValuesBuilder_ == null) {
          if (valuesCase_ == 12) {
            return (mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance();
        } else {
          if (valuesCase_ == 12) {
            return int64ValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       */
      public Builder setInt64Values(mxaccess_gateway.v1.MxaccessGateway.Int64Array value) {
        if (int64ValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          int64ValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       */
      public Builder setInt64Values(
          mxaccess_gateway.v1.MxaccessGateway.Int64Array.Builder builderForValue) {
        if (int64ValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          int64ValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       */
      public Builder mergeInt64Values(mxaccess_gateway.v1.MxaccessGateway.Int64Array value) {
        if (int64ValuesBuilder_ == null) {
          if (valuesCase_ == 12 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.Int64Array.newBuilder((mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 12) {
            int64ValuesBuilder_.mergeFrom(value);
          } else {
            int64ValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       */
      public Builder clearInt64Values() {
        if (int64ValuesBuilder_ == null) {
          if (valuesCase_ == 12) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 12) {
            valuesCase_ = 0;
            values_ = null;
          }
          int64ValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.Int64Array.Builder getInt64ValuesBuilder() {
        return internalGetInt64ValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int64ArrayOrBuilder getInt64ValuesOrBuilder() {
        if ((valuesCase_ == 12) && (int64ValuesBuilder_ != null)) {
          return int64ValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 12) {
            return (mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.Int64Array int64_values = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.Int64Array, mxaccess_gateway.v1.MxaccessGateway.Int64Array.Builder, mxaccess_gateway.v1.MxaccessGateway.Int64ArrayOrBuilder> 
          internalGetInt64ValuesFieldBuilder() {
        if (int64ValuesBuilder_ == null) {
          if (!(valuesCase_ == 12)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance();
          }
          int64ValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.Int64Array, mxaccess_gateway.v1.MxaccessGateway.Int64Array.Builder, mxaccess_gateway.v1.MxaccessGateway.Int64ArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.Int64Array) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 12;
        onChanged();
        return int64ValuesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.FloatArray, mxaccess_gateway.v1.MxaccessGateway.FloatArray.Builder, mxaccess_gateway.v1.MxaccessGateway.FloatArrayOrBuilder> floatValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       * @return Whether the floatValues field is set.
       */
      @java.lang.Override
      public boolean hasFloatValues() {
        return valuesCase_ == 13;
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       * @return The floatValues.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.FloatArray getFloatValues() {
        if (floatValuesBuilder_ == null) {
          if (valuesCase_ == 13) {
            return (mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance();
        } else {
          if (valuesCase_ == 13) {
            return floatValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       */
      public Builder setFloatValues(mxaccess_gateway.v1.MxaccessGateway.FloatArray value) {
        if (floatValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          floatValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       */
      public Builder setFloatValues(
          mxaccess_gateway.v1.MxaccessGateway.FloatArray.Builder builderForValue) {
        if (floatValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          floatValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       */
      public Builder mergeFloatValues(mxaccess_gateway.v1.MxaccessGateway.FloatArray value) {
        if (floatValuesBuilder_ == null) {
          if (valuesCase_ == 13 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.FloatArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 13) {
            floatValuesBuilder_.mergeFrom(value);
          } else {
            floatValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       */
      public Builder clearFloatValues() {
        if (floatValuesBuilder_ == null) {
          if (valuesCase_ == 13) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 13) {
            valuesCase_ = 0;
            values_ = null;
          }
          floatValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.FloatArray.Builder getFloatValuesBuilder() {
        return internalGetFloatValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.FloatArrayOrBuilder getFloatValuesOrBuilder() {
        if ((valuesCase_ == 13) && (floatValuesBuilder_ != null)) {
          return floatValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 13) {
            return (mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.FloatArray float_values = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.FloatArray, mxaccess_gateway.v1.MxaccessGateway.FloatArray.Builder, mxaccess_gateway.v1.MxaccessGateway.FloatArrayOrBuilder> 
          internalGetFloatValuesFieldBuilder() {
        if (floatValuesBuilder_ == null) {
          if (!(valuesCase_ == 13)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance();
          }
          floatValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.FloatArray, mxaccess_gateway.v1.MxaccessGateway.FloatArray.Builder, mxaccess_gateway.v1.MxaccessGateway.FloatArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.FloatArray) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 13;
        onChanged();
        return floatValuesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.DoubleArray, mxaccess_gateway.v1.MxaccessGateway.DoubleArray.Builder, mxaccess_gateway.v1.MxaccessGateway.DoubleArrayOrBuilder> doubleValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       * @return Whether the doubleValues field is set.
       */
      @java.lang.Override
      public boolean hasDoubleValues() {
        return valuesCase_ == 14;
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       * @return The doubleValues.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DoubleArray getDoubleValues() {
        if (doubleValuesBuilder_ == null) {
          if (valuesCase_ == 14) {
            return (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance();
        } else {
          if (valuesCase_ == 14) {
            return doubleValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       */
      public Builder setDoubleValues(mxaccess_gateway.v1.MxaccessGateway.DoubleArray value) {
        if (doubleValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          doubleValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       */
      public Builder setDoubleValues(
          mxaccess_gateway.v1.MxaccessGateway.DoubleArray.Builder builderForValue) {
        if (doubleValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          doubleValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       */
      public Builder mergeDoubleValues(mxaccess_gateway.v1.MxaccessGateway.DoubleArray value) {
        if (doubleValuesBuilder_ == null) {
          if (valuesCase_ == 14 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.DoubleArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 14) {
            doubleValuesBuilder_.mergeFrom(value);
          } else {
            doubleValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       */
      public Builder clearDoubleValues() {
        if (doubleValuesBuilder_ == null) {
          if (valuesCase_ == 14) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 14) {
            valuesCase_ = 0;
            values_ = null;
          }
          doubleValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.DoubleArray.Builder getDoubleValuesBuilder() {
        return internalGetDoubleValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DoubleArrayOrBuilder getDoubleValuesOrBuilder() {
        if ((valuesCase_ == 14) && (doubleValuesBuilder_ != null)) {
          return doubleValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 14) {
            return (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.DoubleArray double_values = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.DoubleArray, mxaccess_gateway.v1.MxaccessGateway.DoubleArray.Builder, mxaccess_gateway.v1.MxaccessGateway.DoubleArrayOrBuilder> 
          internalGetDoubleValuesFieldBuilder() {
        if (doubleValuesBuilder_ == null) {
          if (!(valuesCase_ == 14)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance();
          }
          doubleValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.DoubleArray, mxaccess_gateway.v1.MxaccessGateway.DoubleArray.Builder, mxaccess_gateway.v1.MxaccessGateway.DoubleArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 14;
        onChanged();
        return doubleValuesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.StringArray, mxaccess_gateway.v1.MxaccessGateway.StringArray.Builder, mxaccess_gateway.v1.MxaccessGateway.StringArrayOrBuilder> stringValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       * @return Whether the stringValues field is set.
       */
      @java.lang.Override
      public boolean hasStringValues() {
        return valuesCase_ == 15;
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       * @return The stringValues.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StringArray getStringValues() {
        if (stringValuesBuilder_ == null) {
          if (valuesCase_ == 15) {
            return (mxaccess_gateway.v1.MxaccessGateway.StringArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance();
        } else {
          if (valuesCase_ == 15) {
            return stringValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       */
      public Builder setStringValues(mxaccess_gateway.v1.MxaccessGateway.StringArray value) {
        if (stringValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          stringValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       */
      public Builder setStringValues(
          mxaccess_gateway.v1.MxaccessGateway.StringArray.Builder builderForValue) {
        if (stringValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          stringValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       */
      public Builder mergeStringValues(mxaccess_gateway.v1.MxaccessGateway.StringArray value) {
        if (stringValuesBuilder_ == null) {
          if (valuesCase_ == 15 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.StringArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.StringArray) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 15) {
            stringValuesBuilder_.mergeFrom(value);
          } else {
            stringValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       */
      public Builder clearStringValues() {
        if (stringValuesBuilder_ == null) {
          if (valuesCase_ == 15) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 15) {
            valuesCase_ = 0;
            values_ = null;
          }
          stringValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.StringArray.Builder getStringValuesBuilder() {
        return internalGetStringValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StringArrayOrBuilder getStringValuesOrBuilder() {
        if ((valuesCase_ == 15) && (stringValuesBuilder_ != null)) {
          return stringValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 15) {
            return (mxaccess_gateway.v1.MxaccessGateway.StringArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.StringArray string_values = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.StringArray, mxaccess_gateway.v1.MxaccessGateway.StringArray.Builder, mxaccess_gateway.v1.MxaccessGateway.StringArrayOrBuilder> 
          internalGetStringValuesFieldBuilder() {
        if (stringValuesBuilder_ == null) {
          if (!(valuesCase_ == 15)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance();
          }
          stringValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.StringArray, mxaccess_gateway.v1.MxaccessGateway.StringArray.Builder, mxaccess_gateway.v1.MxaccessGateway.StringArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.StringArray) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 15;
        onChanged();
        return stringValuesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.TimestampArray, mxaccess_gateway.v1.MxaccessGateway.TimestampArray.Builder, mxaccess_gateway.v1.MxaccessGateway.TimestampArrayOrBuilder> timestampValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       * @return Whether the timestampValues field is set.
       */
      @java.lang.Override
      public boolean hasTimestampValues() {
        return valuesCase_ == 16;
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       * @return The timestampValues.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.TimestampArray getTimestampValues() {
        if (timestampValuesBuilder_ == null) {
          if (valuesCase_ == 16) {
            return (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance();
        } else {
          if (valuesCase_ == 16) {
            return timestampValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       */
      public Builder setTimestampValues(mxaccess_gateway.v1.MxaccessGateway.TimestampArray value) {
        if (timestampValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          timestampValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       */
      public Builder setTimestampValues(
          mxaccess_gateway.v1.MxaccessGateway.TimestampArray.Builder builderForValue) {
        if (timestampValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          timestampValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       */
      public Builder mergeTimestampValues(mxaccess_gateway.v1.MxaccessGateway.TimestampArray value) {
        if (timestampValuesBuilder_ == null) {
          if (valuesCase_ == 16 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.TimestampArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 16) {
            timestampValuesBuilder_.mergeFrom(value);
          } else {
            timestampValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       */
      public Builder clearTimestampValues() {
        if (timestampValuesBuilder_ == null) {
          if (valuesCase_ == 16) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 16) {
            valuesCase_ = 0;
            values_ = null;
          }
          timestampValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.TimestampArray.Builder getTimestampValuesBuilder() {
        return internalGetTimestampValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.TimestampArrayOrBuilder getTimestampValuesOrBuilder() {
        if ((valuesCase_ == 16) && (timestampValuesBuilder_ != null)) {
          return timestampValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 16) {
            return (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.TimestampArray timestamp_values = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.TimestampArray, mxaccess_gateway.v1.MxaccessGateway.TimestampArray.Builder, mxaccess_gateway.v1.MxaccessGateway.TimestampArrayOrBuilder> 
          internalGetTimestampValuesFieldBuilder() {
        if (timestampValuesBuilder_ == null) {
          if (!(valuesCase_ == 16)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance();
          }
          timestampValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.TimestampArray, mxaccess_gateway.v1.MxaccessGateway.TimestampArray.Builder, mxaccess_gateway.v1.MxaccessGateway.TimestampArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 16;
        onChanged();
        return timestampValuesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RawArray, mxaccess_gateway.v1.MxaccessGateway.RawArray.Builder, mxaccess_gateway.v1.MxaccessGateway.RawArrayOrBuilder> rawValuesBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       * @return Whether the rawValues field is set.
       */
      @java.lang.Override
      public boolean hasRawValues() {
        return valuesCase_ == 17;
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       * @return The rawValues.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RawArray getRawValues() {
        if (rawValuesBuilder_ == null) {
          if (valuesCase_ == 17) {
            return (mxaccess_gateway.v1.MxaccessGateway.RawArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance();
        } else {
          if (valuesCase_ == 17) {
            return rawValuesBuilder_.getMessage();
          }
          return mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       */
      public Builder setRawValues(mxaccess_gateway.v1.MxaccessGateway.RawArray value) {
        if (rawValuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          values_ = value;
          onChanged();
        } else {
          rawValuesBuilder_.setMessage(value);
        }
        valuesCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       */
      public Builder setRawValues(
          mxaccess_gateway.v1.MxaccessGateway.RawArray.Builder builderForValue) {
        if (rawValuesBuilder_ == null) {
          values_ = builderForValue.build();
          onChanged();
        } else {
          rawValuesBuilder_.setMessage(builderForValue.build());
        }
        valuesCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       */
      public Builder mergeRawValues(mxaccess_gateway.v1.MxaccessGateway.RawArray value) {
        if (rawValuesBuilder_ == null) {
          if (valuesCase_ == 17 &&
              values_ != mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance()) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.RawArray.newBuilder((mxaccess_gateway.v1.MxaccessGateway.RawArray) values_)
                .mergeFrom(value).buildPartial();
          } else {
            values_ = value;
          }
          onChanged();
        } else {
          if (valuesCase_ == 17) {
            rawValuesBuilder_.mergeFrom(value);
          } else {
            rawValuesBuilder_.setMessage(value);
          }
        }
        valuesCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       */
      public Builder clearRawValues() {
        if (rawValuesBuilder_ == null) {
          if (valuesCase_ == 17) {
            valuesCase_ = 0;
            values_ = null;
            onChanged();
          }
        } else {
          if (valuesCase_ == 17) {
            valuesCase_ = 0;
            values_ = null;
          }
          rawValuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.RawArray.Builder getRawValuesBuilder() {
        return internalGetRawValuesFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RawArrayOrBuilder getRawValuesOrBuilder() {
        if ((valuesCase_ == 17) && (rawValuesBuilder_ != null)) {
          return rawValuesBuilder_.getMessageOrBuilder();
        } else {
          if (valuesCase_ == 17) {
            return (mxaccess_gateway.v1.MxaccessGateway.RawArray) values_;
          }
          return mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.RawArray raw_values = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.RawArray, mxaccess_gateway.v1.MxaccessGateway.RawArray.Builder, mxaccess_gateway.v1.MxaccessGateway.RawArrayOrBuilder> 
          internalGetRawValuesFieldBuilder() {
        if (rawValuesBuilder_ == null) {
          if (!(valuesCase_ == 17)) {
            values_ = mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance();
          }
          rawValuesBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.RawArray, mxaccess_gateway.v1.MxaccessGateway.RawArray.Builder, mxaccess_gateway.v1.MxaccessGateway.RawArrayOrBuilder>(
                  (mxaccess_gateway.v1.MxaccessGateway.RawArray) values_,
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        valuesCase_ = 17;
        onChanged();
        return rawValuesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxArray>
        PARSER = new com.google.protobuf.AbstractParser<MxArray>() {
      @java.lang.Override
      public MxArray 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<MxArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxSparseArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxSparseArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The enum numeric value on the wire for elementDataType.
     */
    int getElementDataTypeValue();
    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The elementDataType.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxDataType getElementDataType();

    /**
     * <code>uint32 total_length = 2;</code>
     * @return The totalLength.
     */
    int getTotalLength();

    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxSparseElement> 
        getElementsList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxSparseElement getElements(int index);
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    int getElementsCount();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder> 
        getElementsOrBuilderList();
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder getElementsOrBuilder(
        int index);
  }
  /**
   * <pre>
   * Write-only sparse array value. The gateway expands this into a full,
   * default-filled MxArray before forwarding to the worker; the worker never
   * receives or produces it. Unmentioned indices take the element type's
   * default (reset, NOT preserved).
   * </pre>
   *
   * Protobuf type {@code mxaccess_gateway.v1.MxSparseArray}
   */
  public static final class MxSparseArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxSparseArray)
      MxSparseArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxSparseArray");
    }
    // Use MxSparseArray.newBuilder() to construct.
    private MxSparseArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxSparseArray() {
      elementDataType_ = 0;
      elements_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.class, mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.Builder.class);
    }

    public static final int ELEMENT_DATA_TYPE_FIELD_NUMBER = 1;
    private int elementDataType_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The enum numeric value on the wire for elementDataType.
     */
    @java.lang.Override public int getElementDataTypeValue() {
      return elementDataType_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
     * @return The elementDataType.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.MxDataType getElementDataType() {
      mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(elementDataType_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
    }

    public static final int TOTAL_LENGTH_FIELD_NUMBER = 2;
    private int totalLength_ = 0;
    /**
     * <code>uint32 total_length = 2;</code>
     * @return The totalLength.
     */
    @java.lang.Override
    public int getTotalLength() {
      return totalLength_;
    }

    public static final int ELEMENTS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxSparseElement> elements_;
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    @java.lang.Override
    public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxSparseElement> getElementsList() {
      return elements_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder> 
        getElementsOrBuilderList() {
      return elements_;
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    @java.lang.Override
    public int getElementsCount() {
      return elements_.size();
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement getElements(int index) {
      return elements_.get(index);
    }
    /**
     * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder getElementsOrBuilder(
        int index) {
      return elements_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (elementDataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, elementDataType_);
      }
      if (totalLength_ != 0) {
        output.writeUInt32(2, totalLength_);
      }
      for (int i = 0; i < elements_.size(); i++) {
        output.writeMessage(3, elements_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (elementDataType_ != mxaccess_gateway.v1.MxaccessGateway.MxDataType.MX_DATA_TYPE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, elementDataType_);
      }
      if (totalLength_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, totalLength_);
      }
      for (int i = 0; i < elements_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, elements_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxSparseArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxSparseArray other = (mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) obj;

      if (elementDataType_ != other.elementDataType_) return false;
      if (getTotalLength()
          != other.getTotalLength()) return false;
      if (!getElementsList()
          .equals(other.getElementsList())) 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();
      hash = (37 * hash) + ELEMENT_DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + elementDataType_;
      hash = (37 * hash) + TOTAL_LENGTH_FIELD_NUMBER;
      hash = (53 * hash) + getTotalLength();
      if (getElementsCount() > 0) {
        hash = (37 * hash) + ELEMENTS_FIELD_NUMBER;
        hash = (53 * hash) + getElementsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray 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 mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray 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 mxaccess_gateway.v1.MxaccessGateway.MxSparseArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray 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(mxaccess_gateway.v1.MxaccessGateway.MxSparseArray 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;
    }
    /**
     * <pre>
     * Write-only sparse array value. The gateway expands this into a full,
     * default-filled MxArray before forwarding to the worker; the worker never
     * receives or produces it. Unmentioned indices take the element type's
     * default (reset, NOT preserved).
     * </pre>
     *
     * Protobuf type {@code mxaccess_gateway.v1.MxSparseArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxSparseArray)
        mxaccess_gateway.v1.MxaccessGateway.MxSparseArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.class, mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        elementDataType_ = 0;
        totalLength_ = 0;
        if (elementsBuilder_ == null) {
          elements_ = java.util.Collections.emptyList();
        } else {
          elements_ = null;
          elementsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseArray build() {
        mxaccess_gateway.v1.MxaccessGateway.MxSparseArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxSparseArray result = new mxaccess_gateway.v1.MxaccessGateway.MxSparseArray(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.MxSparseArray result) {
        if (elementsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            elements_ = java.util.Collections.unmodifiableList(elements_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.elements_ = elements_;
        } else {
          result.elements_ = elementsBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxSparseArray result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.elementDataType_ = elementDataType_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.totalLength_ = totalLength_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxSparseArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxSparseArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxSparseArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxSparseArray.getDefaultInstance()) return this;
        if (other.elementDataType_ != 0) {
          setElementDataTypeValue(other.getElementDataTypeValue());
        }
        if (other.getTotalLength() != 0) {
          setTotalLength(other.getTotalLength());
        }
        if (elementsBuilder_ == null) {
          if (!other.elements_.isEmpty()) {
            if (elements_.isEmpty()) {
              elements_ = other.elements_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureElementsIsMutable();
              elements_.addAll(other.elements_);
            }
            onChanged();
          }
        } else {
          if (!other.elements_.isEmpty()) {
            if (elementsBuilder_.isEmpty()) {
              elementsBuilder_.dispose();
              elementsBuilder_ = null;
              elements_ = other.elements_;
              bitField0_ = (bitField0_ & ~0x00000004);
              elementsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetElementsFieldBuilder() : null;
            } else {
              elementsBuilder_.addAllMessages(other.elements_);
            }
          }
        }
        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 8: {
                elementDataType_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                totalLength_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                mxaccess_gateway.v1.MxaccessGateway.MxSparseElement m =
                    input.readMessage(
                        mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.parser(),
                        extensionRegistry);
                if (elementsBuilder_ == null) {
                  ensureElementsIsMutable();
                  elements_.add(m);
                } else {
                  elementsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              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 int elementDataType_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @return The enum numeric value on the wire for elementDataType.
       */
      @java.lang.Override public int getElementDataTypeValue() {
        return elementDataType_;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @param value The enum numeric value on the wire for elementDataType to set.
       * @return This builder for chaining.
       */
      public Builder setElementDataTypeValue(int value) {
        elementDataType_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @return The elementDataType.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxDataType getElementDataType() {
        mxaccess_gateway.v1.MxaccessGateway.MxDataType result = mxaccess_gateway.v1.MxaccessGateway.MxDataType.forNumber(elementDataType_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.MxDataType.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @param value The elementDataType to set.
       * @return This builder for chaining.
       */
      public Builder setElementDataType(mxaccess_gateway.v1.MxaccessGateway.MxDataType value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        elementDataType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxDataType element_data_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearElementDataType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        elementDataType_ = 0;
        onChanged();
        return this;
      }

      private int totalLength_ ;
      /**
       * <code>uint32 total_length = 2;</code>
       * @return The totalLength.
       */
      @java.lang.Override
      public int getTotalLength() {
        return totalLength_;
      }
      /**
       * <code>uint32 total_length = 2;</code>
       * @param value The totalLength to set.
       * @return This builder for chaining.
       */
      public Builder setTotalLength(int value) {

        totalLength_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 total_length = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalLength() {
        bitField0_ = (bitField0_ & ~0x00000002);
        totalLength_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxSparseElement> elements_ =
        java.util.Collections.emptyList();
      private void ensureElementsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          elements_ = new java.util.ArrayList<mxaccess_gateway.v1.MxaccessGateway.MxSparseElement>(elements_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxSparseElement, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder, mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder> elementsBuilder_;

      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxSparseElement> getElementsList() {
        if (elementsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(elements_);
        } else {
          return elementsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public int getElementsCount() {
        if (elementsBuilder_ == null) {
          return elements_.size();
        } else {
          return elementsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement getElements(int index) {
        if (elementsBuilder_ == null) {
          return elements_.get(index);
        } else {
          return elementsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder setElements(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement value) {
        if (elementsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureElementsIsMutable();
          elements_.set(index, value);
          onChanged();
        } else {
          elementsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder setElements(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder builderForValue) {
        if (elementsBuilder_ == null) {
          ensureElementsIsMutable();
          elements_.set(index, builderForValue.build());
          onChanged();
        } else {
          elementsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder addElements(mxaccess_gateway.v1.MxaccessGateway.MxSparseElement value) {
        if (elementsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureElementsIsMutable();
          elements_.add(value);
          onChanged();
        } else {
          elementsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder addElements(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement value) {
        if (elementsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureElementsIsMutable();
          elements_.add(index, value);
          onChanged();
        } else {
          elementsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder addElements(
          mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder builderForValue) {
        if (elementsBuilder_ == null) {
          ensureElementsIsMutable();
          elements_.add(builderForValue.build());
          onChanged();
        } else {
          elementsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder addElements(
          int index, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder builderForValue) {
        if (elementsBuilder_ == null) {
          ensureElementsIsMutable();
          elements_.add(index, builderForValue.build());
          onChanged();
        } else {
          elementsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder addAllElements(
          java.lang.Iterable<? extends mxaccess_gateway.v1.MxaccessGateway.MxSparseElement> values) {
        if (elementsBuilder_ == null) {
          ensureElementsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, elements_);
          onChanged();
        } else {
          elementsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder clearElements() {
        if (elementsBuilder_ == null) {
          elements_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          elementsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public Builder removeElements(int index) {
        if (elementsBuilder_ == null) {
          ensureElementsIsMutable();
          elements_.remove(index);
          onChanged();
        } else {
          elementsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder getElementsBuilder(
          int index) {
        return internalGetElementsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder getElementsOrBuilder(
          int index) {
        if (elementsBuilder_ == null) {
          return elements_.get(index);  } else {
          return elementsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public java.util.List<? extends mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder> 
           getElementsOrBuilderList() {
        if (elementsBuilder_ != null) {
          return elementsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(elements_);
        }
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder addElementsBuilder() {
        return internalGetElementsFieldBuilder().addBuilder(
            mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder addElementsBuilder(
          int index) {
        return internalGetElementsFieldBuilder().addBuilder(
            index, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.getDefaultInstance());
      }
      /**
       * <code>repeated .mxaccess_gateway.v1.MxSparseElement elements = 3;</code>
       */
      public java.util.List<mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder> 
           getElementsBuilderList() {
        return internalGetElementsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxSparseElement, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder, mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder> 
          internalGetElementsFieldBuilder() {
        if (elementsBuilder_ == null) {
          elementsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxSparseElement, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder, mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder>(
                  elements_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          elements_ = null;
        }
        return elementsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxSparseArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxSparseArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxSparseArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxSparseArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxSparseArray>
        PARSER = new com.google.protobuf.AbstractParser<MxSparseArray>() {
      @java.lang.Override
      public MxSparseArray 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<MxSparseArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxSparseArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MxSparseElementOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.MxSparseElement)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>uint32 index = 1;</code>
     * @return The index.
     */
    int getIndex();

    /**
     * <pre>
     * scalar
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <pre>
     * scalar
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return The value.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValue getValue();
    /**
     * <pre>
     * scalar
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.MxSparseElement}
   */
  public static final class MxSparseElement extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.MxSparseElement)
      MxSparseElementOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "MxSparseElement");
    }
    // Use MxSparseElement.newBuilder() to construct.
    private MxSparseElement(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private MxSparseElement() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseElement_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseElement_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.class, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder.class);
    }

    private int bitField0_;
    public static final int INDEX_FIELD_NUMBER = 1;
    private int index_ = 0;
    /**
     * <code>uint32 index = 1;</code>
     * @return The index.
     */
    @java.lang.Override
    public int getIndex() {
      return index_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
    /**
     * <pre>
     * scalar
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * scalar
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }
    /**
     * <pre>
     * scalar
     * </pre>
     *
     * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
      return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
    }

    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 (index_ != 0) {
        output.writeUInt32(1, index_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(2, getValue());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (index_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, index_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getValue());
      }
      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 mxaccess_gateway.v1.MxaccessGateway.MxSparseElement)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.MxSparseElement other = (mxaccess_gateway.v1.MxaccessGateway.MxSparseElement) obj;

      if (getIndex()
          != other.getIndex()) return false;
      if (hasValue() != other.hasValue()) return false;
      if (hasValue()) {
        if (!getValue()
            .equals(other.getValue())) 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();
      hash = (37 * hash) + INDEX_FIELD_NUMBER;
      hash = (53 * hash) + getIndex();
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement 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 mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement 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 mxaccess_gateway.v1.MxaccessGateway.MxSparseElement parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement 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(mxaccess_gateway.v1.MxaccessGateway.MxSparseElement 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 mxaccess_gateway.v1.MxSparseElement}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.MxSparseElement)
        mxaccess_gateway.v1.MxaccessGateway.MxSparseElementOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseElement_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseElement_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.class, mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetValueFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        index_ = 0;
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_MxSparseElement_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement build() {
        mxaccess_gateway.v1.MxaccessGateway.MxSparseElement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.MxSparseElement result = new mxaccess_gateway.v1.MxaccessGateway.MxSparseElement(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.MxSparseElement result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.index_ = index_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.value_ = valueBuilder_ == null
              ? value_
              : valueBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.MxSparseElement) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.MxSparseElement)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.MxSparseElement other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.MxSparseElement.getDefaultInstance()) return this;
        if (other.getIndex() != 0) {
          setIndex(other.getIndex());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        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 8: {
                index_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    internalGetValueFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 int index_ ;
      /**
       * <code>uint32 index = 1;</code>
       * @return The index.
       */
      @java.lang.Override
      public int getIndex() {
        return index_;
      }
      /**
       * <code>uint32 index = 1;</code>
       * @param value The index to set.
       * @return This builder for chaining.
       */
      public Builder setIndex(int value) {

        index_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 index = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        index_ = 0;
        onChanged();
        return this;
      }

      private mxaccess_gateway.v1.MxaccessGateway.MxValue value_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> valueBuilder_;
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       * @return Whether the value field is set.
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       * @return The value.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue getValue() {
        if (valueBuilder_ == null) {
          return value_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        } else {
          return valueBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder setValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          value_ = value;
        } else {
          valueBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder setValue(
          mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder builderForValue) {
        if (valueBuilder_ == null) {
          value_ = builderForValue.build();
        } else {
          valueBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder mergeValue(mxaccess_gateway.v1.MxaccessGateway.MxValue value) {
        if (valueBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            value_ != null &&
            value_ != mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance()) {
            getValueBuilder().mergeFrom(value);
          } else {
            value_ = value;
          }
        } else {
          valueBuilder_.mergeFrom(value);
        }
        if (value_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = null;
        if (valueBuilder_ != null) {
          valueBuilder_.dispose();
          valueBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder getValueBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetValueFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder getValueOrBuilder() {
        if (valueBuilder_ != null) {
          return valueBuilder_.getMessageOrBuilder();
        } else {
          return value_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxValue.getDefaultInstance() : value_;
        }
      }
      /**
       * <pre>
       * scalar
       * </pre>
       *
       * <code>.mxaccess_gateway.v1.MxValue value = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder> 
          internalGetValueFieldBuilder() {
        if (valueBuilder_ == null) {
          valueBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxValue, mxaccess_gateway.v1.MxaccessGateway.MxValue.Builder, mxaccess_gateway.v1.MxaccessGateway.MxValueOrBuilder>(
                  getValue(),
                  getParentForChildren(),
                  isClean());
          value_ = null;
        }
        return valueBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.MxSparseElement)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.MxSparseElement)
    private static final mxaccess_gateway.v1.MxaccessGateway.MxSparseElement DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.MxSparseElement();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.MxSparseElement getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MxSparseElement>
        PARSER = new com.google.protobuf.AbstractParser<MxSparseElement>() {
      @java.lang.Override
      public MxSparseElement 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<MxSparseElement> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxSparseElement getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BoolArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.BoolArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated bool values = 1;</code>
     * @return A list containing the values.
     */
    java.util.List<java.lang.Boolean> getValuesList();
    /**
     * <code>repeated bool values = 1;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated bool values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    boolean getValues(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.BoolArray}
   */
  public static final class BoolArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.BoolArray)
      BoolArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "BoolArray");
    }
    // Use BoolArray.newBuilder() to construct.
    private BoolArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private BoolArray() {
      values_ = emptyBooleanList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BoolArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BoolArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.BoolArray.class, mxaccess_gateway.v1.MxaccessGateway.BoolArray.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.BooleanList values_ =
        emptyBooleanList();
    /**
     * <code>repeated bool values = 1;</code>
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List<java.lang.Boolean>
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated bool values = 1;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated bool values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public boolean getValues(int index) {
      return values_.getBoolean(index);
    }
    private int valuesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (getValuesList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(valuesMemoizedSerializedSize);
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeBoolNoTag(values_.getBoolean(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        dataSize = 1 * getValuesList().size();
        size += dataSize;
        if (!getValuesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        valuesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.BoolArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.BoolArray other = (mxaccess_gateway.v1.MxaccessGateway.BoolArray) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray 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 mxaccess_gateway.v1.MxaccessGateway.BoolArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray 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 mxaccess_gateway.v1.MxaccessGateway.BoolArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray 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(mxaccess_gateway.v1.MxaccessGateway.BoolArray 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 mxaccess_gateway.v1.BoolArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.BoolArray)
        mxaccess_gateway.v1.MxaccessGateway.BoolArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BoolArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BoolArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.BoolArray.class, mxaccess_gateway.v1.MxaccessGateway.BoolArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.BoolArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        values_ = emptyBooleanList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_BoolArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BoolArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BoolArray build() {
        mxaccess_gateway.v1.MxaccessGateway.BoolArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.BoolArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.BoolArray result = new mxaccess_gateway.v1.MxaccessGateway.BoolArray(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.BoolArray result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.BoolArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.BoolArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.BoolArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.BoolArray.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          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 8: {
                boolean v = input.readBool();
                ensureValuesIsMutable();
                values_.addBoolean(v);
                break;
              } // case 8
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureValuesIsMutable(alloc / 1);
                while (input.getBytesUntilLimit() > 0) {
                  values_.addBoolean(input.readBool());
                }
                input.popLimit(limit);
                break;
              } // case 10
              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 com.google.protobuf.Internal.BooleanList values_ = emptyBooleanList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000001;
      }
      private void ensureValuesIsMutable(int capacity) {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_, capacity);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated bool values = 1;</code>
       * @return A list containing the values.
       */
      public java.util.List<java.lang.Boolean>
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated bool values = 1;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated bool values = 1;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public boolean getValues(int index) {
        return values_.getBoolean(index);
      }
      /**
       * <code>repeated bool values = 1;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, boolean value) {

        ensureValuesIsMutable();
        values_.setBoolean(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool values = 1;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(boolean value) {

        ensureValuesIsMutable();
        values_.addBoolean(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool values = 1;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends java.lang.Boolean> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated bool values = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyBooleanList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.BoolArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.BoolArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.BoolArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.BoolArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.BoolArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<BoolArray>
        PARSER = new com.google.protobuf.AbstractParser<BoolArray>() {
      @java.lang.Override
      public BoolArray 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<BoolArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.BoolArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface Int32ArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.Int32Array)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated int32 values = 1;</code>
     * @return A list containing the values.
     */
    java.util.List<java.lang.Integer> getValuesList();
    /**
     * <code>repeated int32 values = 1;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated int32 values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    int getValues(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.Int32Array}
   */
  public static final class Int32Array extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.Int32Array)
      Int32ArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "Int32Array");
    }
    // Use Int32Array.newBuilder() to construct.
    private Int32Array(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Int32Array() {
      values_ = emptyIntList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int32Array_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int32Array_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.Int32Array.class, mxaccess_gateway.v1.MxaccessGateway.Int32Array.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList values_ =
        emptyIntList();
    /**
     * <code>repeated int32 values = 1;</code>
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated int32 values = 1;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated int32 values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public int getValues(int index) {
      return values_.getInt(index);
    }
    private int valuesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (getValuesList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(valuesMemoizedSerializedSize);
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeInt32NoTag(values_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(values_.getInt(i));
        }
        size += dataSize;
        if (!getValuesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        valuesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.Int32Array)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.Int32Array other = (mxaccess_gateway.v1.MxaccessGateway.Int32Array) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array 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 mxaccess_gateway.v1.MxaccessGateway.Int32Array parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array 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 mxaccess_gateway.v1.MxaccessGateway.Int32Array parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array 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(mxaccess_gateway.v1.MxaccessGateway.Int32Array 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 mxaccess_gateway.v1.Int32Array}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.Int32Array)
        mxaccess_gateway.v1.MxaccessGateway.Int32ArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int32Array_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int32Array_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.Int32Array.class, mxaccess_gateway.v1.MxaccessGateway.Int32Array.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.Int32Array.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        values_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int32Array_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int32Array getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int32Array build() {
        mxaccess_gateway.v1.MxaccessGateway.Int32Array result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int32Array buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.Int32Array result = new mxaccess_gateway.v1.MxaccessGateway.Int32Array(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.Int32Array result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.Int32Array) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.Int32Array)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.Int32Array other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.Int32Array.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          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 8: {
                int v = input.readInt32();
                ensureValuesIsMutable();
                values_.addInt(v);
                break;
              } // case 8
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureValuesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  values_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 10
              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 com.google.protobuf.Internal.IntList values_ = emptyIntList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated int32 values = 1;</code>
       * @return A list containing the values.
       */
      public java.util.List<java.lang.Integer>
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated int32 values = 1;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated int32 values = 1;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public int getValues(int index) {
        return values_.getInt(index);
      }
      /**
       * <code>repeated int32 values = 1;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, int value) {

        ensureValuesIsMutable();
        values_.setInt(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 values = 1;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(int value) {

        ensureValuesIsMutable();
        values_.addInt(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 values = 1;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 values = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.Int32Array)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.Int32Array)
    private static final mxaccess_gateway.v1.MxaccessGateway.Int32Array DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.Int32Array();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Int32Array getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Int32Array>
        PARSER = new com.google.protobuf.AbstractParser<Int32Array>() {
      @java.lang.Override
      public Int32Array 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<Int32Array> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Int32Array getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface Int64ArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.Int64Array)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated int64 values = 1;</code>
     * @return A list containing the values.
     */
    java.util.List<java.lang.Long> getValuesList();
    /**
     * <code>repeated int64 values = 1;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated int64 values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    long getValues(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.Int64Array}
   */
  public static final class Int64Array extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.Int64Array)
      Int64ArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "Int64Array");
    }
    // Use Int64Array.newBuilder() to construct.
    private Int64Array(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Int64Array() {
      values_ = emptyLongList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int64Array_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int64Array_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.Int64Array.class, mxaccess_gateway.v1.MxaccessGateway.Int64Array.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList values_ =
        emptyLongList();
    /**
     * <code>repeated int64 values = 1;</code>
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated int64 values = 1;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated int64 values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public long getValues(int index) {
      return values_.getLong(index);
    }
    private int valuesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (getValuesList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(valuesMemoizedSerializedSize);
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeInt64NoTag(values_.getLong(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(values_.getLong(i));
        }
        size += dataSize;
        if (!getValuesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        valuesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.Int64Array)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.Int64Array other = (mxaccess_gateway.v1.MxaccessGateway.Int64Array) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array 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 mxaccess_gateway.v1.MxaccessGateway.Int64Array parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array 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 mxaccess_gateway.v1.MxaccessGateway.Int64Array parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array 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(mxaccess_gateway.v1.MxaccessGateway.Int64Array 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 mxaccess_gateway.v1.Int64Array}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.Int64Array)
        mxaccess_gateway.v1.MxaccessGateway.Int64ArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int64Array_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int64Array_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.Int64Array.class, mxaccess_gateway.v1.MxaccessGateway.Int64Array.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.Int64Array.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        values_ = emptyLongList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_Int64Array_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int64Array getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int64Array build() {
        mxaccess_gateway.v1.MxaccessGateway.Int64Array result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.Int64Array buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.Int64Array result = new mxaccess_gateway.v1.MxaccessGateway.Int64Array(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.Int64Array result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.Int64Array) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.Int64Array)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.Int64Array other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.Int64Array.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          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 8: {
                long v = input.readInt64();
                ensureValuesIsMutable();
                values_.addLong(v);
                break;
              } // case 8
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureValuesIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  values_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 10
              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 com.google.protobuf.Internal.LongList values_ = emptyLongList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated int64 values = 1;</code>
       * @return A list containing the values.
       */
      public java.util.List<java.lang.Long>
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated int64 values = 1;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated int64 values = 1;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public long getValues(int index) {
        return values_.getLong(index);
      }
      /**
       * <code>repeated int64 values = 1;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, long value) {

        ensureValuesIsMutable();
        values_.setLong(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 values = 1;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(long value) {

        ensureValuesIsMutable();
        values_.addLong(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 values = 1;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 values = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyLongList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.Int64Array)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.Int64Array)
    private static final mxaccess_gateway.v1.MxaccessGateway.Int64Array DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.Int64Array();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.Int64Array getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Int64Array>
        PARSER = new com.google.protobuf.AbstractParser<Int64Array>() {
      @java.lang.Override
      public Int64Array 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<Int64Array> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.Int64Array getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FloatArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.FloatArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated float values = 1;</code>
     * @return A list containing the values.
     */
    java.util.List<java.lang.Float> getValuesList();
    /**
     * <code>repeated float values = 1;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated float values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    float getValues(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.FloatArray}
   */
  public static final class FloatArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.FloatArray)
      FloatArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "FloatArray");
    }
    // Use FloatArray.newBuilder() to construct.
    private FloatArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private FloatArray() {
      values_ = emptyFloatList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_FloatArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_FloatArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.FloatArray.class, mxaccess_gateway.v1.MxaccessGateway.FloatArray.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.FloatList values_ =
        emptyFloatList();
    /**
     * <code>repeated float values = 1;</code>
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List<java.lang.Float>
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated float values = 1;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated float values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public float getValues(int index) {
      return values_.getFloat(index);
    }
    private int valuesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (getValuesList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(valuesMemoizedSerializedSize);
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeFloatNoTag(values_.getFloat(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        dataSize = 4 * getValuesList().size();
        size += dataSize;
        if (!getValuesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        valuesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.FloatArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.FloatArray other = (mxaccess_gateway.v1.MxaccessGateway.FloatArray) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray 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 mxaccess_gateway.v1.MxaccessGateway.FloatArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray 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 mxaccess_gateway.v1.MxaccessGateway.FloatArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray 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(mxaccess_gateway.v1.MxaccessGateway.FloatArray 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 mxaccess_gateway.v1.FloatArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.FloatArray)
        mxaccess_gateway.v1.MxaccessGateway.FloatArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_FloatArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_FloatArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.FloatArray.class, mxaccess_gateway.v1.MxaccessGateway.FloatArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.FloatArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        values_ = emptyFloatList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_FloatArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.FloatArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.FloatArray build() {
        mxaccess_gateway.v1.MxaccessGateway.FloatArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.FloatArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.FloatArray result = new mxaccess_gateway.v1.MxaccessGateway.FloatArray(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.FloatArray result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.FloatArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.FloatArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.FloatArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.FloatArray.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          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 13: {
                float v = input.readFloat();
                ensureValuesIsMutable();
                values_.addFloat(v);
                break;
              } // case 13
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureValuesIsMutable(alloc / 4);
                while (input.getBytesUntilLimit() > 0) {
                  values_.addFloat(input.readFloat());
                }
                input.popLimit(limit);
                break;
              } // case 10
              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 com.google.protobuf.Internal.FloatList values_ = emptyFloatList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000001;
      }
      private void ensureValuesIsMutable(int capacity) {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_, capacity);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated float values = 1;</code>
       * @return A list containing the values.
       */
      public java.util.List<java.lang.Float>
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated float values = 1;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated float values = 1;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public float getValues(int index) {
        return values_.getFloat(index);
      }
      /**
       * <code>repeated float values = 1;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, float value) {

        ensureValuesIsMutable();
        values_.setFloat(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated float values = 1;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(float value) {

        ensureValuesIsMutable();
        values_.addFloat(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated float values = 1;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends java.lang.Float> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated float values = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyFloatList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.FloatArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.FloatArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.FloatArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.FloatArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.FloatArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<FloatArray>
        PARSER = new com.google.protobuf.AbstractParser<FloatArray>() {
      @java.lang.Override
      public FloatArray 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<FloatArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.FloatArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DoubleArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.DoubleArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated double values = 1;</code>
     * @return A list containing the values.
     */
    java.util.List<java.lang.Double> getValuesList();
    /**
     * <code>repeated double values = 1;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated double values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    double getValues(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.DoubleArray}
   */
  public static final class DoubleArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.DoubleArray)
      DoubleArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "DoubleArray");
    }
    // Use DoubleArray.newBuilder() to construct.
    private DoubleArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private DoubleArray() {
      values_ = emptyDoubleList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DoubleArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DoubleArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.DoubleArray.class, mxaccess_gateway.v1.MxaccessGateway.DoubleArray.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.DoubleList values_ =
        emptyDoubleList();
    /**
     * <code>repeated double values = 1;</code>
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List<java.lang.Double>
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated double values = 1;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated double values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public double getValues(int index) {
      return values_.getDouble(index);
    }
    private int valuesMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (getValuesList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(valuesMemoizedSerializedSize);
      }
      for (int i = 0; i < values_.size(); i++) {
        output.writeDoubleNoTag(values_.getDouble(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        dataSize = 8 * getValuesList().size();
        size += dataSize;
        if (!getValuesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        valuesMemoizedSerializedSize = dataSize;
      }
      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 mxaccess_gateway.v1.MxaccessGateway.DoubleArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.DoubleArray other = (mxaccess_gateway.v1.MxaccessGateway.DoubleArray) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray 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 mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray 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 mxaccess_gateway.v1.MxaccessGateway.DoubleArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray 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(mxaccess_gateway.v1.MxaccessGateway.DoubleArray 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 mxaccess_gateway.v1.DoubleArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.DoubleArray)
        mxaccess_gateway.v1.MxaccessGateway.DoubleArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DoubleArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DoubleArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.DoubleArray.class, mxaccess_gateway.v1.MxaccessGateway.DoubleArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.DoubleArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        values_ = emptyDoubleList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_DoubleArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DoubleArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DoubleArray build() {
        mxaccess_gateway.v1.MxaccessGateway.DoubleArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.DoubleArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.DoubleArray result = new mxaccess_gateway.v1.MxaccessGateway.DoubleArray(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.DoubleArray result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.DoubleArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.DoubleArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.DoubleArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.DoubleArray.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          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 9: {
                double v = input.readDouble();
                ensureValuesIsMutable();
                values_.addDouble(v);
                break;
              } // case 9
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureValuesIsMutable(alloc / 8);
                while (input.getBytesUntilLimit() > 0) {
                  values_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 10
              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 com.google.protobuf.Internal.DoubleList values_ = emptyDoubleList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000001;
      }
      private void ensureValuesIsMutable(int capacity) {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_, capacity);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated double values = 1;</code>
       * @return A list containing the values.
       */
      public java.util.List<java.lang.Double>
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated double values = 1;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated double values = 1;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public double getValues(int index) {
        return values_.getDouble(index);
      }
      /**
       * <code>repeated double values = 1;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, double value) {

        ensureValuesIsMutable();
        values_.setDouble(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated double values = 1;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(double value) {

        ensureValuesIsMutable();
        values_.addDouble(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated double values = 1;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends java.lang.Double> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated double values = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyDoubleList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.DoubleArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.DoubleArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.DoubleArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.DoubleArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.DoubleArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<DoubleArray>
        PARSER = new com.google.protobuf.AbstractParser<DoubleArray>() {
      @java.lang.Override
      public DoubleArray 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<DoubleArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.DoubleArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StringArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.StringArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated string values = 1;</code>
     * @return A list containing the values.
     */
    java.util.List<java.lang.String>
        getValuesList();
    /**
     * <code>repeated string values = 1;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated string values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    java.lang.String getValues(int index);
    /**
     * <code>repeated string values = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the values at the given index.
     */
    com.google.protobuf.ByteString
        getValuesBytes(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.StringArray}
   */
  public static final class StringArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.StringArray)
      StringArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "StringArray");
    }
    // Use StringArray.newBuilder() to construct.
    private StringArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private StringArray() {
      values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StringArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StringArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.StringArray.class, mxaccess_gateway.v1.MxaccessGateway.StringArray.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList values_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <code>repeated string values = 1;</code>
     * @return A list containing the values.
     */
    public com.google.protobuf.ProtocolStringList
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated string values = 1;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated string values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public java.lang.String getValues(int index) {
      return values_.get(index);
    }
    /**
     * <code>repeated string values = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the values at the given index.
     */
    public com.google.protobuf.ByteString
        getValuesBytes(int index) {
      return values_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < values_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, values_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += computeStringSizeNoTag(values_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      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 mxaccess_gateway.v1.MxaccessGateway.StringArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.StringArray other = (mxaccess_gateway.v1.MxaccessGateway.StringArray) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray 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 mxaccess_gateway.v1.MxaccessGateway.StringArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StringArray 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 mxaccess_gateway.v1.MxaccessGateway.StringArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.StringArray 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(mxaccess_gateway.v1.MxaccessGateway.StringArray 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 mxaccess_gateway.v1.StringArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.StringArray)
        mxaccess_gateway.v1.MxaccessGateway.StringArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StringArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StringArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.StringArray.class, mxaccess_gateway.v1.MxaccessGateway.StringArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.StringArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        values_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_StringArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StringArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StringArray build() {
        mxaccess_gateway.v1.MxaccessGateway.StringArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.StringArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.StringArray result = new mxaccess_gateway.v1.MxaccessGateway.StringArray(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.StringArray result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.StringArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.StringArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.StringArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.StringArray.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            bitField0_ |= 0x00000001;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          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: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureValuesIsMutable();
                values_.add(s);
                break;
              } // case 10
              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 com.google.protobuf.LazyStringArrayList values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = new com.google.protobuf.LazyStringArrayList(values_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated string values = 1;</code>
       * @return A list containing the values.
       */
      public com.google.protobuf.ProtocolStringList
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated string values = 1;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated string values = 1;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated string values = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the values at the given index.
       */
      public com.google.protobuf.ByteString
          getValuesBytes(int index) {
        return values_.getByteString(index);
      }
      /**
       * <code>repeated string values = 1;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.set(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 1;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 1;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<java.lang.String> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);;
        onChanged();
        return this;
      }
      /**
       * <code>repeated string values = 1;</code>
       * @param value The bytes of the values to add.
       * @return This builder for chaining.
       */
      public Builder addValuesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureValuesIsMutable();
        values_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.StringArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.StringArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.StringArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.StringArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.StringArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StringArray>
        PARSER = new com.google.protobuf.AbstractParser<StringArray>() {
      @java.lang.Override
      public StringArray 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<StringArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.StringArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TimestampArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.TimestampArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    java.util.List<com.google.protobuf.Timestamp> 
        getValuesList();
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    com.google.protobuf.Timestamp getValues(int index);
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    int getValuesCount();
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    java.util.List<? extends com.google.protobuf.TimestampOrBuilder> 
        getValuesOrBuilderList();
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    com.google.protobuf.TimestampOrBuilder getValuesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.TimestampArray}
   */
  public static final class TimestampArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.TimestampArray)
      TimestampArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "TimestampArray");
    }
    // Use TimestampArray.newBuilder() to construct.
    private TimestampArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private TimestampArray() {
      values_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_TimestampArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_TimestampArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.TimestampArray.class, mxaccess_gateway.v1.MxaccessGateway.TimestampArray.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<com.google.protobuf.Timestamp> values_;
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.Timestamp> getValuesList() {
      return values_;
    }
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.google.protobuf.TimestampOrBuilder> 
        getValuesOrBuilderList() {
      return values_;
    }
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    @java.lang.Override
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getValues(int index) {
      return values_.get(index);
    }
    /**
     * <code>repeated .google.protobuf.Timestamp values = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getValuesOrBuilder(
        int index) {
      return values_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      for (int i = 0; i < values_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, values_.get(i));
      }
      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 mxaccess_gateway.v1.MxaccessGateway.TimestampArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.TimestampArray other = (mxaccess_gateway.v1.MxaccessGateway.TimestampArray) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray 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 mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray 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 mxaccess_gateway.v1.MxaccessGateway.TimestampArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray 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(mxaccess_gateway.v1.MxaccessGateway.TimestampArray 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 mxaccess_gateway.v1.TimestampArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.TimestampArray)
        mxaccess_gateway.v1.MxaccessGateway.TimestampArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_TimestampArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_TimestampArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.TimestampArray.class, mxaccess_gateway.v1.MxaccessGateway.TimestampArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.TimestampArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (valuesBuilder_ == null) {
          values_ = java.util.Collections.emptyList();
        } else {
          values_ = null;
          valuesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_TimestampArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.TimestampArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.TimestampArray build() {
        mxaccess_gateway.v1.MxaccessGateway.TimestampArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.TimestampArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.TimestampArray result = new mxaccess_gateway.v1.MxaccessGateway.TimestampArray(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(mxaccess_gateway.v1.MxaccessGateway.TimestampArray result) {
        if (valuesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            values_ = java.util.Collections.unmodifiableList(values_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.values_ = values_;
        } else {
          result.values_ = valuesBuilder_.build();
        }
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.TimestampArray result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.TimestampArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.TimestampArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.TimestampArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.TimestampArray.getDefaultInstance()) return this;
        if (valuesBuilder_ == null) {
          if (!other.values_.isEmpty()) {
            if (values_.isEmpty()) {
              values_ = other.values_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureValuesIsMutable();
              values_.addAll(other.values_);
            }
            onChanged();
          }
        } else {
          if (!other.values_.isEmpty()) {
            if (valuesBuilder_.isEmpty()) {
              valuesBuilder_.dispose();
              valuesBuilder_ = null;
              values_ = other.values_;
              bitField0_ = (bitField0_ & ~0x00000001);
              valuesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   internalGetValuesFieldBuilder() : null;
            } else {
              valuesBuilder_.addAllMessages(other.values_);
            }
          }
        }
        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: {
                com.google.protobuf.Timestamp m =
                    input.readMessage(
                        com.google.protobuf.Timestamp.parser(),
                        extensionRegistry);
                if (valuesBuilder_ == null) {
                  ensureValuesIsMutable();
                  values_.add(m);
                } else {
                  valuesBuilder_.addMessage(m);
                }
                break;
              } // case 10
              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.util.List<com.google.protobuf.Timestamp> values_ =
        java.util.Collections.emptyList();
      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          values_ = new java.util.ArrayList<com.google.protobuf.Timestamp>(values_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> valuesBuilder_;

      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public java.util.List<com.google.protobuf.Timestamp> getValuesList() {
        if (valuesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(values_);
        } else {
          return valuesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public int getValuesCount() {
        if (valuesBuilder_ == null) {
          return values_.size();
        } else {
          return valuesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public com.google.protobuf.Timestamp getValues(int index) {
        if (valuesBuilder_ == null) {
          return values_.get(index);
        } else {
          return valuesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder setValues(
          int index, com.google.protobuf.Timestamp value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.set(index, value);
          onChanged();
        } else {
          valuesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder setValues(
          int index, com.google.protobuf.Timestamp.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.set(index, builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder addValues(com.google.protobuf.Timestamp value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.add(value);
          onChanged();
        } else {
          valuesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder addValues(
          int index, com.google.protobuf.Timestamp value) {
        if (valuesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureValuesIsMutable();
          values_.add(index, value);
          onChanged();
        } else {
          valuesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder addValues(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.add(builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder addValues(
          int index, com.google.protobuf.Timestamp.Builder builderForValue) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.add(index, builderForValue.build());
          onChanged();
        } else {
          valuesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends com.google.protobuf.Timestamp> values) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, values_);
          onChanged();
        } else {
          valuesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder clearValues() {
        if (valuesBuilder_ == null) {
          values_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          valuesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public Builder removeValues(int index) {
        if (valuesBuilder_ == null) {
          ensureValuesIsMutable();
          values_.remove(index);
          onChanged();
        } else {
          valuesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public com.google.protobuf.Timestamp.Builder getValuesBuilder(
          int index) {
        return internalGetValuesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getValuesOrBuilder(
          int index) {
        if (valuesBuilder_ == null) {
          return values_.get(index);  } else {
          return valuesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public java.util.List<? extends com.google.protobuf.TimestampOrBuilder> 
           getValuesOrBuilderList() {
        if (valuesBuilder_ != null) {
          return valuesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(values_);
        }
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public com.google.protobuf.Timestamp.Builder addValuesBuilder() {
        return internalGetValuesFieldBuilder().addBuilder(
            com.google.protobuf.Timestamp.getDefaultInstance());
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public com.google.protobuf.Timestamp.Builder addValuesBuilder(
          int index) {
        return internalGetValuesFieldBuilder().addBuilder(
            index, com.google.protobuf.Timestamp.getDefaultInstance());
      }
      /**
       * <code>repeated .google.protobuf.Timestamp values = 1;</code>
       */
      public java.util.List<com.google.protobuf.Timestamp.Builder> 
           getValuesBuilderList() {
        return internalGetValuesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetValuesFieldBuilder() {
        if (valuesBuilder_ == null) {
          valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  values_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          values_ = null;
        }
        return valuesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.TimestampArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.TimestampArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.TimestampArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.TimestampArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.TimestampArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<TimestampArray>
        PARSER = new com.google.protobuf.AbstractParser<TimestampArray>() {
      @java.lang.Override
      public TimestampArray 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<TimestampArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.TimestampArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RawArrayOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.RawArray)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated bytes values = 1;</code>
     * @return A list containing the values.
     */
    java.util.List<com.google.protobuf.ByteString> getValuesList();
    /**
     * <code>repeated bytes values = 1;</code>
     * @return The count of values.
     */
    int getValuesCount();
    /**
     * <code>repeated bytes values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    com.google.protobuf.ByteString getValues(int index);
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.RawArray}
   */
  public static final class RawArray extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.RawArray)
      RawArrayOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "RawArray");
    }
    // Use RawArray.newBuilder() to construct.
    private RawArray(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private RawArray() {
      values_ = emptyList(com.google.protobuf.ByteString.class);
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RawArray_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RawArray_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.RawArray.class, mxaccess_gateway.v1.MxaccessGateway.RawArray.Builder.class);
    }

    public static final int VALUES_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> values_ =
        emptyList(com.google.protobuf.ByteString.class);
    /**
     * <code>repeated bytes values = 1;</code>
     * @return A list containing the values.
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.ByteString>
        getValuesList() {
      return values_;
    }
    /**
     * <code>repeated bytes values = 1;</code>
     * @return The count of values.
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     * <code>repeated bytes values = 1;</code>
     * @param index The index of the element to return.
     * @return The values at the given index.
     */
    public com.google.protobuf.ByteString getValues(int index) {
      return values_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(values_.get(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      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 mxaccess_gateway.v1.MxaccessGateway.RawArray)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.RawArray other = (mxaccess_gateway.v1.MxaccessGateway.RawArray) obj;

      if (!getValuesList()
          .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray 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 mxaccess_gateway.v1.MxaccessGateway.RawArray parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RawArray 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 mxaccess_gateway.v1.MxaccessGateway.RawArray parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.RawArray 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(mxaccess_gateway.v1.MxaccessGateway.RawArray 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 mxaccess_gateway.v1.RawArray}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.RawArray)
        mxaccess_gateway.v1.MxaccessGateway.RawArrayOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RawArray_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RawArray_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.RawArray.class, mxaccess_gateway.v1.MxaccessGateway.RawArray.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.RawArray.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        values_ = emptyList(com.google.protobuf.ByteString.class);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_RawArray_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RawArray getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RawArray build() {
        mxaccess_gateway.v1.MxaccessGateway.RawArray result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.RawArray buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.RawArray result = new mxaccess_gateway.v1.MxaccessGateway.RawArray(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.RawArray result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          values_.makeImmutable();
          result.values_ = values_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.RawArray) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.RawArray)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.RawArray other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.RawArray.getDefaultInstance()) return this;
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            values_.makeImmutable();
            bitField0_ |= 0x00000001;
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          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: {
                com.google.protobuf.ByteString v = input.readBytes();
                ensureValuesIsMutable();
                values_.add(v);
                break;
              } // case 10
              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 com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> values_ = emptyList(com.google.protobuf.ByteString.class);
      private void ensureValuesIsMutable() {
        if (!values_.isModifiable()) {
          values_ = makeMutableCopy(values_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>repeated bytes values = 1;</code>
       * @return A list containing the values.
       */
      public java.util.List<com.google.protobuf.ByteString>
          getValuesList() {
        values_.makeImmutable();
        return values_;
      }
      /**
       * <code>repeated bytes values = 1;</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated bytes values = 1;</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public com.google.protobuf.ByteString getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated bytes values = 1;</code>
       * @param index The index to set the value at.
       * @param value The values to set.
       * @return This builder for chaining.
       */
      public Builder setValues(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.set(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes values = 1;</code>
       * @param value The values to add.
       * @return This builder for chaining.
       */
      public Builder addValues(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureValuesIsMutable();
        values_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes values = 1;</code>
       * @param values The values to add.
       * @return This builder for chaining.
       */
      public Builder addAllValues(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, values_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>repeated bytes values = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValues() {
        values_ = emptyList(com.google.protobuf.ByteString.class);
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.RawArray)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.RawArray)
    private static final mxaccess_gateway.v1.MxaccessGateway.RawArray DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.RawArray();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.RawArray getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RawArray>
        PARSER = new com.google.protobuf.AbstractParser<RawArray>() {
      @java.lang.Override
      public RawArray 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<RawArray> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.RawArray getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProtocolStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_gateway.v1.ProtocolStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
     * @return The enum numeric value on the wire for code.
     */
    int getCodeValue();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
     * @return The code.
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode getCode();

    /**
     * <code>string message = 2;</code>
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * <code>string message = 2;</code>
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * Protobuf type {@code mxaccess_gateway.v1.ProtocolStatus}
   */
  public static final class ProtocolStatus extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_gateway.v1.ProtocolStatus)
      ProtocolStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "ProtocolStatus");
    }
    // Use ProtocolStatus.newBuilder() to construct.
    private ProtocolStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private ProtocolStatus() {
      code_ = 0;
      message_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ProtocolStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ProtocolStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.class, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder.class);
    }

    public static final int CODE_FIELD_NUMBER = 1;
    private int code_ = 0;
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
     * @return The enum numeric value on the wire for code.
     */
    @java.lang.Override public int getCodeValue() {
      return code_;
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
     * @return The code.
     */
    @java.lang.Override public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode getCode() {
      mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode result = mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode.forNumber(code_);
      return result == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode.UNRECOGNIZED : result;
    }

    public static final int MESSAGE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object message_ = "";
    /**
     * <code>string message = 2;</code>
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      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();
        message_ = s;
        return s;
      }
    }
    /**
     * <code>string message = 2;</code>
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = 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 (code_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode.PROTOCOL_STATUS_CODE_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, code_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, message_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (code_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode.PROTOCOL_STATUS_CODE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, code_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, message_);
      }
      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 mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus)) {
        return super.equals(obj);
      }
      mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus other = (mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus) obj;

      if (code_ != other.code_) return false;
      if (!getMessage()
          .equals(other.getMessage())) 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();
      hash = (37 * hash) + CODE_FIELD_NUMBER;
      hash = (53 * hash) + code_;
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus 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 mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus 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 mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus 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(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus 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 mxaccess_gateway.v1.ProtocolStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_gateway.v1.ProtocolStatus)
        mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ProtocolStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ProtocolStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.class, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder.class);
      }

      // Construct using mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        code_ = 0;
        message_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_gateway.v1.MxaccessGateway.internal_static_mxaccess_gateway_v1_ProtocolStatus_descriptor;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getDefaultInstanceForType() {
        return mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus build() {
        mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus buildPartial() {
        mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus result = new mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.code_ = code_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.message_ = message_;
        }
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus) {
          return mergeFrom((mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus other) {
        if (other == mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance()) return this;
        if (other.code_ != 0) {
          setCodeValue(other.getCodeValue());
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          bitField0_ |= 0x00000002;
          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 8: {
                code_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                message_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              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 int code_ = 0;
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
       * @return The enum numeric value on the wire for code.
       */
      @java.lang.Override public int getCodeValue() {
        return code_;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
       * @param value The enum numeric value on the wire for code to set.
       * @return This builder for chaining.
       */
      public Builder setCodeValue(int value) {
        code_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
       * @return The code.
       */
      @java.lang.Override
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode getCode() {
        mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode result = mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode.forNumber(code_);
        return result == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
       * @param value The code to set.
       * @return This builder for chaining.
       */
      public Builder setCode(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusCode value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        code_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatusCode code = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        code_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * <code>string message = 2;</code>
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string message = 2;</code>
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string message = 2;</code>
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        message_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string message = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        message_ = getDefaultInstance().getMessage();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string message = 2;</code>
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        message_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_gateway.v1.ProtocolStatus)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_gateway.v1.ProtocolStatus)
    private static final mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus();
    }

    public static mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ProtocolStatus>
        PARSER = new com.google.protobuf.AbstractParser<ProtocolStatus>() {
      @java.lang.Override
      public ProtocolStatus 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<ProtocolStatus> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OpenSessionRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OpenSessionRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OpenSessionReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OpenSessionReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_CloseSessionRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_CloseSessionRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_CloseSessionReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_CloseSessionReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_StreamEventsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_StreamEventsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxCommandRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxCommandRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_RegisterCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_RegisterCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_UnregisterCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_UnregisterCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AddItemCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AddItemCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AddItem2Command_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AddItem2Command_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_RemoveItemCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_RemoveItemCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AdviseCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AdviseCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_UnAdviseCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_UnAdviseCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_SuspendCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_SuspendCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ActivateCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ActivateCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_Write2Command_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_Write2Command_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteSecuredCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteSecuredCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteSecured2Command_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteSecured2Command_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AddItemBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AddItemBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteBulkEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteBulkEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_Write2BulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_Write2BulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_Write2BulkEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_Write2BulkEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ReadBulkCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ReadBulkCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_PingCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_PingCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_GetSessionStateCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_GetSessionStateCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_DrainEventsCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_DrainEventsCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxCommandReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxCommandReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_RegisterReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_RegisterReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AddItemReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AddItemReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AddItem2Reply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AddItem2Reply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AddBufferedItemReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AddBufferedItemReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_SuspendReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_SuspendReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ActivateReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ActivateReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AuthenticateUserReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AuthenticateUserReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_SubscribeResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_SubscribeResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_BulkSubscribeReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_BulkSubscribeReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_BulkWriteResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_BulkWriteResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_BulkWriteReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_BulkWriteReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_BulkReadResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_BulkReadResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_BulkReadReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_BulkReadReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_SessionStateReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_SessionStateReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_WorkerInfoReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_WorkerInfoReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_DrainEventsReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_DrainEventsReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ReplayGap_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ReplayGap_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OnDataChangeEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OnDataChangeEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OperationCompleteEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OperationCompleteEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AlarmFeedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AlarmFeedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AlarmProviderStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AlarmProviderStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxStatusProxy_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxStatusProxy_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxSparseArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxSparseArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_MxSparseElement_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_MxSparseElement_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_BoolArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_BoolArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_Int32Array_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_Int32Array_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_Int64Array_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_Int64Array_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_FloatArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_FloatArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_DoubleArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_DoubleArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_StringArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_StringArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_TimestampArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_TimestampArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_RawArray_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_RawArray_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_gateway_v1_ProtocolStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_gateway_v1_ProtocolStatus_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\026mxaccess_gateway.proto\022\023mxaccess_gatew" +
      "ay.v1\032\036google/protobuf/duration.proto\032\037g" +
      "oogle/protobuf/timestamp.proto\"j\n\030QueryA" +
      "ctiveAlarmsRequest\022\022\n\nsession_id\030\001 \001(\t\022\035" +
      "\n\025client_correlation_id\030\002 \001(\t\022\033\n\023alarm_f" +
      "ilter_prefix\030\003 \001(\t\"\237\001\n\022OpenSessionReques" +
      "t\022\031\n\021requested_backend\030\001 \001(\t\022\033\n\023client_s" +
      "ession_name\030\002 \001(\t\022\035\n\025client_correlation_" +
      "id\030\003 \001(\t\0222\n\017command_timeout\030\004 \001(\0132\031.goog" +
      "le.protobuf.Duration\"\252\002\n\020OpenSessionRepl" +
      "y\022\022\n\nsession_id\030\001 \001(\t\022\024\n\014backend_name\030\002 " +
      "\001(\t\022\031\n\021worker_process_id\030\003 \001(\005\022\037\n\027worker" +
      "_protocol_version\030\004 \001(\r\022\024\n\014capabilities\030" +
      "\005 \003(\t\022:\n\027default_command_timeout\030\006 \001(\0132\031" +
      ".google.protobuf.Duration\022<\n\017protocol_st" +
      "atus\030\007 \001(\0132#.mxaccess_gateway.v1.Protoco" +
      "lStatus\022 \n\030gateway_protocol_version\030\010 \001(" +
      "\r\"H\n\023CloseSessionRequest\022\022\n\nsession_id\030\001" +
      " \001(\t\022\035\n\025client_correlation_id\030\002 \001(\t\"\235\001\n\021" +
      "CloseSessionReply\022\022\n\nsession_id\030\001 \001(\t\0226\n" +
      "\013final_state\030\002 \001(\0162!.mxaccess_gateway.v1" +
      ".SessionState\022<\n\017protocol_status\030\003 \001(\0132#" +
      ".mxaccess_gateway.v1.ProtocolStatus\"H\n\023S" +
      "treamEventsRequest\022\022\n\nsession_id\030\001 \001(\t\022\035" +
      "\n\025after_worker_sequence\030\002 \001(\004\"v\n\020MxComma" +
      "ndRequest\022\022\n\nsession_id\030\001 \001(\t\022\035\n\025client_" +
      "correlation_id\030\002 \001(\t\022/\n\007command\030\003 \001(\0132\036." +
      "mxaccess_gateway.v1.MxCommand\"\300\025\n\tMxComm" +
      "and\0220\n\004kind\030\001 \001(\0162\".mxaccess_gateway.v1." +
      "MxCommandKind\0228\n\010register\030\n \001(\0132$.mxacce" +
      "ss_gateway.v1.RegisterCommandH\000\022<\n\nunreg" +
      "ister\030\013 \001(\0132&.mxaccess_gateway.v1.Unregi" +
      "sterCommandH\000\0227\n\010add_item\030\014 \001(\0132#.mxacce" +
      "ss_gateway.v1.AddItemCommandH\000\0229\n\tadd_it" +
      "em2\030\r \001(\0132$.mxaccess_gateway.v1.AddItem2" +
      "CommandH\000\022=\n\013remove_item\030\016 \001(\0132&.mxacces" +
      "s_gateway.v1.RemoveItemCommandH\000\0224\n\006advi" +
      "se\030\017 \001(\0132\".mxaccess_gateway.v1.AdviseCom" +
      "mandH\000\0229\n\tun_advise\030\020 \001(\0132$.mxaccess_gat" +
      "eway.v1.UnAdviseCommandH\000\022K\n\022advise_supe" +
      "rvisory\030\021 \001(\0132-.mxaccess_gateway.v1.Advi" +
      "seSupervisoryCommandH\000\022H\n\021add_buffered_i" +
      "tem\030\022 \001(\0132+.mxaccess_gateway.v1.AddBuffe" +
      "redItemCommandH\000\022]\n\034set_buffered_update_" +
      "interval\030\023 \001(\01325.mxaccess_gateway.v1.Set" +
      "BufferedUpdateIntervalCommandH\000\0226\n\007suspe" +
      "nd\030\024 \001(\0132#.mxaccess_gateway.v1.SuspendCo" +
      "mmandH\000\0228\n\010activate\030\025 \001(\0132$.mxaccess_gat" +
      "eway.v1.ActivateCommandH\000\0222\n\005write\030\026 \001(\013" +
      "2!.mxaccess_gateway.v1.WriteCommandH\000\0224\n" +
      "\006write2\030\027 \001(\0132\".mxaccess_gateway.v1.Writ" +
      "e2CommandH\000\022A\n\rwrite_secured\030\030 \001(\0132(.mxa" +
      "ccess_gateway.v1.WriteSecuredCommandH\000\022C" +
      "\n\016write_secured2\030\031 \001(\0132).mxaccess_gatewa" +
      "y.v1.WriteSecured2CommandH\000\022I\n\021authentic" +
      "ate_user\030\032 \001(\0132,.mxaccess_gateway.v1.Aut" +
      "henticateUserCommandH\000\022M\n\024archestra_user" +
      "_to_id\030\033 \001(\0132-.mxaccess_gateway.v1.Arche" +
      "strAUserToIdCommandH\000\022@\n\radd_item_bulk\030\034" +
      " \001(\0132\'.mxaccess_gateway.v1.AddItemBulkCo" +
      "mmandH\000\022F\n\020advise_item_bulk\030\035 \001(\0132*.mxac" +
      "cess_gateway.v1.AdviseItemBulkCommandH\000\022" +
      "F\n\020remove_item_bulk\030\036 \001(\0132*.mxaccess_gat" +
      "eway.v1.RemoveItemBulkCommandH\000\022K\n\023un_ad" +
      "vise_item_bulk\030\037 \001(\0132,.mxaccess_gateway." +
      "v1.UnAdviseItemBulkCommandH\000\022C\n\016subscrib" +
      "e_bulk\030  \001(\0132).mxaccess_gateway.v1.Subsc" +
      "ribeBulkCommandH\000\022G\n\020unsubscribe_bulk\030! " +
      "\001(\0132+.mxaccess_gateway.v1.UnsubscribeBul" +
      "kCommandH\000\022G\n\020subscribe_alarms\030\" \001(\0132+.m" +
      "xaccess_gateway.v1.SubscribeAlarmsComman" +
      "dH\000\022K\n\022unsubscribe_alarms\030# \001(\0132-.mxacce" +
      "ss_gateway.v1.UnsubscribeAlarmsCommandH\000" +
      "\022Q\n\031acknowledge_alarm_command\030$ \001(\0132,.mx" +
      "access_gateway.v1.AcknowledgeAlarmComman" +
      "dH\000\022T\n\033query_active_alarms_command\030% \001(\013" +
      "2-.mxaccess_gateway.v1.QueryActiveAlarms" +
      "CommandH\000\022_\n!acknowledge_alarm_by_name_c" +
      "ommand\030& \001(\01322.mxaccess_gateway.v1.Ackno" +
      "wledgeAlarmByNameCommandH\000\022;\n\nwrite_bulk" +
      "\030\' \001(\0132%.mxaccess_gateway.v1.WriteBulkCo" +
      "mmandH\000\022=\n\013write2_bulk\030( \001(\0132&.mxaccess_" +
      "gateway.v1.Write2BulkCommandH\000\022J\n\022write_" +
      "secured_bulk\030) \001(\0132,.mxaccess_gateway.v1" +
      ".WriteSecuredBulkCommandH\000\022L\n\023write_secu" +
      "red2_bulk\030* \001(\0132-.mxaccess_gateway.v1.Wr" +
      "iteSecured2BulkCommandH\000\0229\n\tread_bulk\030+ " +
      "\001(\0132$.mxaccess_gateway.v1.ReadBulkComman" +
      "dH\000\0220\n\004ping\030d \001(\0132 .mxaccess_gateway.v1." +
      "PingCommandH\000\022H\n\021get_session_state\030e \001(\013" +
      "2+.mxaccess_gateway.v1.GetSessionStateCo" +
      "mmandH\000\022D\n\017get_worker_info\030f \001(\0132).mxacc" +
      "ess_gateway.v1.GetWorkerInfoCommandH\000\022?\n" +
      "\014drain_events\030g \001(\0132\'.mxaccess_gateway.v" +
      "1.DrainEventsCommandH\000\022E\n\017shutdown_worke" +
      "r\030h \001(\0132*.mxaccess_gateway.v1.ShutdownWo" +
      "rkerCommandH\000B\t\n\007payload\"&\n\017RegisterComm" +
      "and\022\023\n\013client_name\030\001 \001(\t\"*\n\021UnregisterCo" +
      "mmand\022\025\n\rserver_handle\030\001 \001(\005\"@\n\016AddItemC" +
      "ommand\022\025\n\rserver_handle\030\001 \001(\005\022\027\n\017item_de" +
      "finition\030\002 \001(\t\"W\n\017AddItem2Command\022\025\n\rser" +
      "ver_handle\030\001 \001(\005\022\027\n\017item_definition\030\002 \001(" +
      "\t\022\024\n\014item_context\030\003 \001(\t\"?\n\021RemoveItemCom" +
      "mand\022\025\n\rserver_handle\030\001 \001(\005\022\023\n\013item_hand" +
      "le\030\002 \001(\005\";\n\rAdviseCommand\022\025\n\rserver_hand" +
      "le\030\001 \001(\005\022\023\n\013item_handle\030\002 \001(\005\"=\n\017UnAdvis" +
      "eCommand\022\025\n\rserver_handle\030\001 \001(\005\022\023\n\013item_" +
      "handle\030\002 \001(\005\"F\n\030AdviseSupervisoryCommand" +
      "\022\025\n\rserver_handle\030\001 \001(\005\022\023\n\013item_handle\030\002" +
      " \001(\005\"^\n\026AddBufferedItemCommand\022\025\n\rserver" +
      "_handle\030\001 \001(\005\022\027\n\017item_definition\030\002 \001(\t\022\024" +
      "\n\014item_context\030\003 \001(\t\"_\n SetBufferedUpdat" +
      "eIntervalCommand\022\025\n\rserver_handle\030\001 \001(\005\022" +
      "$\n\034update_interval_milliseconds\030\002 \001(\005\"<\n" +
      "\016SuspendCommand\022\025\n\rserver_handle\030\001 \001(\005\022\023" +
      "\n\013item_handle\030\002 \001(\005\"=\n\017ActivateCommand\022\025" +
      "\n\rserver_handle\030\001 \001(\005\022\023\n\013item_handle\030\002 \001" +
      "(\005\"x\n\014WriteCommand\022\025\n\rserver_handle\030\001 \001(" +
      "\005\022\023\n\013item_handle\030\002 \001(\005\022+\n\005value\030\003 \001(\0132\034." +
      "mxaccess_gateway.v1.MxValue\022\017\n\007user_id\030\004" +
      " \001(\005\"\260\001\n\rWrite2Command\022\025\n\rserver_handle\030" +
      "\001 \001(\005\022\023\n\013item_handle\030\002 \001(\005\022+\n\005value\030\003 \001(" +
      "\0132\034.mxaccess_gateway.v1.MxValue\0225\n\017times" +
      "tamp_value\030\004 \001(\0132\034.mxaccess_gateway.v1.M" +
      "xValue\022\017\n\007user_id\030\005 \001(\005\"\241\001\n\023WriteSecured" +
      "Command\022\025\n\rserver_handle\030\001 \001(\005\022\023\n\013item_h" +
      "andle\030\002 \001(\005\022\027\n\017current_user_id\030\003 \001(\005\022\030\n\020" +
      "verifier_user_id\030\004 \001(\005\022+\n\005value\030\005 \001(\0132\034." +
      "mxaccess_gateway.v1.MxValue\"\331\001\n\024WriteSec" +
      "ured2Command\022\025\n\rserver_handle\030\001 \001(\005\022\023\n\013i" +
      "tem_handle\030\002 \001(\005\022\027\n\017current_user_id\030\003 \001(" +
      "\005\022\030\n\020verifier_user_id\030\004 \001(\005\022+\n\005value\030\005 \001" +
      "(\0132\034.mxaccess_gateway.v1.MxValue\0225\n\017time" +
      "stamp_value\030\006 \001(\0132\034.mxaccess_gateway.v1." +
      "MxValue\"c\n\027AuthenticateUserCommand\022\025\n\rse" +
      "rver_handle\030\001 \001(\005\022\023\n\013verify_user\030\002 \001(\t\022\034" +
      "\n\024verify_user_password\030\003 \001(\t\"G\n\030Archestr" +
      "AUserToIdCommand\022\025\n\rserver_handle\030\001 \001(\005\022" +
      "\024\n\014user_id_guid\030\002 \001(\t\"B\n\022AddItemBulkComm" +
      "and\022\025\n\rserver_handle\030\001 \001(\005\022\025\n\rtag_addres" +
      "ses\030\002 \003(\t\"D\n\025AdviseItemBulkCommand\022\025\n\rse" +
      "rver_handle\030\001 \001(\005\022\024\n\014item_handles\030\002 \003(\005\"" +
      "D\n\025RemoveItemBulkCommand\022\025\n\rserver_handl" +
      "e\030\001 \001(\005\022\024\n\014item_handles\030\002 \003(\005\"F\n\027UnAdvis" +
      "eItemBulkCommand\022\025\n\rserver_handle\030\001 \001(\005\022" +
      "\024\n\014item_handles\030\002 \003(\005\"D\n\024SubscribeBulkCo" +
      "mmand\022\025\n\rserver_handle\030\001 \001(\005\022\025\n\rtag_addr" +
      "esses\030\002 \003(\t\"\356\001\n\026SubscribeAlarmsCommand\022\037" +
      "\n\027subscription_expression\030\001 \001(\t\022;\n\013force" +
      "d_mode\030\002 \001(\0162&.mxaccess_gateway.v1.Alarm" +
      "ProviderMode\022:\n\nwatch_list\030\003 \003(\0132&.mxacc" +
      "ess_gateway.v1.AlarmSubtagTarget\022:\n\010fail" +
      "over\030\004 \001(\0132(.mxaccess_gateway.v1.AlarmFa" +
      "iloverConfig\"\032\n\030UnsubscribeAlarmsCommand" +
      "\"\264\001\n\021AlarmSubtagTarget\022\034\n\024alarm_full_ref" +
      "erence\030\001 \001(\t\022\037\n\027source_object_reference\030" +
      "\002 \001(\t\022\025\n\ractive_subtag\030\003 \001(\t\022\024\n\014acked_su" +
      "btag\030\004 \001(\t\022\032\n\022ack_comment_subtag\030\005 \001(\t\022\027" +
      "\n\017priority_subtag\030\006 \001(\t\"\205\001\n\023AlarmFailove" +
      "rConfig\022%\n\035consecutive_failure_threshold" +
      "\030\001 \001(\005\022\'\n\037failback_probe_interval_second" +
      "s\030\002 \001(\005\022\036\n\026failback_stable_probes\030\003 \001(\005\"" +
      "\241\001\n\027AcknowledgeAlarmCommand\022\022\n\nalarm_gui" +
      "d\030\001 \001(\t\022\017\n\007comment\030\002 \001(\t\022\025\n\roperator_use" +
      "r\030\003 \001(\t\022\025\n\roperator_node\030\004 \001(\t\022\027\n\017operat" +
      "or_domain\030\005 \001(\t\022\032\n\022operator_full_name\030\006 " +
      "\001(\t\"7\n\030QueryActiveAlarmsCommand\022\033\n\023alarm" +
      "_filter_prefix\030\001 \001(\t\"\322\001\n\035AcknowledgeAlar" +
      "mByNameCommand\022\022\n\nalarm_name\030\001 \001(\t\022\025\n\rpr" +
      "ovider_name\030\002 \001(\t\022\022\n\ngroup_name\030\003 \001(\t\022\017\n" +
      "\007comment\030\004 \001(\t\022\025\n\roperator_user\030\005 \001(\t\022\025\n" +
      "\roperator_node\030\006 \001(\t\022\027\n\017operator_domain\030" +
      "\007 \001(\t\022\032\n\022operator_full_name\030\010 \001(\t\"E\n\026Uns" +
      "ubscribeBulkCommand\022\025\n\rserver_handle\030\001 \001" +
      "(\005\022\024\n\014item_handles\030\002 \003(\005\"_\n\020WriteBulkCom" +
      "mand\022\025\n\rserver_handle\030\001 \001(\005\0224\n\007entries\030\002" +
      " \003(\0132#.mxaccess_gateway.v1.WriteBulkEntr" +
      "y\"c\n\016WriteBulkEntry\022\023\n\013item_handle\030\001 \001(\005" +
      "\022+\n\005value\030\002 \001(\0132\034.mxaccess_gateway.v1.Mx" +
      "Value\022\017\n\007user_id\030\003 \001(\005\"a\n\021Write2BulkComm" +
      "and\022\025\n\rserver_handle\030\001 \001(\005\0225\n\007entries\030\002 " +
      "\003(\0132$.mxaccess_gateway.v1.Write2BulkEntr" +
      "y\"\233\001\n\017Write2BulkEntry\022\023\n\013item_handle\030\001 \001" +
      "(\005\022+\n\005value\030\002 \001(\0132\034.mxaccess_gateway.v1." +
      "MxValue\0225\n\017timestamp_value\030\003 \001(\0132\034.mxacc" +
      "ess_gateway.v1.MxValue\022\017\n\007user_id\030\004 \001(\005\"" +
      "m\n\027WriteSecuredBulkCommand\022\025\n\rserver_han" +
      "dle\030\001 \001(\005\022;\n\007entries\030\002 \003(\0132*.mxaccess_ga" +
      "teway.v1.WriteSecuredBulkEntry\"\214\001\n\025Write" +
      "SecuredBulkEntry\022\023\n\013item_handle\030\001 \001(\005\022\027\n" +
      "\017current_user_id\030\002 \001(\005\022\030\n\020verifier_user_" +
      "id\030\003 \001(\005\022+\n\005value\030\004 \001(\0132\034.mxaccess_gatew" +
      "ay.v1.MxValue\"o\n\030WriteSecured2BulkComman" +
      "d\022\025\n\rserver_handle\030\001 \001(\005\022<\n\007entries\030\002 \003(" +
      "\0132+.mxaccess_gateway.v1.WriteSecured2Bul" +
      "kEntry\"\304\001\n\026WriteSecured2BulkEntry\022\023\n\013ite" +
      "m_handle\030\001 \001(\005\022\027\n\017current_user_id\030\002 \001(\005\022" +
      "\030\n\020verifier_user_id\030\003 \001(\005\022+\n\005value\030\004 \001(\013" +
      "2\034.mxaccess_gateway.v1.MxValue\0225\n\017timest" +
      "amp_value\030\005 \001(\0132\034.mxaccess_gateway.v1.Mx" +
      "Value\"S\n\017ReadBulkCommand\022\025\n\rserver_handl" +
      "e\030\001 \001(\005\022\025\n\rtag_addresses\030\002 \003(\t\022\022\n\ntimeou" +
      "t_ms\030\003 \001(\r\"\036\n\013PingCommand\022\017\n\007message\030\001 \001" +
      "(\t\"\030\n\026GetSessionStateCommand\"\026\n\024GetWorke" +
      "rInfoCommand\"(\n\022DrainEventsCommand\022\022\n\nma" +
      "x_events\030\001 \001(\r\"H\n\025ShutdownWorkerCommand\022" +
      "/\n\014grace_period\030\001 \001(\0132\031.google.protobuf." +
      "Duration\"\206\017\n\016MxCommandReply\022\022\n\nsession_i" +
      "d\030\001 \001(\t\022\026\n\016correlation_id\030\002 \001(\t\0220\n\004kind\030" +
      "\003 \001(\0162\".mxaccess_gateway.v1.MxCommandKin" +
      "d\022<\n\017protocol_status\030\004 \001(\0132#.mxaccess_ga" +
      "teway.v1.ProtocolStatus\022\024\n\007hresult\030\005 \001(\005" +
      "H\001\210\001\001\0222\n\014return_value\030\006 \001(\0132\034.mxaccess_g" +
      "ateway.v1.MxValue\0224\n\010statuses\030\007 \003(\0132\".mx" +
      "access_gateway.v1.MxStatusProxy\022\032\n\022diagn" +
      "ostic_message\030\010 \001(\t\0226\n\010register\030\024 \001(\0132\"." +
      "mxaccess_gateway.v1.RegisterReplyH\000\0225\n\010a" +
      "dd_item\030\025 \001(\0132!.mxaccess_gateway.v1.AddI" +
      "temReplyH\000\0227\n\tadd_item2\030\026 \001(\0132\".mxaccess" +
      "_gateway.v1.AddItem2ReplyH\000\022F\n\021add_buffe" +
      "red_item\030\027 \001(\0132).mxaccess_gateway.v1.Add" +
      "BufferedItemReplyH\000\0224\n\007suspend\030\030 \001(\0132!.m" +
      "xaccess_gateway.v1.SuspendReplyH\000\0226\n\010act" +
      "ivate\030\031 \001(\0132\".mxaccess_gateway.v1.Activa" +
      "teReplyH\000\022G\n\021authenticate_user\030\032 \001(\0132*.m" +
      "xaccess_gateway.v1.AuthenticateUserReply" +
      "H\000\022K\n\024archestra_user_to_id\030\033 \001(\0132+.mxacc" +
      "ess_gateway.v1.ArchestrAUserToIdReplyH\000\022" +
      "@\n\radd_item_bulk\030\034 \001(\0132\'.mxaccess_gatewa" +
      "y.v1.BulkSubscribeReplyH\000\022C\n\020advise_item" +
      "_bulk\030\035 \001(\0132\'.mxaccess_gateway.v1.BulkSu" +
      "bscribeReplyH\000\022C\n\020remove_item_bulk\030\036 \001(\013" +
      "2\'.mxaccess_gateway.v1.BulkSubscribeRepl" +
      "yH\000\022F\n\023un_advise_item_bulk\030\037 \001(\0132\'.mxacc" +
      "ess_gateway.v1.BulkSubscribeReplyH\000\022A\n\016s" +
      "ubscribe_bulk\030  \001(\0132\'.mxaccess_gateway.v" +
      "1.BulkSubscribeReplyH\000\022C\n\020unsubscribe_bu" +
      "lk\030! \001(\0132\'.mxaccess_gateway.v1.BulkSubsc" +
      "ribeReplyH\000\022N\n\021acknowledge_alarm\030\" \001(\01321" +
      ".mxaccess_gateway.v1.AcknowledgeAlarmRep" +
      "lyPayloadH\000\022Q\n\023query_active_alarms\030# \001(\013" +
      "22.mxaccess_gateway.v1.QueryActiveAlarms" +
      "ReplyPayloadH\000\0229\n\nwrite_bulk\030$ \001(\0132#.mxa" +
      "ccess_gateway.v1.BulkWriteReplyH\000\022:\n\013wri" +
      "te2_bulk\030% \001(\0132#.mxaccess_gateway.v1.Bul" +
      "kWriteReplyH\000\022A\n\022write_secured_bulk\030& \001(" +
      "\0132#.mxaccess_gateway.v1.BulkWriteReplyH\000" +
      "\022B\n\023write_secured2_bulk\030\' \001(\0132#.mxaccess" +
      "_gateway.v1.BulkWriteReplyH\000\0227\n\tread_bul" +
      "k\030( \001(\0132\".mxaccess_gateway.v1.BulkReadRe" +
      "plyH\000\022?\n\rsession_state\030d \001(\0132&.mxaccess_" +
      "gateway.v1.SessionStateReplyH\000\022;\n\013worker" +
      "_info\030e \001(\0132$.mxaccess_gateway.v1.Worker" +
      "InfoReplyH\000\022=\n\014drain_events\030f \001(\0132%.mxac" +
      "cess_gateway.v1.DrainEventsReplyH\000B\t\n\007pa" +
      "yloadB\n\n\010_hresult\"&\n\rRegisterReply\022\025\n\rse" +
      "rver_handle\030\001 \001(\005\"#\n\014AddItemReply\022\023\n\013ite" +
      "m_handle\030\001 \001(\005\"$\n\rAddItem2Reply\022\023\n\013item_" +
      "handle\030\001 \001(\005\"+\n\024AddBufferedItemReply\022\023\n\013" +
      "item_handle\030\001 \001(\005\"B\n\014SuspendReply\0222\n\006sta" +
      "tus\030\001 \001(\0132\".mxaccess_gateway.v1.MxStatus" +
      "Proxy\"C\n\rActivateReply\0222\n\006status\030\001 \001(\0132\"" +
      ".mxaccess_gateway.v1.MxStatusProxy\"(\n\025Au" +
      "thenticateUserReply\022\017\n\007user_id\030\001 \001(\005\")\n\026" +
      "ArchestrAUserToIdReply\022\017\n\007user_id\030\001 \001(\005\"" +
      "\201\001\n\017SubscribeResult\022\025\n\rserver_handle\030\001 \001" +
      "(\005\022\023\n\013tag_address\030\002 \001(\t\022\023\n\013item_handle\030\003" +
      " \001(\005\022\026\n\016was_successful\030\004 \001(\010\022\025\n\rerror_me" +
      "ssage\030\005 \001(\t\"K\n\022BulkSubscribeReply\0225\n\007res" +
      "ults\030\001 \003(\0132$.mxaccess_gateway.v1.Subscri" +
      "beResult\"\304\001\n\017BulkWriteResult\022\025\n\rserver_h" +
      "andle\030\001 \001(\005\022\023\n\013item_handle\030\002 \001(\005\022\026\n\016was_" +
      "successful\030\003 \001(\010\022\024\n\007hresult\030\004 \001(\005H\000\210\001\001\0224" +
      "\n\010statuses\030\005 \003(\0132\".mxaccess_gateway.v1.M" +
      "xStatusProxy\022\025\n\rerror_message\030\006 \001(\tB\n\n\010_" +
      "hresult\"G\n\016BulkWriteReply\0225\n\007results\030\001 \003" +
      "(\0132$.mxaccess_gateway.v1.BulkWriteResult" +
      "\"\276\002\n\016BulkReadResult\022\025\n\rserver_handle\030\001 \001" +
      "(\005\022\023\n\013tag_address\030\002 \001(\t\022\023\n\013item_handle\030\003" +
      " \001(\005\022\026\n\016was_successful\030\004 \001(\010\022\022\n\nwas_cach" +
      "ed\030\005 \001(\010\022+\n\005value\030\006 \001(\0132\034.mxaccess_gatew" +
      "ay.v1.MxValue\022\017\n\007quality\030\007 \001(\005\0224\n\020source" +
      "_timestamp\030\010 \001(\0132\032.google.protobuf.Times" +
      "tamp\0224\n\010statuses\030\t \003(\0132\".mxaccess_gatewa" +
      "y.v1.MxStatusProxy\022\025\n\rerror_message\030\n \001(" +
      "\t\"E\n\rBulkReadReply\0224\n\007results\030\001 \003(\0132#.mx" +
      "access_gateway.v1.BulkReadResult\"E\n\021Sess" +
      "ionStateReply\0220\n\005state\030\001 \001(\0162!.mxaccess_" +
      "gateway.v1.SessionState\"u\n\017WorkerInfoRep" +
      "ly\022\031\n\021worker_process_id\030\001 \001(\005\022\026\n\016worker_" +
      "version\030\002 \001(\t\022\027\n\017mxaccess_progid\030\003 \001(\t\022\026" +
      "\n\016mxaccess_clsid\030\004 \001(\t\"@\n\020DrainEventsRep" +
      "ly\022,\n\006events\030\001 \003(\0132\034.mxaccess_gateway.v1" +
      ".MxEvent\"5\n\034AcknowledgeAlarmReplyPayload" +
      "\022\025\n\rnative_status\030\001 \001(\005\"x\n\035QueryActiveAl" +
      "armsReplyPayload\022;\n\tsnapshots\030\001 \003(\0132(.mx" +
      "access_gateway.v1.ActiveAlarmSnapshot\022\032\n" +
      "\022snapshot_truncated\030\002 \001(\010\"\217\010\n\007MxEvent\0222\n" +
      "\006family\030\001 \001(\0162\".mxaccess_gateway.v1.MxEv" +
      "entFamily\022\022\n\nsession_id\030\002 \001(\t\022\025\n\rserver_" +
      "handle\030\003 \001(\005\022\023\n\013item_handle\030\004 \001(\005\022+\n\005val" +
      "ue\030\005 \001(\0132\034.mxaccess_gateway.v1.MxValue\022\017" +
      "\n\007quality\030\006 \001(\005\0224\n\020source_timestamp\030\007 \001(" +
      "\0132\032.google.protobuf.Timestamp\0224\n\010statuse" +
      "s\030\010 \003(\0132\".mxaccess_gateway.v1.MxStatusPr" +
      "oxy\022\027\n\017worker_sequence\030\t \001(\004\0224\n\020worker_t" +
      "imestamp\030\n \001(\0132\032.google.protobuf.Timesta" +
      "mp\022=\n\031gateway_receive_timestamp\030\013 \001(\0132\032." +
      "google.protobuf.Timestamp\022\024\n\007hresult\030\014 \001" +
      "(\005H\001\210\001\001\022\022\n\nraw_status\030\r \001(\t\0227\n\nreplay_ga" +
      "p\030\016 \001(\0132\036.mxaccess_gateway.v1.ReplayGapH" +
      "\002\210\001\001\022@\n\016on_data_change\030\024 \001(\0132&.mxaccess_" +
      "gateway.v1.OnDataChangeEventH\000\022F\n\021on_wri" +
      "te_complete\030\025 \001(\0132).mxaccess_gateway.v1." +
      "OnWriteCompleteEventH\000\022I\n\022operation_comp" +
      "lete\030\026 \001(\0132+.mxaccess_gateway.v1.Operati" +
      "onCompleteEventH\000\022Q\n\027on_buffered_data_ch" +
      "ange\030\027 \001(\0132..mxaccess_gateway.v1.OnBuffe" +
      "redDataChangeEventH\000\022J\n\023on_alarm_transit" +
      "ion\030\030 \001(\0132+.mxaccess_gateway.v1.OnAlarmT" +
      "ransitionEventH\000\022^\n\036on_alarm_provider_mo" +
      "de_changed\030\031 \001(\01324.mxaccess_gateway.v1.O" +
      "nAlarmProviderModeChangedEventH\000B\006\n\004body" +
      "B\n\n\010_hresultB\r\n\013_replay_gap\"P\n\tReplayGap" +
      "\022 \n\030requested_after_sequence\030\001 \001(\004\022!\n\031ol" +
      "dest_available_sequence\030\002 \001(\004\"\023\n\021OnDataC" +
      "hangeEvent\"\026\n\024OnWriteCompleteEvent\"\030\n\026Op" +
      "erationCompleteEvent\"\324\001\n\031OnBufferedDataC" +
      "hangeEvent\0222\n\tdata_type\030\001 \001(\0162\037.mxaccess" +
      "_gateway.v1.MxDataType\0224\n\016quality_values" +
      "\030\002 \001(\0132\034.mxaccess_gateway.v1.MxArray\0226\n\020" +
      "timestamp_values\030\003 \001(\0132\034.mxaccess_gatewa" +
      "y.v1.MxArray\022\025\n\rraw_data_type\030\004 \001(\005\"\320\004\n\026" +
      "OnAlarmTransitionEvent\022\034\n\024alarm_full_ref" +
      "erence\030\001 \001(\t\022\037\n\027source_object_reference\030" +
      "\002 \001(\t\022\027\n\017alarm_type_name\030\003 \001(\t\022A\n\017transi" +
      "tion_kind\030\004 \001(\0162(.mxaccess_gateway.v1.Al" +
      "armTransitionKind\022\020\n\010severity\030\005 \001(\005\022<\n\030o" +
      "riginal_raise_timestamp\030\006 \001(\0132\032.google.p" +
      "rotobuf.Timestamp\0228\n\024transition_timestam" +
      "p\030\007 \001(\0132\032.google.protobuf.Timestamp\022\025\n\ro" +
      "perator_user\030\010 \001(\t\022\030\n\020operator_comment\030\t" +
      " \001(\t\022\020\n\010category\030\n \001(\t\022\023\n\013description\030\013 " +
      "\001(\t\0223\n\rcurrent_value\030\014 \001(\0132\034.mxaccess_ga" +
      "teway.v1.MxValue\0221\n\013limit_value\030\r \001(\0132\034." +
      "mxaccess_gateway.v1.MxValue\022\020\n\010degraded\030" +
      "\016 \001(\010\022?\n\017source_provider\030\017 \001(\0162&.mxacces" +
      "s_gateway.v1.AlarmProviderMode\"\240\001\n\037OnAla" +
      "rmProviderModeChangedEvent\0224\n\004mode\030\001 \001(\016" +
      "2&.mxaccess_gateway.v1.AlarmProviderMode" +
      "\022\016\n\006reason\030\002 \001(\t\022\017\n\007hresult\030\003 \001(\005\022&\n\002at\030" +
      "\004 \001(\0132\032.google.protobuf.Timestamp\"\361\004\n\023Ac" +
      "tiveAlarmSnapshot\022\034\n\024alarm_full_referenc" +
      "e\030\001 \001(\t\022\037\n\027source_object_reference\030\002 \001(\t" +
      "\022\027\n\017alarm_type_name\030\003 \001(\t\022\020\n\010severity\030\004 " +
      "\001(\005\022<\n\030original_raise_timestamp\030\005 \001(\0132\032." +
      "google.protobuf.Timestamp\022?\n\rcurrent_sta" +
      "te\030\006 \001(\0162(.mxaccess_gateway.v1.AlarmCond" +
      "itionState\022\020\n\010category\030\007 \001(\t\022\023\n\013descript" +
      "ion\030\010 \001(\t\022=\n\031last_transition_timestamp\030\t" +
      " \001(\0132\032.google.protobuf.Timestamp\022\025\n\roper" +
      "ator_user\030\n \001(\t\022\030\n\020operator_comment\030\013 \001(" +
      "\t\0223\n\rcurrent_value\030\014 \001(\0132\034.mxaccess_gate" +
      "way.v1.MxValue\0221\n\013limit_value\030\r \001(\0132\034.mx" +
      "access_gateway.v1.MxValue\022\020\n\010degraded\030\016 " +
      "\001(\010\022?\n\017source_provider\030\017 \001(\0162&.mxaccess_" +
      "gateway.v1.AlarmProviderMode\022\037\n\027from_tru" +
      "ncated_snapshot\030\020 \001(\010\"\220\001\n\027AcknowledgeAla" +
      "rmRequest\022\035\n\025client_correlation_id\030\002 \001(\t" +
      "\022\034\n\024alarm_full_reference\030\003 \001(\t\022\017\n\007commen" +
      "t\030\004 \001(\t\022\025\n\roperator_user\030\005 \001(\tJ\004\010\001\020\002R\nse" +
      "ssion_id\"\361\001\n\025AcknowledgeAlarmReply\022\026\n\016co" +
      "rrelation_id\030\002 \001(\t\022<\n\017protocol_status\030\003 " +
      "\001(\0132#.mxaccess_gateway.v1.ProtocolStatus" +
      "\022\024\n\007hresult\030\004 \001(\005H\000\210\001\001\0222\n\006status\030\005 \001(\0132\"" +
      ".mxaccess_gateway.v1.MxStatusProxy\022\032\n\022di" +
      "agnostic_message\030\006 \001(\tB\n\n\010_hresultJ\004\010\001\020\002" +
      "R\nsession_id\"Q\n\023StreamAlarmsRequest\022\035\n\025c" +
      "lient_correlation_id\030\001 \001(\t\022\033\n\023alarm_filt" +
      "er_prefix\030\002 \001(\t\"\311\002\n\020AlarmFeedMessage\022@\n\014" +
      "active_alarm\030\001 \001(\0132(.mxaccess_gateway.v1" +
      ".ActiveAlarmSnapshotH\000\022\033\n\021snapshot_compl" +
      "ete\030\002 \001(\010H\000\022A\n\ntransition\030\003 \001(\0132+.mxacce" +
      "ss_gateway.v1.OnAlarmTransitionEventH\000\022C" +
      "\n\017provider_status\030\004 \001(\0132(.mxaccess_gatew" +
      "ay.v1.AlarmProviderStatusH\000\022C\n\017snapshot_" +
      "status\030\005 \001(\0132(.mxaccess_gateway.v1.Alarm" +
      "SnapshotStatusH\000B\t\n\007payload\"\230\001\n\023AlarmPro" +
      "viderStatus\0224\n\004mode\030\001 \001(\0162&.mxaccess_gat" +
      "eway.v1.AlarmProviderMode\022\020\n\010degraded\030\002 " +
      "\001(\010\022\016\n\006reason\030\003 \001(\t\022)\n\005since\030\004 \001(\0132\032.goo" +
      "gle.protobuf.Timestamp\"(\n\023AlarmSnapshotS" +
      "tatus\022\021\n\ttruncated\030\001 \001(\010\"\353\001\n\rMxStatusPro" +
      "xy\022\017\n\007success\030\001 \001(\005\0227\n\010category\030\002 \001(\0162%." +
      "mxaccess_gateway.v1.MxStatusCategory\0228\n\013" +
      "detected_by\030\003 \001(\0162#.mxaccess_gateway.v1." +
      "MxStatusSource\022\016\n\006detail\030\004 \001(\005\022\024\n\014raw_ca" +
      "tegory\030\005 \001(\005\022\027\n\017raw_detected_by\030\006 \001(\005\022\027\n" +
      "\017diagnostic_text\030\007 \001(\t\"\351\003\n\007MxValue\0222\n\tda" +
      "ta_type\030\001 \001(\0162\037.mxaccess_gateway.v1.MxDa",
      "taType\022\024\n\014variant_type\030\002 \001(\t\022\017\n\007is_null\030" +
      "\003 \001(\010\022\026\n\016raw_diagnostic\030\004 \001(\t\022\025\n\rraw_dat" +
      "a_type\030\005 \001(\005\022\024\n\nbool_value\030\n \001(\010H\000\022\025\n\013in" +
      "t32_value\030\013 \001(\005H\000\022\025\n\013int64_value\030\014 \001(\003H\000" +
      "\022\025\n\013float_value\030\r \001(\002H\000\022\026\n\014double_value\030" +
      "\016 \001(\001H\000\022\026\n\014string_value\030\017 \001(\tH\000\0225\n\017times" +
      "tamp_value\030\020 \001(\0132\032.google.protobuf.Times" +
      "tampH\000\0223\n\013array_value\030\021 \001(\0132\034.mxaccess_g" +
      "ateway.v1.MxArrayH\000\022\023\n\traw_value\030\022 \001(\014H\000" +
      "\022@\n\022sparse_array_value\030\023 \001(\0132\".mxaccess_" +
      "gateway.v1.MxSparseArrayH\000B\006\n\004kind\"\376\004\n\007M" +
      "xArray\022:\n\021element_data_type\030\001 \001(\0162\037.mxac" +
      "cess_gateway.v1.MxDataType\022\024\n\014variant_ty" +
      "pe\030\002 \001(\t\022\022\n\ndimensions\030\003 \003(\r\022\026\n\016raw_diag" +
      "nostic\030\004 \001(\t\022\035\n\025raw_element_data_type\030\005 " +
      "\001(\005\0225\n\013bool_values\030\n \001(\0132\036.mxaccess_gate" +
      "way.v1.BoolArrayH\000\0227\n\014int32_values\030\013 \001(\013" +
      "2\037.mxaccess_gateway.v1.Int32ArrayH\000\0227\n\014i" +
      "nt64_values\030\014 \001(\0132\037.mxaccess_gateway.v1." +
      "Int64ArrayH\000\0227\n\014float_values\030\r \001(\0132\037.mxa" +
      "ccess_gateway.v1.FloatArrayH\000\0229\n\rdouble_" +
      "values\030\016 \001(\0132 .mxaccess_gateway.v1.Doubl" +
      "eArrayH\000\0229\n\rstring_values\030\017 \001(\0132 .mxacce" +
      "ss_gateway.v1.StringArrayH\000\022?\n\020timestamp" +
      "_values\030\020 \001(\0132#.mxaccess_gateway.v1.Time" +
      "stampArrayH\000\0223\n\nraw_values\030\021 \001(\0132\035.mxacc" +
      "ess_gateway.v1.RawArrayH\000B\010\n\006values\"\231\001\n\r" +
      "MxSparseArray\022:\n\021element_data_type\030\001 \001(\016" +
      "2\037.mxaccess_gateway.v1.MxDataType\022\024\n\014tot" +
      "al_length\030\002 \001(\r\0226\n\010elements\030\003 \003(\0132$.mxac" +
      "cess_gateway.v1.MxSparseElement\"M\n\017MxSpa" +
      "rseElement\022\r\n\005index\030\001 \001(\r\022+\n\005value\030\002 \001(\013" +
      "2\034.mxaccess_gateway.v1.MxValue\"\033\n\tBoolAr" +
      "ray\022\016\n\006values\030\001 \003(\010\"\034\n\nInt32Array\022\016\n\006val" +
      "ues\030\001 \003(\005\"\034\n\nInt64Array\022\016\n\006values\030\001 \003(\003\"" +
      "\034\n\nFloatArray\022\016\n\006values\030\001 \003(\002\"\035\n\013DoubleA" +
      "rray\022\016\n\006values\030\001 \003(\001\"\035\n\013StringArray\022\016\n\006v" +
      "alues\030\001 \003(\t\"<\n\016TimestampArray\022*\n\006values\030" +
      "\001 \003(\0132\032.google.protobuf.Timestamp\"\032\n\010Raw" +
      "Array\022\016\n\006values\030\001 \003(\014\"X\n\016ProtocolStatus\022" +
      "5\n\004code\030\001 \001(\0162\'.mxaccess_gateway.v1.Prot" +
      "ocolStatusCode\022\017\n\007message\030\002 \001(\t*\237\013\n\rMxCo" +
      "mmandKind\022\037\n\033MX_COMMAND_KIND_UNSPECIFIED" +
      "\020\000\022\034\n\030MX_COMMAND_KIND_REGISTER\020\001\022\036\n\032MX_C" +
      "OMMAND_KIND_UNREGISTER\020\002\022\034\n\030MX_COMMAND_K" +
      "IND_ADD_ITEM\020\003\022\035\n\031MX_COMMAND_KIND_ADD_IT" +
      "EM2\020\004\022\037\n\033MX_COMMAND_KIND_REMOVE_ITEM\020\005\022\032" +
      "\n\026MX_COMMAND_KIND_ADVISE\020\006\022\035\n\031MX_COMMAND" +
      "_KIND_UN_ADVISE\020\007\022&\n\"MX_COMMAND_KIND_ADV" +
      "ISE_SUPERVISORY\020\010\022%\n!MX_COMMAND_KIND_ADD" +
      "_BUFFERED_ITEM\020\t\0220\n,MX_COMMAND_KIND_SET_" +
      "BUFFERED_UPDATE_INTERVAL\020\n\022\033\n\027MX_COMMAND" +
      "_KIND_SUSPEND\020\013\022\034\n\030MX_COMMAND_KIND_ACTIV" +
      "ATE\020\014\022\031\n\025MX_COMMAND_KIND_WRITE\020\r\022\032\n\026MX_C" +
      "OMMAND_KIND_WRITE2\020\016\022!\n\035MX_COMMAND_KIND_" +
      "WRITE_SECURED\020\017\022\"\n\036MX_COMMAND_KIND_WRITE" +
      "_SECURED2\020\020\022%\n!MX_COMMAND_KIND_AUTHENTIC" +
      "ATE_USER\020\021\022(\n$MX_COMMAND_KIND_ARCHESTRA_" +
      "USER_TO_ID\020\022\022!\n\035MX_COMMAND_KIND_ADD_ITEM" +
      "_BULK\020\023\022$\n MX_COMMAND_KIND_ADVISE_ITEM_B" +
      "ULK\020\024\022$\n MX_COMMAND_KIND_REMOVE_ITEM_BUL" +
      "K\020\025\022\'\n#MX_COMMAND_KIND_UN_ADVISE_ITEM_BU" +
      "LK\020\026\022\"\n\036MX_COMMAND_KIND_SUBSCRIBE_BULK\020\027" +
      "\022$\n MX_COMMAND_KIND_UNSUBSCRIBE_BULK\020\030\022$" +
      "\n MX_COMMAND_KIND_SUBSCRIBE_ALARMS\020\031\022&\n\"" +
      "MX_COMMAND_KIND_UNSUBSCRIBE_ALARMS\020\032\022%\n!" +
      "MX_COMMAND_KIND_ACKNOWLEDGE_ALARM\020\033\022\'\n#M" +
      "X_COMMAND_KIND_QUERY_ACTIVE_ALARMS\020\034\022-\n)" +
      "MX_COMMAND_KIND_ACKNOWLEDGE_ALARM_BY_NAM" +
      "E\020\035\022\036\n\032MX_COMMAND_KIND_WRITE_BULK\020\036\022\037\n\033M" +
      "X_COMMAND_KIND_WRITE2_BULK\020\037\022&\n\"MX_COMMA" +
      "ND_KIND_WRITE_SECURED_BULK\020 \022\'\n#MX_COMMA" +
      "ND_KIND_WRITE_SECURED2_BULK\020!\022\035\n\031MX_COMM" +
      "AND_KIND_READ_BULK\020\"\022\030\n\024MX_COMMAND_KIND_" +
      "PING\020d\022%\n!MX_COMMAND_KIND_GET_SESSION_ST" +
      "ATE\020e\022#\n\037MX_COMMAND_KIND_GET_WORKER_INFO" +
      "\020f\022 \n\034MX_COMMAND_KIND_DRAIN_EVENTS\020g\022#\n\037" +
      "MX_COMMAND_KIND_SHUTDOWN_WORKER\020h*z\n\021Ala" +
      "rmProviderMode\022#\n\037ALARM_PROVIDER_MODE_UN" +
      "SPECIFIED\020\000\022 \n\034ALARM_PROVIDER_MODE_ALARM" +
      "MGR\020\001\022\036\n\032ALARM_PROVIDER_MODE_SUBTAG\020\002*\255\002" +
      "\n\rMxEventFamily\022\037\n\033MX_EVENT_FAMILY_UNSPE" +
      "CIFIED\020\000\022\"\n\036MX_EVENT_FAMILY_ON_DATA_CHAN" +
      "GE\020\001\022%\n!MX_EVENT_FAMILY_ON_WRITE_COMPLET" +
      "E\020\002\022&\n\"MX_EVENT_FAMILY_OPERATION_COMPLET" +
      "E\020\003\022+\n\'MX_EVENT_FAMILY_ON_BUFFERED_DATA_" +
      "CHANGE\020\004\022\'\n#MX_EVENT_FAMILY_ON_ALARM_TRA" +
      "NSITION\020\005\0222\n.MX_EVENT_FAMILY_ON_ALARM_PR" +
      "OVIDER_MODE_CHANGED\020\006*\312\001\n\023AlarmTransitio" +
      "nKind\022%\n!ALARM_TRANSITION_KIND_UNSPECIFI" +
      "ED\020\000\022\037\n\033ALARM_TRANSITION_KIND_RAISE\020\001\022%\n" +
      "!ALARM_TRANSITION_KIND_ACKNOWLEDGE\020\002\022\037\n\033" +
      "ALARM_TRANSITION_KIND_CLEAR\020\003\022#\n\037ALARM_T" +
      "RANSITION_KIND_RETRIGGER\020\004*\252\001\n\023AlarmCond" +
      "itionState\022%\n!ALARM_CONDITION_STATE_UNSP" +
      "ECIFIED\020\000\022 \n\034ALARM_CONDITION_STATE_ACTIV" +
      "E\020\001\022&\n\"ALARM_CONDITION_STATE_ACTIVE_ACKE" +
      "D\020\002\022\"\n\036ALARM_CONDITION_STATE_INACTIVE\020\003*" +
      "\245\003\n\020MxStatusCategory\022\"\n\036MX_STATUS_CATEGO" +
      "RY_UNSPECIFIED\020\000\022\036\n\032MX_STATUS_CATEGORY_U" +
      "NKNOWN\020\001\022\031\n\025MX_STATUS_CATEGORY_OK\020\002\022\036\n\032M" +
      "X_STATUS_CATEGORY_PENDING\020\003\022\036\n\032MX_STATUS" +
      "_CATEGORY_WARNING\020\004\022*\n&MX_STATUS_CATEGOR" +
      "Y_COMMUNICATION_ERROR\020\005\022*\n&MX_STATUS_CAT" +
      "EGORY_CONFIGURATION_ERROR\020\006\022(\n$MX_STATUS" +
      "_CATEGORY_OPERATIONAL_ERROR\020\007\022%\n!MX_STAT" +
      "US_CATEGORY_SECURITY_ERROR\020\010\022%\n!MX_STATU" +
      "S_CATEGORY_SOFTWARE_ERROR\020\t\022\"\n\036MX_STATUS" +
      "_CATEGORY_OTHER_ERROR\020\n*\312\002\n\016MxStatusSour" +
      "ce\022 \n\034MX_STATUS_SOURCE_UNSPECIFIED\020\000\022\034\n\030" +
      "MX_STATUS_SOURCE_UNKNOWN\020\001\022#\n\037MX_STATUS_" +
      "SOURCE_REQUESTING_LMX\020\002\022#\n\037MX_STATUS_SOU" +
      "RCE_RESPONDING_LMX\020\003\022#\n\037MX_STATUS_SOURCE" +
      "_REQUESTING_NMX\020\004\022#\n\037MX_STATUS_SOURCE_RE" +
      "SPONDING_NMX\020\005\0221\n-MX_STATUS_SOURCE_REQUE" +
      "STING_AUTOMATION_OBJECT\020\006\0221\n-MX_STATUS_S" +
      "OURCE_RESPONDING_AUTOMATION_OBJECT\020\007*\335\004\n" +
      "\nMxDataType\022\034\n\030MX_DATA_TYPE_UNSPECIFIED\020" +
      "\000\022\030\n\024MX_DATA_TYPE_UNKNOWN\020\001\022\030\n\024MX_DATA_T" +
      "YPE_NO_DATA\020\002\022\030\n\024MX_DATA_TYPE_BOOLEAN\020\003\022" +
      "\030\n\024MX_DATA_TYPE_INTEGER\020\004\022\026\n\022MX_DATA_TYP" +
      "E_FLOAT\020\005\022\027\n\023MX_DATA_TYPE_DOUBLE\020\006\022\027\n\023MX" +
      "_DATA_TYPE_STRING\020\007\022\025\n\021MX_DATA_TYPE_TIME" +
      "\020\010\022\035\n\031MX_DATA_TYPE_ELAPSED_TIME\020\t\022\037\n\033MX_" +
      "DATA_TYPE_REFERENCE_TYPE\020\n\022\034\n\030MX_DATA_TY" +
      "PE_STATUS_TYPE\020\013\022\025\n\021MX_DATA_TYPE_ENUM\020\014\022" +
      "-\n)MX_DATA_TYPE_SECURITY_CLASSIFICATION_" +
      "ENUM\020\r\022\"\n\036MX_DATA_TYPE_DATA_QUALITY_TYPE" +
      "\020\016\022\037\n\033MX_DATA_TYPE_QUALIFIED_ENUM\020\017\022!\n\035M" +
      "X_DATA_TYPE_QUALIFIED_STRUCT\020\020\022)\n%MX_DAT" +
      "A_TYPE_INTERNATIONALIZED_STRING\020\021\022\033\n\027MX_" +
      "DATA_TYPE_BIG_STRING\020\022\022\024\n\020MX_DATA_TYPE_E" +
      "ND\020\023*\243\003\n\022ProtocolStatusCode\022$\n PROTOCOL_" +
      "STATUS_CODE_UNSPECIFIED\020\000\022\033\n\027PROTOCOL_ST" +
      "ATUS_CODE_OK\020\001\022(\n$PROTOCOL_STATUS_CODE_I" +
      "NVALID_REQUEST\020\002\022*\n&PROTOCOL_STATUS_CODE" +
      "_SESSION_NOT_FOUND\020\003\022*\n&PROTOCOL_STATUS_" +
      "CODE_SESSION_NOT_READY\020\004\022+\n\'PROTOCOL_STA" +
      "TUS_CODE_WORKER_UNAVAILABLE\020\005\022 \n\034PROTOCO" +
      "L_STATUS_CODE_TIMEOUT\020\006\022!\n\035PROTOCOL_STAT" +
      "US_CODE_CANCELED\020\007\022+\n\'PROTOCOL_STATUS_CO" +
      "DE_PROTOCOL_VIOLATION\020\010\022)\n%PROTOCOL_STAT" +
      "US_CODE_MXACCESS_FAILURE\020\t*\277\002\n\014SessionSt" +
      "ate\022\035\n\031SESSION_STATE_UNSPECIFIED\020\000\022\032\n\026SE" +
      "SSION_STATE_CREATING\020\001\022!\n\035SESSION_STATE_" +
      "STARTING_WORKER\020\002\022\"\n\036SESSION_STATE_WAITI" +
      "NG_FOR_PIPE\020\003\022\035\n\031SESSION_STATE_HANDSHAKI" +
      "NG\020\004\022%\n!SESSION_STATE_INITIALIZING_WORKE" +
      "R\020\005\022\027\n\023SESSION_STATE_READY\020\006\022\031\n\025SESSION_" +
      "STATE_CLOSING\020\007\022\030\n\024SESSION_STATE_CLOSED\020" +
      "\010\022\031\n\025SESSION_STATE_FAULTED\020\t2\303\005\n\017MxAcces" +
      "sGateway\022]\n\013OpenSession\022\'.mxaccess_gatew" +
      "ay.v1.OpenSessionRequest\032%.mxaccess_gate" +
      "way.v1.OpenSessionReply\022`\n\014CloseSession\022" +
      "(.mxaccess_gateway.v1.CloseSessionReques" +
      "t\032&.mxaccess_gateway.v1.CloseSessionRepl" +
      "y\022T\n\006Invoke\022%.mxaccess_gateway.v1.MxComm" +
      "andRequest\032#.mxaccess_gateway.v1.MxComma" +
      "ndReply\022X\n\014StreamEvents\022(.mxaccess_gatew" +
      "ay.v1.StreamEventsRequest\032\034.mxaccess_gat" +
      "eway.v1.MxEvent0\001\022l\n\020AcknowledgeAlarm\022,." +
      "mxaccess_gateway.v1.AcknowledgeAlarmRequ" +
      "est\032*.mxaccess_gateway.v1.AcknowledgeAla" +
      "rmReply\022a\n\014StreamAlarms\022(.mxaccess_gatew" +
      "ay.v1.StreamAlarmsRequest\032%.mxaccess_gat" +
      "eway.v1.AlarmFeedMessage0\001\022n\n\021QueryActiv" +
      "eAlarms\022-.mxaccess_gateway.v1.QueryActiv" +
      "eAlarmsRequest\032(.mxaccess_gateway.v1.Act" +
      "iveAlarmSnapshot0\001B&\252\002#ZB.MOM.WW.MxGatew" +
      "ay.Contracts.Protob\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.DurationProto.getDescriptor(),
          com.google.protobuf.TimestampProto.getDescriptor(),
        });
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_descriptor =
      getDescriptor().getMessageType(0);
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_QueryActiveAlarmsRequest_descriptor,
        new java.lang.String[] { "SessionId", "ClientCorrelationId", "AlarmFilterPrefix", });
    internal_static_mxaccess_gateway_v1_OpenSessionRequest_descriptor =
      getDescriptor().getMessageType(1);
    internal_static_mxaccess_gateway_v1_OpenSessionRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OpenSessionRequest_descriptor,
        new java.lang.String[] { "RequestedBackend", "ClientSessionName", "ClientCorrelationId", "CommandTimeout", });
    internal_static_mxaccess_gateway_v1_OpenSessionReply_descriptor =
      getDescriptor().getMessageType(2);
    internal_static_mxaccess_gateway_v1_OpenSessionReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OpenSessionReply_descriptor,
        new java.lang.String[] { "SessionId", "BackendName", "WorkerProcessId", "WorkerProtocolVersion", "Capabilities", "DefaultCommandTimeout", "ProtocolStatus", "GatewayProtocolVersion", });
    internal_static_mxaccess_gateway_v1_CloseSessionRequest_descriptor =
      getDescriptor().getMessageType(3);
    internal_static_mxaccess_gateway_v1_CloseSessionRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_CloseSessionRequest_descriptor,
        new java.lang.String[] { "SessionId", "ClientCorrelationId", });
    internal_static_mxaccess_gateway_v1_CloseSessionReply_descriptor =
      getDescriptor().getMessageType(4);
    internal_static_mxaccess_gateway_v1_CloseSessionReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_CloseSessionReply_descriptor,
        new java.lang.String[] { "SessionId", "FinalState", "ProtocolStatus", });
    internal_static_mxaccess_gateway_v1_StreamEventsRequest_descriptor =
      getDescriptor().getMessageType(5);
    internal_static_mxaccess_gateway_v1_StreamEventsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_StreamEventsRequest_descriptor,
        new java.lang.String[] { "SessionId", "AfterWorkerSequence", });
    internal_static_mxaccess_gateway_v1_MxCommandRequest_descriptor =
      getDescriptor().getMessageType(6);
    internal_static_mxaccess_gateway_v1_MxCommandRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxCommandRequest_descriptor,
        new java.lang.String[] { "SessionId", "ClientCorrelationId", "Command", });
    internal_static_mxaccess_gateway_v1_MxCommand_descriptor =
      getDescriptor().getMessageType(7);
    internal_static_mxaccess_gateway_v1_MxCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxCommand_descriptor,
        new java.lang.String[] { "Kind", "Register", "Unregister", "AddItem", "AddItem2", "RemoveItem", "Advise", "UnAdvise", "AdviseSupervisory", "AddBufferedItem", "SetBufferedUpdateInterval", "Suspend", "Activate", "Write", "Write2", "WriteSecured", "WriteSecured2", "AuthenticateUser", "ArchestraUserToId", "AddItemBulk", "AdviseItemBulk", "RemoveItemBulk", "UnAdviseItemBulk", "SubscribeBulk", "UnsubscribeBulk", "SubscribeAlarms", "UnsubscribeAlarms", "AcknowledgeAlarmCommand", "QueryActiveAlarmsCommand", "AcknowledgeAlarmByNameCommand", "WriteBulk", "Write2Bulk", "WriteSecuredBulk", "WriteSecured2Bulk", "ReadBulk", "Ping", "GetSessionState", "GetWorkerInfo", "DrainEvents", "ShutdownWorker", "Payload", });
    internal_static_mxaccess_gateway_v1_RegisterCommand_descriptor =
      getDescriptor().getMessageType(8);
    internal_static_mxaccess_gateway_v1_RegisterCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_RegisterCommand_descriptor,
        new java.lang.String[] { "ClientName", });
    internal_static_mxaccess_gateway_v1_UnregisterCommand_descriptor =
      getDescriptor().getMessageType(9);
    internal_static_mxaccess_gateway_v1_UnregisterCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_UnregisterCommand_descriptor,
        new java.lang.String[] { "ServerHandle", });
    internal_static_mxaccess_gateway_v1_AddItemCommand_descriptor =
      getDescriptor().getMessageType(10);
    internal_static_mxaccess_gateway_v1_AddItemCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AddItemCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemDefinition", });
    internal_static_mxaccess_gateway_v1_AddItem2Command_descriptor =
      getDescriptor().getMessageType(11);
    internal_static_mxaccess_gateway_v1_AddItem2Command_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AddItem2Command_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemDefinition", "ItemContext", });
    internal_static_mxaccess_gateway_v1_RemoveItemCommand_descriptor =
      getDescriptor().getMessageType(12);
    internal_static_mxaccess_gateway_v1_RemoveItemCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_RemoveItemCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", });
    internal_static_mxaccess_gateway_v1_AdviseCommand_descriptor =
      getDescriptor().getMessageType(13);
    internal_static_mxaccess_gateway_v1_AdviseCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AdviseCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", });
    internal_static_mxaccess_gateway_v1_UnAdviseCommand_descriptor =
      getDescriptor().getMessageType(14);
    internal_static_mxaccess_gateway_v1_UnAdviseCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_UnAdviseCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", });
    internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_descriptor =
      getDescriptor().getMessageType(15);
    internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AdviseSupervisoryCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", });
    internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_descriptor =
      getDescriptor().getMessageType(16);
    internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AddBufferedItemCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemDefinition", "ItemContext", });
    internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_descriptor =
      getDescriptor().getMessageType(17);
    internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_SetBufferedUpdateIntervalCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "UpdateIntervalMilliseconds", });
    internal_static_mxaccess_gateway_v1_SuspendCommand_descriptor =
      getDescriptor().getMessageType(18);
    internal_static_mxaccess_gateway_v1_SuspendCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_SuspendCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", });
    internal_static_mxaccess_gateway_v1_ActivateCommand_descriptor =
      getDescriptor().getMessageType(19);
    internal_static_mxaccess_gateway_v1_ActivateCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ActivateCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", });
    internal_static_mxaccess_gateway_v1_WriteCommand_descriptor =
      getDescriptor().getMessageType(20);
    internal_static_mxaccess_gateway_v1_WriteCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", "Value", "UserId", });
    internal_static_mxaccess_gateway_v1_Write2Command_descriptor =
      getDescriptor().getMessageType(21);
    internal_static_mxaccess_gateway_v1_Write2Command_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_Write2Command_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", "Value", "TimestampValue", "UserId", });
    internal_static_mxaccess_gateway_v1_WriteSecuredCommand_descriptor =
      getDescriptor().getMessageType(22);
    internal_static_mxaccess_gateway_v1_WriteSecuredCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteSecuredCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", "CurrentUserId", "VerifierUserId", "Value", });
    internal_static_mxaccess_gateway_v1_WriteSecured2Command_descriptor =
      getDescriptor().getMessageType(23);
    internal_static_mxaccess_gateway_v1_WriteSecured2Command_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteSecured2Command_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", "CurrentUserId", "VerifierUserId", "Value", "TimestampValue", });
    internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_descriptor =
      getDescriptor().getMessageType(24);
    internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AuthenticateUserCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "VerifyUser", "VerifyUserPassword", });
    internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_descriptor =
      getDescriptor().getMessageType(25);
    internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ArchestrAUserToIdCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "UserIdGuid", });
    internal_static_mxaccess_gateway_v1_AddItemBulkCommand_descriptor =
      getDescriptor().getMessageType(26);
    internal_static_mxaccess_gateway_v1_AddItemBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AddItemBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "TagAddresses", });
    internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_descriptor =
      getDescriptor().getMessageType(27);
    internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AdviseItemBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandles", });
    internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_descriptor =
      getDescriptor().getMessageType(28);
    internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_RemoveItemBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandles", });
    internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_descriptor =
      getDescriptor().getMessageType(29);
    internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_UnAdviseItemBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandles", });
    internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_descriptor =
      getDescriptor().getMessageType(30);
    internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_SubscribeBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "TagAddresses", });
    internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_descriptor =
      getDescriptor().getMessageType(31);
    internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_SubscribeAlarmsCommand_descriptor,
        new java.lang.String[] { "SubscriptionExpression", "ForcedMode", "WatchList", "Failover", });
    internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_descriptor =
      getDescriptor().getMessageType(32);
    internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_UnsubscribeAlarmsCommand_descriptor,
        new java.lang.String[] { });
    internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_descriptor =
      getDescriptor().getMessageType(33);
    internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AlarmSubtagTarget_descriptor,
        new java.lang.String[] { "AlarmFullReference", "SourceObjectReference", "ActiveSubtag", "AckedSubtag", "AckCommentSubtag", "PrioritySubtag", });
    internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_descriptor =
      getDescriptor().getMessageType(34);
    internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AlarmFailoverConfig_descriptor,
        new java.lang.String[] { "ConsecutiveFailureThreshold", "FailbackProbeIntervalSeconds", "FailbackStableProbes", });
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_descriptor =
      getDescriptor().getMessageType(35);
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AcknowledgeAlarmCommand_descriptor,
        new java.lang.String[] { "AlarmGuid", "Comment", "OperatorUser", "OperatorNode", "OperatorDomain", "OperatorFullName", });
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_descriptor =
      getDescriptor().getMessageType(36);
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_QueryActiveAlarmsCommand_descriptor,
        new java.lang.String[] { "AlarmFilterPrefix", });
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_descriptor =
      getDescriptor().getMessageType(37);
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AcknowledgeAlarmByNameCommand_descriptor,
        new java.lang.String[] { "AlarmName", "ProviderName", "GroupName", "Comment", "OperatorUser", "OperatorNode", "OperatorDomain", "OperatorFullName", });
    internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_descriptor =
      getDescriptor().getMessageType(38);
    internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_UnsubscribeBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandles", });
    internal_static_mxaccess_gateway_v1_WriteBulkCommand_descriptor =
      getDescriptor().getMessageType(39);
    internal_static_mxaccess_gateway_v1_WriteBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "Entries", });
    internal_static_mxaccess_gateway_v1_WriteBulkEntry_descriptor =
      getDescriptor().getMessageType(40);
    internal_static_mxaccess_gateway_v1_WriteBulkEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteBulkEntry_descriptor,
        new java.lang.String[] { "ItemHandle", "Value", "UserId", });
    internal_static_mxaccess_gateway_v1_Write2BulkCommand_descriptor =
      getDescriptor().getMessageType(41);
    internal_static_mxaccess_gateway_v1_Write2BulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_Write2BulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "Entries", });
    internal_static_mxaccess_gateway_v1_Write2BulkEntry_descriptor =
      getDescriptor().getMessageType(42);
    internal_static_mxaccess_gateway_v1_Write2BulkEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_Write2BulkEntry_descriptor,
        new java.lang.String[] { "ItemHandle", "Value", "TimestampValue", "UserId", });
    internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_descriptor =
      getDescriptor().getMessageType(43);
    internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteSecuredBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "Entries", });
    internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_descriptor =
      getDescriptor().getMessageType(44);
    internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteSecuredBulkEntry_descriptor,
        new java.lang.String[] { "ItemHandle", "CurrentUserId", "VerifierUserId", "Value", });
    internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_descriptor =
      getDescriptor().getMessageType(45);
    internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteSecured2BulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "Entries", });
    internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_descriptor =
      getDescriptor().getMessageType(46);
    internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WriteSecured2BulkEntry_descriptor,
        new java.lang.String[] { "ItemHandle", "CurrentUserId", "VerifierUserId", "Value", "TimestampValue", });
    internal_static_mxaccess_gateway_v1_ReadBulkCommand_descriptor =
      getDescriptor().getMessageType(47);
    internal_static_mxaccess_gateway_v1_ReadBulkCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ReadBulkCommand_descriptor,
        new java.lang.String[] { "ServerHandle", "TagAddresses", "TimeoutMs", });
    internal_static_mxaccess_gateway_v1_PingCommand_descriptor =
      getDescriptor().getMessageType(48);
    internal_static_mxaccess_gateway_v1_PingCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_PingCommand_descriptor,
        new java.lang.String[] { "Message", });
    internal_static_mxaccess_gateway_v1_GetSessionStateCommand_descriptor =
      getDescriptor().getMessageType(49);
    internal_static_mxaccess_gateway_v1_GetSessionStateCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_GetSessionStateCommand_descriptor,
        new java.lang.String[] { });
    internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_descriptor =
      getDescriptor().getMessageType(50);
    internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_GetWorkerInfoCommand_descriptor,
        new java.lang.String[] { });
    internal_static_mxaccess_gateway_v1_DrainEventsCommand_descriptor =
      getDescriptor().getMessageType(51);
    internal_static_mxaccess_gateway_v1_DrainEventsCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_DrainEventsCommand_descriptor,
        new java.lang.String[] { "MaxEvents", });
    internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_descriptor =
      getDescriptor().getMessageType(52);
    internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ShutdownWorkerCommand_descriptor,
        new java.lang.String[] { "GracePeriod", });
    internal_static_mxaccess_gateway_v1_MxCommandReply_descriptor =
      getDescriptor().getMessageType(53);
    internal_static_mxaccess_gateway_v1_MxCommandReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxCommandReply_descriptor,
        new java.lang.String[] { "SessionId", "CorrelationId", "Kind", "ProtocolStatus", "Hresult", "ReturnValue", "Statuses", "DiagnosticMessage", "Register", "AddItem", "AddItem2", "AddBufferedItem", "Suspend", "Activate", "AuthenticateUser", "ArchestraUserToId", "AddItemBulk", "AdviseItemBulk", "RemoveItemBulk", "UnAdviseItemBulk", "SubscribeBulk", "UnsubscribeBulk", "AcknowledgeAlarm", "QueryActiveAlarms", "WriteBulk", "Write2Bulk", "WriteSecuredBulk", "WriteSecured2Bulk", "ReadBulk", "SessionState", "WorkerInfo", "DrainEvents", "Payload", });
    internal_static_mxaccess_gateway_v1_RegisterReply_descriptor =
      getDescriptor().getMessageType(54);
    internal_static_mxaccess_gateway_v1_RegisterReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_RegisterReply_descriptor,
        new java.lang.String[] { "ServerHandle", });
    internal_static_mxaccess_gateway_v1_AddItemReply_descriptor =
      getDescriptor().getMessageType(55);
    internal_static_mxaccess_gateway_v1_AddItemReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AddItemReply_descriptor,
        new java.lang.String[] { "ItemHandle", });
    internal_static_mxaccess_gateway_v1_AddItem2Reply_descriptor =
      getDescriptor().getMessageType(56);
    internal_static_mxaccess_gateway_v1_AddItem2Reply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AddItem2Reply_descriptor,
        new java.lang.String[] { "ItemHandle", });
    internal_static_mxaccess_gateway_v1_AddBufferedItemReply_descriptor =
      getDescriptor().getMessageType(57);
    internal_static_mxaccess_gateway_v1_AddBufferedItemReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AddBufferedItemReply_descriptor,
        new java.lang.String[] { "ItemHandle", });
    internal_static_mxaccess_gateway_v1_SuspendReply_descriptor =
      getDescriptor().getMessageType(58);
    internal_static_mxaccess_gateway_v1_SuspendReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_SuspendReply_descriptor,
        new java.lang.String[] { "Status", });
    internal_static_mxaccess_gateway_v1_ActivateReply_descriptor =
      getDescriptor().getMessageType(59);
    internal_static_mxaccess_gateway_v1_ActivateReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ActivateReply_descriptor,
        new java.lang.String[] { "Status", });
    internal_static_mxaccess_gateway_v1_AuthenticateUserReply_descriptor =
      getDescriptor().getMessageType(60);
    internal_static_mxaccess_gateway_v1_AuthenticateUserReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AuthenticateUserReply_descriptor,
        new java.lang.String[] { "UserId", });
    internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_descriptor =
      getDescriptor().getMessageType(61);
    internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ArchestrAUserToIdReply_descriptor,
        new java.lang.String[] { "UserId", });
    internal_static_mxaccess_gateway_v1_SubscribeResult_descriptor =
      getDescriptor().getMessageType(62);
    internal_static_mxaccess_gateway_v1_SubscribeResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_SubscribeResult_descriptor,
        new java.lang.String[] { "ServerHandle", "TagAddress", "ItemHandle", "WasSuccessful", "ErrorMessage", });
    internal_static_mxaccess_gateway_v1_BulkSubscribeReply_descriptor =
      getDescriptor().getMessageType(63);
    internal_static_mxaccess_gateway_v1_BulkSubscribeReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_BulkSubscribeReply_descriptor,
        new java.lang.String[] { "Results", });
    internal_static_mxaccess_gateway_v1_BulkWriteResult_descriptor =
      getDescriptor().getMessageType(64);
    internal_static_mxaccess_gateway_v1_BulkWriteResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_BulkWriteResult_descriptor,
        new java.lang.String[] { "ServerHandle", "ItemHandle", "WasSuccessful", "Hresult", "Statuses", "ErrorMessage", });
    internal_static_mxaccess_gateway_v1_BulkWriteReply_descriptor =
      getDescriptor().getMessageType(65);
    internal_static_mxaccess_gateway_v1_BulkWriteReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_BulkWriteReply_descriptor,
        new java.lang.String[] { "Results", });
    internal_static_mxaccess_gateway_v1_BulkReadResult_descriptor =
      getDescriptor().getMessageType(66);
    internal_static_mxaccess_gateway_v1_BulkReadResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_BulkReadResult_descriptor,
        new java.lang.String[] { "ServerHandle", "TagAddress", "ItemHandle", "WasSuccessful", "WasCached", "Value", "Quality", "SourceTimestamp", "Statuses", "ErrorMessage", });
    internal_static_mxaccess_gateway_v1_BulkReadReply_descriptor =
      getDescriptor().getMessageType(67);
    internal_static_mxaccess_gateway_v1_BulkReadReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_BulkReadReply_descriptor,
        new java.lang.String[] { "Results", });
    internal_static_mxaccess_gateway_v1_SessionStateReply_descriptor =
      getDescriptor().getMessageType(68);
    internal_static_mxaccess_gateway_v1_SessionStateReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_SessionStateReply_descriptor,
        new java.lang.String[] { "State", });
    internal_static_mxaccess_gateway_v1_WorkerInfoReply_descriptor =
      getDescriptor().getMessageType(69);
    internal_static_mxaccess_gateway_v1_WorkerInfoReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_WorkerInfoReply_descriptor,
        new java.lang.String[] { "WorkerProcessId", "WorkerVersion", "MxaccessProgid", "MxaccessClsid", });
    internal_static_mxaccess_gateway_v1_DrainEventsReply_descriptor =
      getDescriptor().getMessageType(70);
    internal_static_mxaccess_gateway_v1_DrainEventsReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_DrainEventsReply_descriptor,
        new java.lang.String[] { "Events", });
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_descriptor =
      getDescriptor().getMessageType(71);
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReplyPayload_descriptor,
        new java.lang.String[] { "NativeStatus", });
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_descriptor =
      getDescriptor().getMessageType(72);
    internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_QueryActiveAlarmsReplyPayload_descriptor,
        new java.lang.String[] { "Snapshots", "SnapshotTruncated", });
    internal_static_mxaccess_gateway_v1_MxEvent_descriptor =
      getDescriptor().getMessageType(73);
    internal_static_mxaccess_gateway_v1_MxEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxEvent_descriptor,
        new java.lang.String[] { "Family", "SessionId", "ServerHandle", "ItemHandle", "Value", "Quality", "SourceTimestamp", "Statuses", "WorkerSequence", "WorkerTimestamp", "GatewayReceiveTimestamp", "Hresult", "RawStatus", "ReplayGap", "OnDataChange", "OnWriteComplete", "OperationComplete", "OnBufferedDataChange", "OnAlarmTransition", "OnAlarmProviderModeChanged", "Body", });
    internal_static_mxaccess_gateway_v1_ReplayGap_descriptor =
      getDescriptor().getMessageType(74);
    internal_static_mxaccess_gateway_v1_ReplayGap_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ReplayGap_descriptor,
        new java.lang.String[] { "RequestedAfterSequence", "OldestAvailableSequence", });
    internal_static_mxaccess_gateway_v1_OnDataChangeEvent_descriptor =
      getDescriptor().getMessageType(75);
    internal_static_mxaccess_gateway_v1_OnDataChangeEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OnDataChangeEvent_descriptor,
        new java.lang.String[] { });
    internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_descriptor =
      getDescriptor().getMessageType(76);
    internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OnWriteCompleteEvent_descriptor,
        new java.lang.String[] { });
    internal_static_mxaccess_gateway_v1_OperationCompleteEvent_descriptor =
      getDescriptor().getMessageType(77);
    internal_static_mxaccess_gateway_v1_OperationCompleteEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OperationCompleteEvent_descriptor,
        new java.lang.String[] { });
    internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_descriptor =
      getDescriptor().getMessageType(78);
    internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OnBufferedDataChangeEvent_descriptor,
        new java.lang.String[] { "DataType", "QualityValues", "TimestampValues", "RawDataType", });
    internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_descriptor =
      getDescriptor().getMessageType(79);
    internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OnAlarmTransitionEvent_descriptor,
        new java.lang.String[] { "AlarmFullReference", "SourceObjectReference", "AlarmTypeName", "TransitionKind", "Severity", "OriginalRaiseTimestamp", "TransitionTimestamp", "OperatorUser", "OperatorComment", "Category", "Description", "CurrentValue", "LimitValue", "Degraded", "SourceProvider", });
    internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_descriptor =
      getDescriptor().getMessageType(80);
    internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_OnAlarmProviderModeChangedEvent_descriptor,
        new java.lang.String[] { "Mode", "Reason", "Hresult", "At", });
    internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_descriptor =
      getDescriptor().getMessageType(81);
    internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ActiveAlarmSnapshot_descriptor,
        new java.lang.String[] { "AlarmFullReference", "SourceObjectReference", "AlarmTypeName", "Severity", "OriginalRaiseTimestamp", "CurrentState", "Category", "Description", "LastTransitionTimestamp", "OperatorUser", "OperatorComment", "CurrentValue", "LimitValue", "Degraded", "SourceProvider", "FromTruncatedSnapshot", });
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_descriptor =
      getDescriptor().getMessageType(82);
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AcknowledgeAlarmRequest_descriptor,
        new java.lang.String[] { "ClientCorrelationId", "AlarmFullReference", "Comment", "OperatorUser", });
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_descriptor =
      getDescriptor().getMessageType(83);
    internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AcknowledgeAlarmReply_descriptor,
        new java.lang.String[] { "CorrelationId", "ProtocolStatus", "Hresult", "Status", "DiagnosticMessage", });
    internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_descriptor =
      getDescriptor().getMessageType(84);
    internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_StreamAlarmsRequest_descriptor,
        new java.lang.String[] { "ClientCorrelationId", "AlarmFilterPrefix", });
    internal_static_mxaccess_gateway_v1_AlarmFeedMessage_descriptor =
      getDescriptor().getMessageType(85);
    internal_static_mxaccess_gateway_v1_AlarmFeedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AlarmFeedMessage_descriptor,
        new java.lang.String[] { "ActiveAlarm", "SnapshotComplete", "Transition", "ProviderStatus", "SnapshotStatus", "Payload", });
    internal_static_mxaccess_gateway_v1_AlarmProviderStatus_descriptor =
      getDescriptor().getMessageType(86);
    internal_static_mxaccess_gateway_v1_AlarmProviderStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AlarmProviderStatus_descriptor,
        new java.lang.String[] { "Mode", "Degraded", "Reason", "Since", });
    internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_descriptor =
      getDescriptor().getMessageType(87);
    internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_AlarmSnapshotStatus_descriptor,
        new java.lang.String[] { "Truncated", });
    internal_static_mxaccess_gateway_v1_MxStatusProxy_descriptor =
      getDescriptor().getMessageType(88);
    internal_static_mxaccess_gateway_v1_MxStatusProxy_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxStatusProxy_descriptor,
        new java.lang.String[] { "Success", "Category", "DetectedBy", "Detail", "RawCategory", "RawDetectedBy", "DiagnosticText", });
    internal_static_mxaccess_gateway_v1_MxValue_descriptor =
      getDescriptor().getMessageType(89);
    internal_static_mxaccess_gateway_v1_MxValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxValue_descriptor,
        new java.lang.String[] { "DataType", "VariantType", "IsNull", "RawDiagnostic", "RawDataType", "BoolValue", "Int32Value", "Int64Value", "FloatValue", "DoubleValue", "StringValue", "TimestampValue", "ArrayValue", "RawValue", "SparseArrayValue", "Kind", });
    internal_static_mxaccess_gateway_v1_MxArray_descriptor =
      getDescriptor().getMessageType(90);
    internal_static_mxaccess_gateway_v1_MxArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxArray_descriptor,
        new java.lang.String[] { "ElementDataType", "VariantType", "Dimensions", "RawDiagnostic", "RawElementDataType", "BoolValues", "Int32Values", "Int64Values", "FloatValues", "DoubleValues", "StringValues", "TimestampValues", "RawValues", "Values", });
    internal_static_mxaccess_gateway_v1_MxSparseArray_descriptor =
      getDescriptor().getMessageType(91);
    internal_static_mxaccess_gateway_v1_MxSparseArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxSparseArray_descriptor,
        new java.lang.String[] { "ElementDataType", "TotalLength", "Elements", });
    internal_static_mxaccess_gateway_v1_MxSparseElement_descriptor =
      getDescriptor().getMessageType(92);
    internal_static_mxaccess_gateway_v1_MxSparseElement_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_MxSparseElement_descriptor,
        new java.lang.String[] { "Index", "Value", });
    internal_static_mxaccess_gateway_v1_BoolArray_descriptor =
      getDescriptor().getMessageType(93);
    internal_static_mxaccess_gateway_v1_BoolArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_BoolArray_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_Int32Array_descriptor =
      getDescriptor().getMessageType(94);
    internal_static_mxaccess_gateway_v1_Int32Array_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_Int32Array_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_Int64Array_descriptor =
      getDescriptor().getMessageType(95);
    internal_static_mxaccess_gateway_v1_Int64Array_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_Int64Array_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_FloatArray_descriptor =
      getDescriptor().getMessageType(96);
    internal_static_mxaccess_gateway_v1_FloatArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_FloatArray_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_DoubleArray_descriptor =
      getDescriptor().getMessageType(97);
    internal_static_mxaccess_gateway_v1_DoubleArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_DoubleArray_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_StringArray_descriptor =
      getDescriptor().getMessageType(98);
    internal_static_mxaccess_gateway_v1_StringArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_StringArray_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_TimestampArray_descriptor =
      getDescriptor().getMessageType(99);
    internal_static_mxaccess_gateway_v1_TimestampArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_TimestampArray_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_RawArray_descriptor =
      getDescriptor().getMessageType(100);
    internal_static_mxaccess_gateway_v1_RawArray_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_RawArray_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_mxaccess_gateway_v1_ProtocolStatus_descriptor =
      getDescriptor().getMessageType(101);
    internal_static_mxaccess_gateway_v1_ProtocolStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_gateway_v1_ProtocolStatus_descriptor,
        new java.lang.String[] { "Code", "Message", });
    descriptor.resolveAllFeaturesImmutable();
    com.google.protobuf.DurationProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
