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

package mxaccess_worker.v1;

@com.google.protobuf.Generated
public final class MxaccessWorker extends com.google.protobuf.GeneratedFile {
  private MxaccessWorker() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 33,
      /* patch= */ 1,
      /* suffix= */ "",
      "MxaccessWorker");
  }
  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_worker.v1.WorkerState}
   */
  public enum WorkerState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>WORKER_STATE_UNSPECIFIED = 0;</code>
     */
    WORKER_STATE_UNSPECIFIED(0),
    /**
     * <code>WORKER_STATE_STARTING = 1;</code>
     */
    WORKER_STATE_STARTING(1),
    /**
     * <code>WORKER_STATE_HANDSHAKING = 2;</code>
     */
    WORKER_STATE_HANDSHAKING(2),
    /**
     * <code>WORKER_STATE_INITIALIZING_STA = 3;</code>
     */
    WORKER_STATE_INITIALIZING_STA(3),
    /**
     * <code>WORKER_STATE_READY = 4;</code>
     */
    WORKER_STATE_READY(4),
    /**
     * <code>WORKER_STATE_EXECUTING_COMMAND = 5;</code>
     */
    WORKER_STATE_EXECUTING_COMMAND(5),
    /**
     * <code>WORKER_STATE_SHUTTING_DOWN = 6;</code>
     */
    WORKER_STATE_SHUTTING_DOWN(6),
    /**
     * <code>WORKER_STATE_STOPPED = 7;</code>
     */
    WORKER_STATE_STOPPED(7),
    /**
     * <code>WORKER_STATE_FAULTED = 8;</code>
     */
    WORKER_STATE_FAULTED(8),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WorkerState");
    }
    /**
     * <code>WORKER_STATE_UNSPECIFIED = 0;</code>
     */
    public static final int WORKER_STATE_UNSPECIFIED_VALUE = 0;
    /**
     * <code>WORKER_STATE_STARTING = 1;</code>
     */
    public static final int WORKER_STATE_STARTING_VALUE = 1;
    /**
     * <code>WORKER_STATE_HANDSHAKING = 2;</code>
     */
    public static final int WORKER_STATE_HANDSHAKING_VALUE = 2;
    /**
     * <code>WORKER_STATE_INITIALIZING_STA = 3;</code>
     */
    public static final int WORKER_STATE_INITIALIZING_STA_VALUE = 3;
    /**
     * <code>WORKER_STATE_READY = 4;</code>
     */
    public static final int WORKER_STATE_READY_VALUE = 4;
    /**
     * <code>WORKER_STATE_EXECUTING_COMMAND = 5;</code>
     */
    public static final int WORKER_STATE_EXECUTING_COMMAND_VALUE = 5;
    /**
     * <code>WORKER_STATE_SHUTTING_DOWN = 6;</code>
     */
    public static final int WORKER_STATE_SHUTTING_DOWN_VALUE = 6;
    /**
     * <code>WORKER_STATE_STOPPED = 7;</code>
     */
    public static final int WORKER_STATE_STOPPED_VALUE = 7;
    /**
     * <code>WORKER_STATE_FAULTED = 8;</code>
     */
    public static final int WORKER_STATE_FAULTED_VALUE = 8;


    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 WorkerState 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 WorkerState forNumber(int value) {
      switch (value) {
        case 0: return WORKER_STATE_UNSPECIFIED;
        case 1: return WORKER_STATE_STARTING;
        case 2: return WORKER_STATE_HANDSHAKING;
        case 3: return WORKER_STATE_INITIALIZING_STA;
        case 4: return WORKER_STATE_READY;
        case 5: return WORKER_STATE_EXECUTING_COMMAND;
        case 6: return WORKER_STATE_SHUTTING_DOWN;
        case 7: return WORKER_STATE_STOPPED;
        case 8: return WORKER_STATE_FAULTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<WorkerState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        WorkerState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<WorkerState>() {
            public WorkerState findValueByNumber(int number) {
              return WorkerState.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_worker.v1.MxaccessWorker.getDescriptor().getEnumTypes().get(0);
    }

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

    public static WorkerState 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 WorkerState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:mxaccess_worker.v1.WorkerState)
  }

  /**
   * Protobuf enum {@code mxaccess_worker.v1.WorkerFaultCategory}
   */
  public enum WorkerFaultCategory
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>WORKER_FAULT_CATEGORY_UNSPECIFIED = 0;</code>
     */
    WORKER_FAULT_CATEGORY_UNSPECIFIED(0),
    /**
     * <code>WORKER_FAULT_CATEGORY_INVALID_ARGUMENTS = 1;</code>
     */
    WORKER_FAULT_CATEGORY_INVALID_ARGUMENTS(1),
    /**
     * <code>WORKER_FAULT_CATEGORY_GATEWAY_AUTHENTICATION_FAILED = 2;</code>
     */
    WORKER_FAULT_CATEGORY_GATEWAY_AUTHENTICATION_FAILED(2),
    /**
     * <code>WORKER_FAULT_CATEGORY_PROTOCOL_MISMATCH = 3;</code>
     */
    WORKER_FAULT_CATEGORY_PROTOCOL_MISMATCH(3),
    /**
     * <code>WORKER_FAULT_CATEGORY_PROTOCOL_VIOLATION = 4;</code>
     */
    WORKER_FAULT_CATEGORY_PROTOCOL_VIOLATION(4),
    /**
     * <code>WORKER_FAULT_CATEGORY_PIPE_DISCONNECTED = 5;</code>
     */
    WORKER_FAULT_CATEGORY_PIPE_DISCONNECTED(5),
    /**
     * <code>WORKER_FAULT_CATEGORY_MXACCESS_CREATION_FAILED = 6;</code>
     */
    WORKER_FAULT_CATEGORY_MXACCESS_CREATION_FAILED(6),
    /**
     * <code>WORKER_FAULT_CATEGORY_MXACCESS_COMMAND_FAILED = 7;</code>
     */
    WORKER_FAULT_CATEGORY_MXACCESS_COMMAND_FAILED(7),
    /**
     * <code>WORKER_FAULT_CATEGORY_MXACCESS_EVENT_CONVERSION_FAILED = 8;</code>
     */
    WORKER_FAULT_CATEGORY_MXACCESS_EVENT_CONVERSION_FAILED(8),
    /**
     * <code>WORKER_FAULT_CATEGORY_STA_HUNG = 9;</code>
     */
    WORKER_FAULT_CATEGORY_STA_HUNG(9),
    /**
     * <code>WORKER_FAULT_CATEGORY_QUEUE_OVERFLOW = 10;</code>
     */
    WORKER_FAULT_CATEGORY_QUEUE_OVERFLOW(10),
    /**
     * <code>WORKER_FAULT_CATEGORY_SHUTDOWN_TIMEOUT = 11;</code>
     */
    WORKER_FAULT_CATEGORY_SHUTDOWN_TIMEOUT(11),
    UNRECOGNIZED(-1),
    ;

    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 33,
        /* patch= */ 1,
        /* suffix= */ "",
        "WorkerFaultCategory");
    }
    /**
     * <code>WORKER_FAULT_CATEGORY_UNSPECIFIED = 0;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_UNSPECIFIED_VALUE = 0;
    /**
     * <code>WORKER_FAULT_CATEGORY_INVALID_ARGUMENTS = 1;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_INVALID_ARGUMENTS_VALUE = 1;
    /**
     * <code>WORKER_FAULT_CATEGORY_GATEWAY_AUTHENTICATION_FAILED = 2;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_GATEWAY_AUTHENTICATION_FAILED_VALUE = 2;
    /**
     * <code>WORKER_FAULT_CATEGORY_PROTOCOL_MISMATCH = 3;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_PROTOCOL_MISMATCH_VALUE = 3;
    /**
     * <code>WORKER_FAULT_CATEGORY_PROTOCOL_VIOLATION = 4;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_PROTOCOL_VIOLATION_VALUE = 4;
    /**
     * <code>WORKER_FAULT_CATEGORY_PIPE_DISCONNECTED = 5;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_PIPE_DISCONNECTED_VALUE = 5;
    /**
     * <code>WORKER_FAULT_CATEGORY_MXACCESS_CREATION_FAILED = 6;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_MXACCESS_CREATION_FAILED_VALUE = 6;
    /**
     * <code>WORKER_FAULT_CATEGORY_MXACCESS_COMMAND_FAILED = 7;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_MXACCESS_COMMAND_FAILED_VALUE = 7;
    /**
     * <code>WORKER_FAULT_CATEGORY_MXACCESS_EVENT_CONVERSION_FAILED = 8;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_MXACCESS_EVENT_CONVERSION_FAILED_VALUE = 8;
    /**
     * <code>WORKER_FAULT_CATEGORY_STA_HUNG = 9;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_STA_HUNG_VALUE = 9;
    /**
     * <code>WORKER_FAULT_CATEGORY_QUEUE_OVERFLOW = 10;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_QUEUE_OVERFLOW_VALUE = 10;
    /**
     * <code>WORKER_FAULT_CATEGORY_SHUTDOWN_TIMEOUT = 11;</code>
     */
    public static final int WORKER_FAULT_CATEGORY_SHUTDOWN_TIMEOUT_VALUE = 11;


    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 WorkerFaultCategory 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 WorkerFaultCategory forNumber(int value) {
      switch (value) {
        case 0: return WORKER_FAULT_CATEGORY_UNSPECIFIED;
        case 1: return WORKER_FAULT_CATEGORY_INVALID_ARGUMENTS;
        case 2: return WORKER_FAULT_CATEGORY_GATEWAY_AUTHENTICATION_FAILED;
        case 3: return WORKER_FAULT_CATEGORY_PROTOCOL_MISMATCH;
        case 4: return WORKER_FAULT_CATEGORY_PROTOCOL_VIOLATION;
        case 5: return WORKER_FAULT_CATEGORY_PIPE_DISCONNECTED;
        case 6: return WORKER_FAULT_CATEGORY_MXACCESS_CREATION_FAILED;
        case 7: return WORKER_FAULT_CATEGORY_MXACCESS_COMMAND_FAILED;
        case 8: return WORKER_FAULT_CATEGORY_MXACCESS_EVENT_CONVERSION_FAILED;
        case 9: return WORKER_FAULT_CATEGORY_STA_HUNG;
        case 10: return WORKER_FAULT_CATEGORY_QUEUE_OVERFLOW;
        case 11: return WORKER_FAULT_CATEGORY_SHUTDOWN_TIMEOUT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<WorkerFaultCategory>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        WorkerFaultCategory> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<WorkerFaultCategory>() {
            public WorkerFaultCategory findValueByNumber(int number) {
              return WorkerFaultCategory.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_worker.v1.MxaccessWorker.getDescriptor().getEnumTypes().get(1);
    }

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

    public static WorkerFaultCategory 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 WorkerFaultCategory(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:mxaccess_worker.v1.WorkerFaultCategory)
  }

  public interface WorkerEnvelopeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerEnvelope)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>uint32 protocol_version = 1;</code>
     * @return The protocolVersion.
     */
    int getProtocolVersion();

    /**
     * <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>uint64 sequence = 3;</code>
     * @return The sequence.
     */
    long getSequence();

    /**
     * <code>string correlation_id = 4;</code>
     * @return The correlationId.
     */
    java.lang.String getCorrelationId();
    /**
     * <code>string correlation_id = 4;</code>
     * @return The bytes for correlationId.
     */
    com.google.protobuf.ByteString
        getCorrelationIdBytes();

    /**
     * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
     * @return Whether the gatewayHello field is set.
     */
    boolean hasGatewayHello();
    /**
     * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
     * @return The gatewayHello.
     */
    mxaccess_worker.v1.MxaccessWorker.GatewayHello getGatewayHello();
    /**
     * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.GatewayHelloOrBuilder getGatewayHelloOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
     * @return Whether the workerHello field is set.
     */
    boolean hasWorkerHello();
    /**
     * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
     * @return The workerHello.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerHello getWorkerHello();
    /**
     * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerHelloOrBuilder getWorkerHelloOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
     * @return Whether the workerReady field is set.
     */
    boolean hasWorkerReady();
    /**
     * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
     * @return The workerReady.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerReady getWorkerReady();
    /**
     * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerReadyOrBuilder getWorkerReadyOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
     * @return Whether the workerCommand field is set.
     */
    boolean hasWorkerCommand();
    /**
     * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
     * @return The workerCommand.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerCommand getWorkerCommand();
    /**
     * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerCommandOrBuilder getWorkerCommandOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
     * @return Whether the workerCommandReply field is set.
     */
    boolean hasWorkerCommandReply();
    /**
     * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
     * @return The workerCommandReply.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply getWorkerCommandReply();
    /**
     * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerCommandReplyOrBuilder getWorkerCommandReplyOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
     * @return Whether the workerCancel field is set.
     */
    boolean hasWorkerCancel();
    /**
     * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
     * @return The workerCancel.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerCancel getWorkerCancel();
    /**
     * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerCancelOrBuilder getWorkerCancelOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
     * @return Whether the workerShutdown field is set.
     */
    boolean hasWorkerShutdown();
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
     * @return The workerShutdown.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerShutdown getWorkerShutdown();
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerShutdownOrBuilder getWorkerShutdownOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
     * @return Whether the workerShutdownAck field is set.
     */
    boolean hasWorkerShutdownAck();
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
     * @return The workerShutdownAck.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck getWorkerShutdownAck();
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAckOrBuilder getWorkerShutdownAckOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
     * @return Whether the workerEvent field is set.
     */
    boolean hasWorkerEvent();
    /**
     * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
     * @return The workerEvent.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerEvent getWorkerEvent();
    /**
     * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerEventOrBuilder getWorkerEventOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
     * @return Whether the workerHeartbeat field is set.
     */
    boolean hasWorkerHeartbeat();
    /**
     * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
     * @return The workerHeartbeat.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat getWorkerHeartbeat();
    /**
     * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeatOrBuilder getWorkerHeartbeatOrBuilder();

    /**
     * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
     * @return Whether the workerFault field is set.
     */
    boolean hasWorkerFault();
    /**
     * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
     * @return The workerFault.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerFault getWorkerFault();
    /**
     * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerFaultOrBuilder getWorkerFaultOrBuilder();

    mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.BodyCase getBodyCase();
  }
  /**
   * <pre>
   * Gateway-to-worker IPC envelope. Named-pipe framing prepends a little-endian
   * uint32 payload length to this protobuf payload.
   * </pre>
   *
   * Protobuf type {@code mxaccess_worker.v1.WorkerEnvelope}
   */
  public static final class WorkerEnvelope extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerEnvelope)
      WorkerEnvelopeOrBuilder {
  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= */ "",
        "WorkerEnvelope");
    }
    // Use WorkerEnvelope.newBuilder() to construct.
    private WorkerEnvelope(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerEnvelope() {
      sessionId_ = "";
      correlationId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEnvelope_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEnvelope_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.class, mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.Builder.class);
    }

    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 {
      GATEWAY_HELLO(10),
      WORKER_HELLO(11),
      WORKER_READY(12),
      WORKER_COMMAND(13),
      WORKER_COMMAND_REPLY(14),
      WORKER_CANCEL(15),
      WORKER_SHUTDOWN(16),
      WORKER_SHUTDOWN_ACK(17),
      WORKER_EVENT(18),
      WORKER_HEARTBEAT(19),
      WORKER_FAULT(20),
      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 10: return GATEWAY_HELLO;
          case 11: return WORKER_HELLO;
          case 12: return WORKER_READY;
          case 13: return WORKER_COMMAND;
          case 14: return WORKER_COMMAND_REPLY;
          case 15: return WORKER_CANCEL;
          case 16: return WORKER_SHUTDOWN;
          case 17: return WORKER_SHUTDOWN_ACK;
          case 18: return WORKER_EVENT;
          case 19: return WORKER_HEARTBEAT;
          case 20: return WORKER_FAULT;
          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 PROTOCOL_VERSION_FIELD_NUMBER = 1;
    private int protocolVersion_ = 0;
    /**
     * <code>uint32 protocol_version = 1;</code>
     * @return The protocolVersion.
     */
    @java.lang.Override
    public int getProtocolVersion() {
      return protocolVersion_;
    }

    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 SEQUENCE_FIELD_NUMBER = 3;
    private long sequence_ = 0L;
    /**
     * <code>uint64 sequence = 3;</code>
     * @return The sequence.
     */
    @java.lang.Override
    public long getSequence() {
      return sequence_;
    }

    public static final int CORRELATION_ID_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object correlationId_ = "";
    /**
     * <code>string correlation_id = 4;</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 = 4;</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 GATEWAY_HELLO_FIELD_NUMBER = 10;
    /**
     * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
     * @return Whether the gatewayHello field is set.
     */
    @java.lang.Override
    public boolean hasGatewayHello() {
      return bodyCase_ == 10;
    }
    /**
     * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
     * @return The gatewayHello.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.GatewayHello getGatewayHello() {
      if (bodyCase_ == 10) {
         return (mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.GatewayHelloOrBuilder getGatewayHelloOrBuilder() {
      if (bodyCase_ == 10) {
         return (mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance();
    }

    public static final int WORKER_HELLO_FIELD_NUMBER = 11;
    /**
     * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
     * @return Whether the workerHello field is set.
     */
    @java.lang.Override
    public boolean hasWorkerHello() {
      return bodyCase_ == 11;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
     * @return The workerHello.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerHello getWorkerHello() {
      if (bodyCase_ == 11) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerHelloOrBuilder getWorkerHelloOrBuilder() {
      if (bodyCase_ == 11) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance();
    }

    public static final int WORKER_READY_FIELD_NUMBER = 12;
    /**
     * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
     * @return Whether the workerReady field is set.
     */
    @java.lang.Override
    public boolean hasWorkerReady() {
      return bodyCase_ == 12;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
     * @return The workerReady.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerReady getWorkerReady() {
      if (bodyCase_ == 12) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerReadyOrBuilder getWorkerReadyOrBuilder() {
      if (bodyCase_ == 12) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance();
    }

    public static final int WORKER_COMMAND_FIELD_NUMBER = 13;
    /**
     * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
     * @return Whether the workerCommand field is set.
     */
    @java.lang.Override
    public boolean hasWorkerCommand() {
      return bodyCase_ == 13;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
     * @return The workerCommand.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCommand getWorkerCommand() {
      if (bodyCase_ == 13) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCommandOrBuilder getWorkerCommandOrBuilder() {
      if (bodyCase_ == 13) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance();
    }

    public static final int WORKER_COMMAND_REPLY_FIELD_NUMBER = 14;
    /**
     * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
     * @return Whether the workerCommandReply field is set.
     */
    @java.lang.Override
    public boolean hasWorkerCommandReply() {
      return bodyCase_ == 14;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
     * @return The workerCommandReply.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply getWorkerCommandReply() {
      if (bodyCase_ == 14) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReplyOrBuilder getWorkerCommandReplyOrBuilder() {
      if (bodyCase_ == 14) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance();
    }

    public static final int WORKER_CANCEL_FIELD_NUMBER = 15;
    /**
     * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
     * @return Whether the workerCancel field is set.
     */
    @java.lang.Override
    public boolean hasWorkerCancel() {
      return bodyCase_ == 15;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
     * @return The workerCancel.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCancel getWorkerCancel() {
      if (bodyCase_ == 15) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCancelOrBuilder getWorkerCancelOrBuilder() {
      if (bodyCase_ == 15) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance();
    }

    public static final int WORKER_SHUTDOWN_FIELD_NUMBER = 16;
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
     * @return Whether the workerShutdown field is set.
     */
    @java.lang.Override
    public boolean hasWorkerShutdown() {
      return bodyCase_ == 16;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
     * @return The workerShutdown.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerShutdown getWorkerShutdown() {
      if (bodyCase_ == 16) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownOrBuilder getWorkerShutdownOrBuilder() {
      if (bodyCase_ == 16) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance();
    }

    public static final int WORKER_SHUTDOWN_ACK_FIELD_NUMBER = 17;
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
     * @return Whether the workerShutdownAck field is set.
     */
    @java.lang.Override
    public boolean hasWorkerShutdownAck() {
      return bodyCase_ == 17;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
     * @return The workerShutdownAck.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck getWorkerShutdownAck() {
      if (bodyCase_ == 17) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAckOrBuilder getWorkerShutdownAckOrBuilder() {
      if (bodyCase_ == 17) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance();
    }

    public static final int WORKER_EVENT_FIELD_NUMBER = 18;
    /**
     * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
     * @return Whether the workerEvent field is set.
     */
    @java.lang.Override
    public boolean hasWorkerEvent() {
      return bodyCase_ == 18;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
     * @return The workerEvent.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerEvent getWorkerEvent() {
      if (bodyCase_ == 18) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerEventOrBuilder getWorkerEventOrBuilder() {
      if (bodyCase_ == 18) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance();
    }

    public static final int WORKER_HEARTBEAT_FIELD_NUMBER = 19;
    /**
     * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
     * @return Whether the workerHeartbeat field is set.
     */
    @java.lang.Override
    public boolean hasWorkerHeartbeat() {
      return bodyCase_ == 19;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
     * @return The workerHeartbeat.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat getWorkerHeartbeat() {
      if (bodyCase_ == 19) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeatOrBuilder getWorkerHeartbeatOrBuilder() {
      if (bodyCase_ == 19) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance();
    }

    public static final int WORKER_FAULT_FIELD_NUMBER = 20;
    /**
     * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
     * @return Whether the workerFault field is set.
     */
    @java.lang.Override
    public boolean hasWorkerFault() {
      return bodyCase_ == 20;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
     * @return The workerFault.
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerFault getWorkerFault() {
      if (bodyCase_ == 20) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerFault) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance();
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
     */
    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerFaultOrBuilder getWorkerFaultOrBuilder() {
      if (bodyCase_ == 20) {
         return (mxaccess_worker.v1.MxaccessWorker.WorkerFault) body_;
      }
      return mxaccess_worker.v1.MxaccessWorker.WorkerFault.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 (protocolVersion_ != 0) {
        output.writeUInt32(1, protocolVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, sessionId_);
      }
      if (sequence_ != 0L) {
        output.writeUInt64(3, sequence_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, correlationId_);
      }
      if (bodyCase_ == 10) {
        output.writeMessage(10, (mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_);
      }
      if (bodyCase_ == 11) {
        output.writeMessage(11, (mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_);
      }
      if (bodyCase_ == 12) {
        output.writeMessage(12, (mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_);
      }
      if (bodyCase_ == 13) {
        output.writeMessage(13, (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_);
      }
      if (bodyCase_ == 14) {
        output.writeMessage(14, (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_);
      }
      if (bodyCase_ == 15) {
        output.writeMessage(15, (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_);
      }
      if (bodyCase_ == 16) {
        output.writeMessage(16, (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_);
      }
      if (bodyCase_ == 17) {
        output.writeMessage(17, (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_);
      }
      if (bodyCase_ == 18) {
        output.writeMessage(18, (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_);
      }
      if (bodyCase_ == 19) {
        output.writeMessage(19, (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_);
      }
      if (bodyCase_ == 20) {
        output.writeMessage(20, (mxaccess_worker.v1.MxaccessWorker.WorkerFault) body_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (protocolVersion_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, protocolVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, sessionId_);
      }
      if (sequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, sequence_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, correlationId_);
      }
      if (bodyCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_);
      }
      if (bodyCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_);
      }
      if (bodyCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_);
      }
      if (bodyCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_);
      }
      if (bodyCase_ == 14) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_);
      }
      if (bodyCase_ == 15) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_);
      }
      if (bodyCase_ == 16) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_);
      }
      if (bodyCase_ == 17) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_);
      }
      if (bodyCase_ == 18) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_);
      }
      if (bodyCase_ == 19) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_);
      }
      if (bodyCase_ == 20) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, (mxaccess_worker.v1.MxaccessWorker.WorkerFault) 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_worker.v1.MxaccessWorker.WorkerEnvelope)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope other = (mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope) obj;

      if (getProtocolVersion()
          != other.getProtocolVersion()) return false;
      if (!getSessionId()
          .equals(other.getSessionId())) return false;
      if (getSequence()
          != other.getSequence()) return false;
      if (!getCorrelationId()
          .equals(other.getCorrelationId())) return false;
      if (!getBodyCase().equals(other.getBodyCase())) return false;
      switch (bodyCase_) {
        case 10:
          if (!getGatewayHello()
              .equals(other.getGatewayHello())) return false;
          break;
        case 11:
          if (!getWorkerHello()
              .equals(other.getWorkerHello())) return false;
          break;
        case 12:
          if (!getWorkerReady()
              .equals(other.getWorkerReady())) return false;
          break;
        case 13:
          if (!getWorkerCommand()
              .equals(other.getWorkerCommand())) return false;
          break;
        case 14:
          if (!getWorkerCommandReply()
              .equals(other.getWorkerCommandReply())) return false;
          break;
        case 15:
          if (!getWorkerCancel()
              .equals(other.getWorkerCancel())) return false;
          break;
        case 16:
          if (!getWorkerShutdown()
              .equals(other.getWorkerShutdown())) return false;
          break;
        case 17:
          if (!getWorkerShutdownAck()
              .equals(other.getWorkerShutdownAck())) return false;
          break;
        case 18:
          if (!getWorkerEvent()
              .equals(other.getWorkerEvent())) return false;
          break;
        case 19:
          if (!getWorkerHeartbeat()
              .equals(other.getWorkerHeartbeat())) return false;
          break;
        case 20:
          if (!getWorkerFault()
              .equals(other.getWorkerFault())) 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) + PROTOCOL_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getProtocolVersion();
      hash = (37 * hash) + SESSION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSessionId().hashCode();
      hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getSequence());
      hash = (37 * hash) + CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCorrelationId().hashCode();
      switch (bodyCase_) {
        case 10:
          hash = (37 * hash) + GATEWAY_HELLO_FIELD_NUMBER;
          hash = (53 * hash) + getGatewayHello().hashCode();
          break;
        case 11:
          hash = (37 * hash) + WORKER_HELLO_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerHello().hashCode();
          break;
        case 12:
          hash = (37 * hash) + WORKER_READY_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerReady().hashCode();
          break;
        case 13:
          hash = (37 * hash) + WORKER_COMMAND_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerCommand().hashCode();
          break;
        case 14:
          hash = (37 * hash) + WORKER_COMMAND_REPLY_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerCommandReply().hashCode();
          break;
        case 15:
          hash = (37 * hash) + WORKER_CANCEL_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerCancel().hashCode();
          break;
        case 16:
          hash = (37 * hash) + WORKER_SHUTDOWN_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerShutdown().hashCode();
          break;
        case 17:
          hash = (37 * hash) + WORKER_SHUTDOWN_ACK_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerShutdownAck().hashCode();
          break;
        case 18:
          hash = (37 * hash) + WORKER_EVENT_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerEvent().hashCode();
          break;
        case 19:
          hash = (37 * hash) + WORKER_HEARTBEAT_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerHeartbeat().hashCode();
          break;
        case 20:
          hash = (37 * hash) + WORKER_FAULT_FIELD_NUMBER;
          hash = (53 * hash) + getWorkerFault().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public static mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope 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_worker.v1.MxaccessWorker.WorkerEnvelope parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope 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_worker.v1.MxaccessWorker.WorkerEnvelope 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>
     * Gateway-to-worker IPC envelope. Named-pipe framing prepends a little-endian
     * uint32 payload length to this protobuf payload.
     * </pre>
     *
     * Protobuf type {@code mxaccess_worker.v1.WorkerEnvelope}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:mxaccess_worker.v1.WorkerEnvelope)
        mxaccess_worker.v1.MxaccessWorker.WorkerEnvelopeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEnvelope_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEnvelope_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.class, mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        protocolVersion_ = 0;
        sessionId_ = "";
        sequence_ = 0L;
        correlationId_ = "";
        if (gatewayHelloBuilder_ != null) {
          gatewayHelloBuilder_.clear();
        }
        if (workerHelloBuilder_ != null) {
          workerHelloBuilder_.clear();
        }
        if (workerReadyBuilder_ != null) {
          workerReadyBuilder_.clear();
        }
        if (workerCommandBuilder_ != null) {
          workerCommandBuilder_.clear();
        }
        if (workerCommandReplyBuilder_ != null) {
          workerCommandReplyBuilder_.clear();
        }
        if (workerCancelBuilder_ != null) {
          workerCancelBuilder_.clear();
        }
        if (workerShutdownBuilder_ != null) {
          workerShutdownBuilder_.clear();
        }
        if (workerShutdownAckBuilder_ != null) {
          workerShutdownAckBuilder_.clear();
        }
        if (workerEventBuilder_ != null) {
          workerEventBuilder_.clear();
        }
        if (workerHeartbeatBuilder_ != null) {
          workerHeartbeatBuilder_.clear();
        }
        if (workerFaultBuilder_ != null) {
          workerFaultBuilder_.clear();
        }
        bodyCase_ = 0;
        body_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEnvelope_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope buildPartial() {
        mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope result = new mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        buildPartialOneofs(result);
        onBuilt();
        return result;
      }

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.protocolVersion_ = protocolVersion_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.sessionId_ = sessionId_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.sequence_ = sequence_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.correlationId_ = correlationId_;
        }
      }

      private void buildPartialOneofs(mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope result) {
        result.bodyCase_ = bodyCase_;
        result.body_ = this.body_;
        if (bodyCase_ == 10 &&
            gatewayHelloBuilder_ != null) {
          result.body_ = gatewayHelloBuilder_.build();
        }
        if (bodyCase_ == 11 &&
            workerHelloBuilder_ != null) {
          result.body_ = workerHelloBuilder_.build();
        }
        if (bodyCase_ == 12 &&
            workerReadyBuilder_ != null) {
          result.body_ = workerReadyBuilder_.build();
        }
        if (bodyCase_ == 13 &&
            workerCommandBuilder_ != null) {
          result.body_ = workerCommandBuilder_.build();
        }
        if (bodyCase_ == 14 &&
            workerCommandReplyBuilder_ != null) {
          result.body_ = workerCommandReplyBuilder_.build();
        }
        if (bodyCase_ == 15 &&
            workerCancelBuilder_ != null) {
          result.body_ = workerCancelBuilder_.build();
        }
        if (bodyCase_ == 16 &&
            workerShutdownBuilder_ != null) {
          result.body_ = workerShutdownBuilder_.build();
        }
        if (bodyCase_ == 17 &&
            workerShutdownAckBuilder_ != null) {
          result.body_ = workerShutdownAckBuilder_.build();
        }
        if (bodyCase_ == 18 &&
            workerEventBuilder_ != null) {
          result.body_ = workerEventBuilder_.build();
        }
        if (bodyCase_ == 19 &&
            workerHeartbeatBuilder_ != null) {
          result.body_ = workerHeartbeatBuilder_.build();
        }
        if (bodyCase_ == 20 &&
            workerFaultBuilder_ != null) {
          result.body_ = workerFaultBuilder_.build();
        }
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope.getDefaultInstance()) return this;
        if (other.getProtocolVersion() != 0) {
          setProtocolVersion(other.getProtocolVersion());
        }
        if (!other.getSessionId().isEmpty()) {
          sessionId_ = other.sessionId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getSequence() != 0L) {
          setSequence(other.getSequence());
        }
        if (!other.getCorrelationId().isEmpty()) {
          correlationId_ = other.correlationId_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        switch (other.getBodyCase()) {
          case GATEWAY_HELLO: {
            mergeGatewayHello(other.getGatewayHello());
            break;
          }
          case WORKER_HELLO: {
            mergeWorkerHello(other.getWorkerHello());
            break;
          }
          case WORKER_READY: {
            mergeWorkerReady(other.getWorkerReady());
            break;
          }
          case WORKER_COMMAND: {
            mergeWorkerCommand(other.getWorkerCommand());
            break;
          }
          case WORKER_COMMAND_REPLY: {
            mergeWorkerCommandReply(other.getWorkerCommandReply());
            break;
          }
          case WORKER_CANCEL: {
            mergeWorkerCancel(other.getWorkerCancel());
            break;
          }
          case WORKER_SHUTDOWN: {
            mergeWorkerShutdown(other.getWorkerShutdown());
            break;
          }
          case WORKER_SHUTDOWN_ACK: {
            mergeWorkerShutdownAck(other.getWorkerShutdownAck());
            break;
          }
          case WORKER_EVENT: {
            mergeWorkerEvent(other.getWorkerEvent());
            break;
          }
          case WORKER_HEARTBEAT: {
            mergeWorkerHeartbeat(other.getWorkerHeartbeat());
            break;
          }
          case WORKER_FAULT: {
            mergeWorkerFault(other.getWorkerFault());
            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: {
                protocolVersion_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                sessionId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                sequence_ = input.readUInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                correlationId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 82: {
                input.readMessage(
                    internalGetGatewayHelloFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 10;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    internalGetWorkerHelloFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 11;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    internalGetWorkerReadyFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 12;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    internalGetWorkerCommandFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 13;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    internalGetWorkerCommandReplyFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 14;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    internalGetWorkerCancelFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 15;
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    internalGetWorkerShutdownFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 16;
                break;
              } // case 130
              case 138: {
                input.readMessage(
                    internalGetWorkerShutdownAckFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 17;
                break;
              } // case 138
              case 146: {
                input.readMessage(
                    internalGetWorkerEventFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 18;
                break;
              } // case 146
              case 154: {
                input.readMessage(
                    internalGetWorkerHeartbeatFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 19;
                break;
              } // case 154
              case 162: {
                input.readMessage(
                    internalGetWorkerFaultFieldBuilder().getBuilder(),
                    extensionRegistry);
                bodyCase_ = 20;
                break;
              } // case 162
              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 protocolVersion_ ;
      /**
       * <code>uint32 protocol_version = 1;</code>
       * @return The protocolVersion.
       */
      @java.lang.Override
      public int getProtocolVersion() {
        return protocolVersion_;
      }
      /**
       * <code>uint32 protocol_version = 1;</code>
       * @param value The protocolVersion to set.
       * @return This builder for chaining.
       */
      public Builder setProtocolVersion(int value) {

        protocolVersion_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 protocol_version = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearProtocolVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        protocolVersion_ = 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 long sequence_ ;
      /**
       * <code>uint64 sequence = 3;</code>
       * @return The sequence.
       */
      @java.lang.Override
      public long getSequence() {
        return sequence_;
      }
      /**
       * <code>uint64 sequence = 3;</code>
       * @param value The sequence to set.
       * @return This builder for chaining.
       */
      public Builder setSequence(long value) {

        sequence_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 sequence = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequence() {
        bitField0_ = (bitField0_ & ~0x00000004);
        sequence_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object correlationId_ = "";
      /**
       * <code>string correlation_id = 4;</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 = 4;</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 = 4;</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_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string correlation_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearCorrelationId() {
        correlationId_ = getDefaultInstance().getCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string correlation_id = 4;</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_ |= 0x00000008;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.GatewayHello, mxaccess_worker.v1.MxaccessWorker.GatewayHello.Builder, mxaccess_worker.v1.MxaccessWorker.GatewayHelloOrBuilder> gatewayHelloBuilder_;
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       * @return Whether the gatewayHello field is set.
       */
      @java.lang.Override
      public boolean hasGatewayHello() {
        return bodyCase_ == 10;
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       * @return The gatewayHello.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.GatewayHello getGatewayHello() {
        if (gatewayHelloBuilder_ == null) {
          if (bodyCase_ == 10) {
            return (mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance();
        } else {
          if (bodyCase_ == 10) {
            return gatewayHelloBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       */
      public Builder setGatewayHello(mxaccess_worker.v1.MxaccessWorker.GatewayHello value) {
        if (gatewayHelloBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          gatewayHelloBuilder_.setMessage(value);
        }
        bodyCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       */
      public Builder setGatewayHello(
          mxaccess_worker.v1.MxaccessWorker.GatewayHello.Builder builderForValue) {
        if (gatewayHelloBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          gatewayHelloBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       */
      public Builder mergeGatewayHello(mxaccess_worker.v1.MxaccessWorker.GatewayHello value) {
        if (gatewayHelloBuilder_ == null) {
          if (bodyCase_ == 10 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.GatewayHello.newBuilder((mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 10) {
            gatewayHelloBuilder_.mergeFrom(value);
          } else {
            gatewayHelloBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 10;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       */
      public Builder clearGatewayHello() {
        if (gatewayHelloBuilder_ == null) {
          if (bodyCase_ == 10) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 10) {
            bodyCase_ = 0;
            body_ = null;
          }
          gatewayHelloBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.GatewayHello.Builder getGatewayHelloBuilder() {
        return internalGetGatewayHelloFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.GatewayHelloOrBuilder getGatewayHelloOrBuilder() {
        if ((bodyCase_ == 10) && (gatewayHelloBuilder_ != null)) {
          return gatewayHelloBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 10) {
            return (mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.GatewayHello gateway_hello = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.GatewayHello, mxaccess_worker.v1.MxaccessWorker.GatewayHello.Builder, mxaccess_worker.v1.MxaccessWorker.GatewayHelloOrBuilder> 
          internalGetGatewayHelloFieldBuilder() {
        if (gatewayHelloBuilder_ == null) {
          if (!(bodyCase_ == 10)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance();
          }
          gatewayHelloBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.GatewayHello, mxaccess_worker.v1.MxaccessWorker.GatewayHello.Builder, mxaccess_worker.v1.MxaccessWorker.GatewayHelloOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.GatewayHello) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 10;
        onChanged();
        return gatewayHelloBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerHello, mxaccess_worker.v1.MxaccessWorker.WorkerHello.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerHelloOrBuilder> workerHelloBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       * @return Whether the workerHello field is set.
       */
      @java.lang.Override
      public boolean hasWorkerHello() {
        return bodyCase_ == 11;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       * @return The workerHello.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHello getWorkerHello() {
        if (workerHelloBuilder_ == null) {
          if (bodyCase_ == 11) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance();
        } else {
          if (bodyCase_ == 11) {
            return workerHelloBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       */
      public Builder setWorkerHello(mxaccess_worker.v1.MxaccessWorker.WorkerHello value) {
        if (workerHelloBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerHelloBuilder_.setMessage(value);
        }
        bodyCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       */
      public Builder setWorkerHello(
          mxaccess_worker.v1.MxaccessWorker.WorkerHello.Builder builderForValue) {
        if (workerHelloBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerHelloBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       */
      public Builder mergeWorkerHello(mxaccess_worker.v1.MxaccessWorker.WorkerHello value) {
        if (workerHelloBuilder_ == null) {
          if (bodyCase_ == 11 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerHello.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 11) {
            workerHelloBuilder_.mergeFrom(value);
          } else {
            workerHelloBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 11;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       */
      public Builder clearWorkerHello() {
        if (workerHelloBuilder_ == null) {
          if (bodyCase_ == 11) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 11) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerHelloBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerHello.Builder getWorkerHelloBuilder() {
        return internalGetWorkerHelloFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHelloOrBuilder getWorkerHelloOrBuilder() {
        if ((bodyCase_ == 11) && (workerHelloBuilder_ != null)) {
          return workerHelloBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 11) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHello worker_hello = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerHello, mxaccess_worker.v1.MxaccessWorker.WorkerHello.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerHelloOrBuilder> 
          internalGetWorkerHelloFieldBuilder() {
        if (workerHelloBuilder_ == null) {
          if (!(bodyCase_ == 11)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance();
          }
          workerHelloBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerHello, mxaccess_worker.v1.MxaccessWorker.WorkerHello.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerHelloOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerHello) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 11;
        onChanged();
        return workerHelloBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerReady, mxaccess_worker.v1.MxaccessWorker.WorkerReady.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerReadyOrBuilder> workerReadyBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       * @return Whether the workerReady field is set.
       */
      @java.lang.Override
      public boolean hasWorkerReady() {
        return bodyCase_ == 12;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       * @return The workerReady.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerReady getWorkerReady() {
        if (workerReadyBuilder_ == null) {
          if (bodyCase_ == 12) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance();
        } else {
          if (bodyCase_ == 12) {
            return workerReadyBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       */
      public Builder setWorkerReady(mxaccess_worker.v1.MxaccessWorker.WorkerReady value) {
        if (workerReadyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerReadyBuilder_.setMessage(value);
        }
        bodyCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       */
      public Builder setWorkerReady(
          mxaccess_worker.v1.MxaccessWorker.WorkerReady.Builder builderForValue) {
        if (workerReadyBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerReadyBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       */
      public Builder mergeWorkerReady(mxaccess_worker.v1.MxaccessWorker.WorkerReady value) {
        if (workerReadyBuilder_ == null) {
          if (bodyCase_ == 12 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerReady.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 12) {
            workerReadyBuilder_.mergeFrom(value);
          } else {
            workerReadyBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 12;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       */
      public Builder clearWorkerReady() {
        if (workerReadyBuilder_ == null) {
          if (bodyCase_ == 12) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 12) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerReadyBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerReady.Builder getWorkerReadyBuilder() {
        return internalGetWorkerReadyFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerReadyOrBuilder getWorkerReadyOrBuilder() {
        if ((bodyCase_ == 12) && (workerReadyBuilder_ != null)) {
          return workerReadyBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 12) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerReady worker_ready = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerReady, mxaccess_worker.v1.MxaccessWorker.WorkerReady.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerReadyOrBuilder> 
          internalGetWorkerReadyFieldBuilder() {
        if (workerReadyBuilder_ == null) {
          if (!(bodyCase_ == 12)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance();
          }
          workerReadyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerReady, mxaccess_worker.v1.MxaccessWorker.WorkerReady.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerReadyOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerReady) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 12;
        onChanged();
        return workerReadyBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerCommand, mxaccess_worker.v1.MxaccessWorker.WorkerCommand.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCommandOrBuilder> workerCommandBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       * @return Whether the workerCommand field is set.
       */
      @java.lang.Override
      public boolean hasWorkerCommand() {
        return bodyCase_ == 13;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       * @return The workerCommand.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommand getWorkerCommand() {
        if (workerCommandBuilder_ == null) {
          if (bodyCase_ == 13) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance();
        } else {
          if (bodyCase_ == 13) {
            return workerCommandBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       */
      public Builder setWorkerCommand(mxaccess_worker.v1.MxaccessWorker.WorkerCommand value) {
        if (workerCommandBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerCommandBuilder_.setMessage(value);
        }
        bodyCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       */
      public Builder setWorkerCommand(
          mxaccess_worker.v1.MxaccessWorker.WorkerCommand.Builder builderForValue) {
        if (workerCommandBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerCommandBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       */
      public Builder mergeWorkerCommand(mxaccess_worker.v1.MxaccessWorker.WorkerCommand value) {
        if (workerCommandBuilder_ == null) {
          if (bodyCase_ == 13 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerCommand.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 13) {
            workerCommandBuilder_.mergeFrom(value);
          } else {
            workerCommandBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 13;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       */
      public Builder clearWorkerCommand() {
        if (workerCommandBuilder_ == null) {
          if (bodyCase_ == 13) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 13) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerCommandBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommand.Builder getWorkerCommandBuilder() {
        return internalGetWorkerCommandFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommandOrBuilder getWorkerCommandOrBuilder() {
        if ((bodyCase_ == 13) && (workerCommandBuilder_ != null)) {
          return workerCommandBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 13) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommand worker_command = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerCommand, mxaccess_worker.v1.MxaccessWorker.WorkerCommand.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCommandOrBuilder> 
          internalGetWorkerCommandFieldBuilder() {
        if (workerCommandBuilder_ == null) {
          if (!(bodyCase_ == 13)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance();
          }
          workerCommandBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerCommand, mxaccess_worker.v1.MxaccessWorker.WorkerCommand.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCommandOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 13;
        onChanged();
        return workerCommandBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReplyOrBuilder> workerCommandReplyBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       * @return Whether the workerCommandReply field is set.
       */
      @java.lang.Override
      public boolean hasWorkerCommandReply() {
        return bodyCase_ == 14;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       * @return The workerCommandReply.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply getWorkerCommandReply() {
        if (workerCommandReplyBuilder_ == null) {
          if (bodyCase_ == 14) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance();
        } else {
          if (bodyCase_ == 14) {
            return workerCommandReplyBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       */
      public Builder setWorkerCommandReply(mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply value) {
        if (workerCommandReplyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerCommandReplyBuilder_.setMessage(value);
        }
        bodyCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       */
      public Builder setWorkerCommandReply(
          mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.Builder builderForValue) {
        if (workerCommandReplyBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerCommandReplyBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       */
      public Builder mergeWorkerCommandReply(mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply value) {
        if (workerCommandReplyBuilder_ == null) {
          if (bodyCase_ == 14 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 14) {
            workerCommandReplyBuilder_.mergeFrom(value);
          } else {
            workerCommandReplyBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 14;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       */
      public Builder clearWorkerCommandReply() {
        if (workerCommandReplyBuilder_ == null) {
          if (bodyCase_ == 14) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 14) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerCommandReplyBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.Builder getWorkerCommandReplyBuilder() {
        return internalGetWorkerCommandReplyFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReplyOrBuilder getWorkerCommandReplyOrBuilder() {
        if ((bodyCase_ == 14) && (workerCommandReplyBuilder_ != null)) {
          return workerCommandReplyBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 14) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCommandReply worker_command_reply = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReplyOrBuilder> 
          internalGetWorkerCommandReplyFieldBuilder() {
        if (workerCommandReplyBuilder_ == null) {
          if (!(bodyCase_ == 14)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance();
          }
          workerCommandReplyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReplyOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 14;
        onChanged();
        return workerCommandReplyBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerCancel, mxaccess_worker.v1.MxaccessWorker.WorkerCancel.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCancelOrBuilder> workerCancelBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       * @return Whether the workerCancel field is set.
       */
      @java.lang.Override
      public boolean hasWorkerCancel() {
        return bodyCase_ == 15;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       * @return The workerCancel.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCancel getWorkerCancel() {
        if (workerCancelBuilder_ == null) {
          if (bodyCase_ == 15) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance();
        } else {
          if (bodyCase_ == 15) {
            return workerCancelBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       */
      public Builder setWorkerCancel(mxaccess_worker.v1.MxaccessWorker.WorkerCancel value) {
        if (workerCancelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerCancelBuilder_.setMessage(value);
        }
        bodyCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       */
      public Builder setWorkerCancel(
          mxaccess_worker.v1.MxaccessWorker.WorkerCancel.Builder builderForValue) {
        if (workerCancelBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerCancelBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       */
      public Builder mergeWorkerCancel(mxaccess_worker.v1.MxaccessWorker.WorkerCancel value) {
        if (workerCancelBuilder_ == null) {
          if (bodyCase_ == 15 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerCancel.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 15) {
            workerCancelBuilder_.mergeFrom(value);
          } else {
            workerCancelBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 15;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       */
      public Builder clearWorkerCancel() {
        if (workerCancelBuilder_ == null) {
          if (bodyCase_ == 15) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 15) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerCancelBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerCancel.Builder getWorkerCancelBuilder() {
        return internalGetWorkerCancelFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCancelOrBuilder getWorkerCancelOrBuilder() {
        if ((bodyCase_ == 15) && (workerCancelBuilder_ != null)) {
          return workerCancelBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 15) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerCancel worker_cancel = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerCancel, mxaccess_worker.v1.MxaccessWorker.WorkerCancel.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCancelOrBuilder> 
          internalGetWorkerCancelFieldBuilder() {
        if (workerCancelBuilder_ == null) {
          if (!(bodyCase_ == 15)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance();
          }
          workerCancelBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerCancel, mxaccess_worker.v1.MxaccessWorker.WorkerCancel.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerCancelOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 15;
        onChanged();
        return workerCancelBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerShutdown, mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownOrBuilder> workerShutdownBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       * @return Whether the workerShutdown field is set.
       */
      @java.lang.Override
      public boolean hasWorkerShutdown() {
        return bodyCase_ == 16;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       * @return The workerShutdown.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdown getWorkerShutdown() {
        if (workerShutdownBuilder_ == null) {
          if (bodyCase_ == 16) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance();
        } else {
          if (bodyCase_ == 16) {
            return workerShutdownBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       */
      public Builder setWorkerShutdown(mxaccess_worker.v1.MxaccessWorker.WorkerShutdown value) {
        if (workerShutdownBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerShutdownBuilder_.setMessage(value);
        }
        bodyCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       */
      public Builder setWorkerShutdown(
          mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.Builder builderForValue) {
        if (workerShutdownBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerShutdownBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       */
      public Builder mergeWorkerShutdown(mxaccess_worker.v1.MxaccessWorker.WorkerShutdown value) {
        if (workerShutdownBuilder_ == null) {
          if (bodyCase_ == 16 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 16) {
            workerShutdownBuilder_.mergeFrom(value);
          } else {
            workerShutdownBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 16;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       */
      public Builder clearWorkerShutdown() {
        if (workerShutdownBuilder_ == null) {
          if (bodyCase_ == 16) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 16) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerShutdownBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.Builder getWorkerShutdownBuilder() {
        return internalGetWorkerShutdownFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownOrBuilder getWorkerShutdownOrBuilder() {
        if ((bodyCase_ == 16) && (workerShutdownBuilder_ != null)) {
          return workerShutdownBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 16) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdown worker_shutdown = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerShutdown, mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownOrBuilder> 
          internalGetWorkerShutdownFieldBuilder() {
        if (workerShutdownBuilder_ == null) {
          if (!(bodyCase_ == 16)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance();
          }
          workerShutdownBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerShutdown, mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 16;
        onChanged();
        return workerShutdownBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAckOrBuilder> workerShutdownAckBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       * @return Whether the workerShutdownAck field is set.
       */
      @java.lang.Override
      public boolean hasWorkerShutdownAck() {
        return bodyCase_ == 17;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       * @return The workerShutdownAck.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck getWorkerShutdownAck() {
        if (workerShutdownAckBuilder_ == null) {
          if (bodyCase_ == 17) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance();
        } else {
          if (bodyCase_ == 17) {
            return workerShutdownAckBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       */
      public Builder setWorkerShutdownAck(mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck value) {
        if (workerShutdownAckBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerShutdownAckBuilder_.setMessage(value);
        }
        bodyCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       */
      public Builder setWorkerShutdownAck(
          mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.Builder builderForValue) {
        if (workerShutdownAckBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerShutdownAckBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       */
      public Builder mergeWorkerShutdownAck(mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck value) {
        if (workerShutdownAckBuilder_ == null) {
          if (bodyCase_ == 17 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 17) {
            workerShutdownAckBuilder_.mergeFrom(value);
          } else {
            workerShutdownAckBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 17;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       */
      public Builder clearWorkerShutdownAck() {
        if (workerShutdownAckBuilder_ == null) {
          if (bodyCase_ == 17) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 17) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerShutdownAckBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.Builder getWorkerShutdownAckBuilder() {
        return internalGetWorkerShutdownAckFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAckOrBuilder getWorkerShutdownAckOrBuilder() {
        if ((bodyCase_ == 17) && (workerShutdownAckBuilder_ != null)) {
          return workerShutdownAckBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 17) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerShutdownAck worker_shutdown_ack = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAckOrBuilder> 
          internalGetWorkerShutdownAckFieldBuilder() {
        if (workerShutdownAckBuilder_ == null) {
          if (!(bodyCase_ == 17)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance();
          }
          workerShutdownAckBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAckOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 17;
        onChanged();
        return workerShutdownAckBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerEvent, mxaccess_worker.v1.MxaccessWorker.WorkerEvent.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerEventOrBuilder> workerEventBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       * @return Whether the workerEvent field is set.
       */
      @java.lang.Override
      public boolean hasWorkerEvent() {
        return bodyCase_ == 18;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       * @return The workerEvent.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerEvent getWorkerEvent() {
        if (workerEventBuilder_ == null) {
          if (bodyCase_ == 18) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance();
        } else {
          if (bodyCase_ == 18) {
            return workerEventBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       */
      public Builder setWorkerEvent(mxaccess_worker.v1.MxaccessWorker.WorkerEvent value) {
        if (workerEventBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerEventBuilder_.setMessage(value);
        }
        bodyCase_ = 18;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       */
      public Builder setWorkerEvent(
          mxaccess_worker.v1.MxaccessWorker.WorkerEvent.Builder builderForValue) {
        if (workerEventBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerEventBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 18;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       */
      public Builder mergeWorkerEvent(mxaccess_worker.v1.MxaccessWorker.WorkerEvent value) {
        if (workerEventBuilder_ == null) {
          if (bodyCase_ == 18 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerEvent.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 18) {
            workerEventBuilder_.mergeFrom(value);
          } else {
            workerEventBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 18;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       */
      public Builder clearWorkerEvent() {
        if (workerEventBuilder_ == null) {
          if (bodyCase_ == 18) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 18) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerEventBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerEvent.Builder getWorkerEventBuilder() {
        return internalGetWorkerEventFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerEventOrBuilder getWorkerEventOrBuilder() {
        if ((bodyCase_ == 18) && (workerEventBuilder_ != null)) {
          return workerEventBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 18) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerEvent worker_event = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerEvent, mxaccess_worker.v1.MxaccessWorker.WorkerEvent.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerEventOrBuilder> 
          internalGetWorkerEventFieldBuilder() {
        if (workerEventBuilder_ == null) {
          if (!(bodyCase_ == 18)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance();
          }
          workerEventBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerEvent, mxaccess_worker.v1.MxaccessWorker.WorkerEvent.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerEventOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 18;
        onChanged();
        return workerEventBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeatOrBuilder> workerHeartbeatBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       * @return Whether the workerHeartbeat field is set.
       */
      @java.lang.Override
      public boolean hasWorkerHeartbeat() {
        return bodyCase_ == 19;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       * @return The workerHeartbeat.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat getWorkerHeartbeat() {
        if (workerHeartbeatBuilder_ == null) {
          if (bodyCase_ == 19) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance();
        } else {
          if (bodyCase_ == 19) {
            return workerHeartbeatBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       */
      public Builder setWorkerHeartbeat(mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat value) {
        if (workerHeartbeatBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerHeartbeatBuilder_.setMessage(value);
        }
        bodyCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       */
      public Builder setWorkerHeartbeat(
          mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.Builder builderForValue) {
        if (workerHeartbeatBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerHeartbeatBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       */
      public Builder mergeWorkerHeartbeat(mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat value) {
        if (workerHeartbeatBuilder_ == null) {
          if (bodyCase_ == 19 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 19) {
            workerHeartbeatBuilder_.mergeFrom(value);
          } else {
            workerHeartbeatBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 19;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       */
      public Builder clearWorkerHeartbeat() {
        if (workerHeartbeatBuilder_ == null) {
          if (bodyCase_ == 19) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 19) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerHeartbeatBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.Builder getWorkerHeartbeatBuilder() {
        return internalGetWorkerHeartbeatFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeatOrBuilder getWorkerHeartbeatOrBuilder() {
        if ((bodyCase_ == 19) && (workerHeartbeatBuilder_ != null)) {
          return workerHeartbeatBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 19) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerHeartbeat worker_heartbeat = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeatOrBuilder> 
          internalGetWorkerHeartbeatFieldBuilder() {
        if (workerHeartbeatBuilder_ == null) {
          if (!(bodyCase_ == 19)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance();
          }
          workerHeartbeatBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeatOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 19;
        onChanged();
        return workerHeartbeatBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerFault, mxaccess_worker.v1.MxaccessWorker.WorkerFault.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerFaultOrBuilder> workerFaultBuilder_;
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       * @return Whether the workerFault field is set.
       */
      @java.lang.Override
      public boolean hasWorkerFault() {
        return bodyCase_ == 20;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       * @return The workerFault.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerFault getWorkerFault() {
        if (workerFaultBuilder_ == null) {
          if (bodyCase_ == 20) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerFault) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance();
        } else {
          if (bodyCase_ == 20) {
            return workerFaultBuilder_.getMessage();
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       */
      public Builder setWorkerFault(mxaccess_worker.v1.MxaccessWorker.WorkerFault value) {
        if (workerFaultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
          onChanged();
        } else {
          workerFaultBuilder_.setMessage(value);
        }
        bodyCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       */
      public Builder setWorkerFault(
          mxaccess_worker.v1.MxaccessWorker.WorkerFault.Builder builderForValue) {
        if (workerFaultBuilder_ == null) {
          body_ = builderForValue.build();
          onChanged();
        } else {
          workerFaultBuilder_.setMessage(builderForValue.build());
        }
        bodyCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       */
      public Builder mergeWorkerFault(mxaccess_worker.v1.MxaccessWorker.WorkerFault value) {
        if (workerFaultBuilder_ == null) {
          if (bodyCase_ == 20 &&
              body_ != mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance()) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerFault.newBuilder((mxaccess_worker.v1.MxaccessWorker.WorkerFault) body_)
                .mergeFrom(value).buildPartial();
          } else {
            body_ = value;
          }
          onChanged();
        } else {
          if (bodyCase_ == 20) {
            workerFaultBuilder_.mergeFrom(value);
          } else {
            workerFaultBuilder_.setMessage(value);
          }
        }
        bodyCase_ = 20;
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       */
      public Builder clearWorkerFault() {
        if (workerFaultBuilder_ == null) {
          if (bodyCase_ == 20) {
            bodyCase_ = 0;
            body_ = null;
            onChanged();
          }
        } else {
          if (bodyCase_ == 20) {
            bodyCase_ = 0;
            body_ = null;
          }
          workerFaultBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       */
      public mxaccess_worker.v1.MxaccessWorker.WorkerFault.Builder getWorkerFaultBuilder() {
        return internalGetWorkerFaultFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerFaultOrBuilder getWorkerFaultOrBuilder() {
        if ((bodyCase_ == 20) && (workerFaultBuilder_ != null)) {
          return workerFaultBuilder_.getMessageOrBuilder();
        } else {
          if (bodyCase_ == 20) {
            return (mxaccess_worker.v1.MxaccessWorker.WorkerFault) body_;
          }
          return mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance();
        }
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFault worker_fault = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_worker.v1.MxaccessWorker.WorkerFault, mxaccess_worker.v1.MxaccessWorker.WorkerFault.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerFaultOrBuilder> 
          internalGetWorkerFaultFieldBuilder() {
        if (workerFaultBuilder_ == null) {
          if (!(bodyCase_ == 20)) {
            body_ = mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance();
          }
          workerFaultBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_worker.v1.MxaccessWorker.WorkerFault, mxaccess_worker.v1.MxaccessWorker.WorkerFault.Builder, mxaccess_worker.v1.MxaccessWorker.WorkerFaultOrBuilder>(
                  (mxaccess_worker.v1.MxaccessWorker.WorkerFault) body_,
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        bodyCase_ = 20;
        onChanged();
        return workerFaultBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerEnvelope)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerEnvelope)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerEnvelope getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GatewayHelloOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.GatewayHello)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>uint32 supported_protocol_version = 1;</code>
     * @return The supportedProtocolVersion.
     */
    int getSupportedProtocolVersion();

    /**
     * <code>string nonce = 2;</code>
     * @return The nonce.
     */
    java.lang.String getNonce();
    /**
     * <code>string nonce = 2;</code>
     * @return The bytes for nonce.
     */
    com.google.protobuf.ByteString
        getNonceBytes();

    /**
     * <code>string gateway_version = 3;</code>
     * @return The gatewayVersion.
     */
    java.lang.String getGatewayVersion();
    /**
     * <code>string gateway_version = 3;</code>
     * @return The bytes for gatewayVersion.
     */
    com.google.protobuf.ByteString
        getGatewayVersionBytes();

    /**
     * <pre>
     * Maximum worker-frame payload size, in bytes, negotiated by the gateway from its
     * configured pipe limit. The worker adopts this as its frame-protocol MaxMessageBytes
     * instead of a hard-coded default; 0 (an older gateway that never set the field) means
     * "use the worker's built-in default". Sits above the public gRPC cap by an
     * envelope-overhead margin so an accepted gRPC payload always fits one worker frame.
     * Every worker-&gt;gateway frame — events, heartbeats, faults, and control replies
     * including DrainEvents — must serialize within this limit; reply builders truncate
     * to fit rather than emit an oversized frame.
     * </pre>
     *
     * <code>uint32 max_frame_bytes = 4;</code>
     * @return The maxFrameBytes.
     */
    int getMaxFrameBytes();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.GatewayHello}
   */
  public static final class GatewayHello extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.GatewayHello)
      GatewayHelloOrBuilder {
  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= */ "",
        "GatewayHello");
    }
    // Use GatewayHello.newBuilder() to construct.
    private GatewayHello(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private GatewayHello() {
      nonce_ = "";
      gatewayVersion_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_GatewayHello_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_GatewayHello_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.GatewayHello.class, mxaccess_worker.v1.MxaccessWorker.GatewayHello.Builder.class);
    }

    public static final int SUPPORTED_PROTOCOL_VERSION_FIELD_NUMBER = 1;
    private int supportedProtocolVersion_ = 0;
    /**
     * <code>uint32 supported_protocol_version = 1;</code>
     * @return The supportedProtocolVersion.
     */
    @java.lang.Override
    public int getSupportedProtocolVersion() {
      return supportedProtocolVersion_;
    }

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

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

    public static final int MAX_FRAME_BYTES_FIELD_NUMBER = 4;
    private int maxFrameBytes_ = 0;
    /**
     * <pre>
     * Maximum worker-frame payload size, in bytes, negotiated by the gateway from its
     * configured pipe limit. The worker adopts this as its frame-protocol MaxMessageBytes
     * instead of a hard-coded default; 0 (an older gateway that never set the field) means
     * "use the worker's built-in default". Sits above the public gRPC cap by an
     * envelope-overhead margin so an accepted gRPC payload always fits one worker frame.
     * Every worker-&gt;gateway frame — events, heartbeats, faults, and control replies
     * including DrainEvents — must serialize within this limit; reply builders truncate
     * to fit rather than emit an oversized frame.
     * </pre>
     *
     * <code>uint32 max_frame_bytes = 4;</code>
     * @return The maxFrameBytes.
     */
    @java.lang.Override
    public int getMaxFrameBytes() {
      return maxFrameBytes_;
    }

    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 (supportedProtocolVersion_ != 0) {
        output.writeUInt32(1, supportedProtocolVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nonce_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, nonce_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(gatewayVersion_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, gatewayVersion_);
      }
      if (maxFrameBytes_ != 0) {
        output.writeUInt32(4, maxFrameBytes_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (supportedProtocolVersion_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, supportedProtocolVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nonce_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, nonce_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(gatewayVersion_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, gatewayVersion_);
      }
      if (maxFrameBytes_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, maxFrameBytes_);
      }
      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_worker.v1.MxaccessWorker.GatewayHello)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.GatewayHello other = (mxaccess_worker.v1.MxaccessWorker.GatewayHello) obj;

      if (getSupportedProtocolVersion()
          != other.getSupportedProtocolVersion()) return false;
      if (!getNonce()
          .equals(other.getNonce())) return false;
      if (!getGatewayVersion()
          .equals(other.getGatewayVersion())) return false;
      if (getMaxFrameBytes()
          != other.getMaxFrameBytes()) 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) + SUPPORTED_PROTOCOL_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getSupportedProtocolVersion();
      hash = (37 * hash) + NONCE_FIELD_NUMBER;
      hash = (53 * hash) + getNonce().hashCode();
      hash = (37 * hash) + GATEWAY_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getGatewayVersion().hashCode();
      hash = (37 * hash) + MAX_FRAME_BYTES_FIELD_NUMBER;
      hash = (53 * hash) + getMaxFrameBytes();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_GatewayHello_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.GatewayHello.class, mxaccess_worker.v1.MxaccessWorker.GatewayHello.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.GatewayHello.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_GatewayHello_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.GatewayHello getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.GatewayHello build() {
        mxaccess_worker.v1.MxaccessWorker.GatewayHello result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.GatewayHello result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.supportedProtocolVersion_ = supportedProtocolVersion_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.nonce_ = nonce_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.gatewayVersion_ = gatewayVersion_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.maxFrameBytes_ = maxFrameBytes_;
        }
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.GatewayHello other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.GatewayHello.getDefaultInstance()) return this;
        if (other.getSupportedProtocolVersion() != 0) {
          setSupportedProtocolVersion(other.getSupportedProtocolVersion());
        }
        if (!other.getNonce().isEmpty()) {
          nonce_ = other.nonce_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getGatewayVersion().isEmpty()) {
          gatewayVersion_ = other.gatewayVersion_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.getMaxFrameBytes() != 0) {
          setMaxFrameBytes(other.getMaxFrameBytes());
        }
        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: {
                supportedProtocolVersion_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                nonce_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                gatewayVersion_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                maxFrameBytes_ = input.readUInt32();
                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 supportedProtocolVersion_ ;
      /**
       * <code>uint32 supported_protocol_version = 1;</code>
       * @return The supportedProtocolVersion.
       */
      @java.lang.Override
      public int getSupportedProtocolVersion() {
        return supportedProtocolVersion_;
      }
      /**
       * <code>uint32 supported_protocol_version = 1;</code>
       * @param value The supportedProtocolVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSupportedProtocolVersion(int value) {

        supportedProtocolVersion_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 supported_protocol_version = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSupportedProtocolVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        supportedProtocolVersion_ = 0;
        onChanged();
        return this;
      }

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

      private java.lang.Object gatewayVersion_ = "";
      /**
       * <code>string gateway_version = 3;</code>
       * @return The gatewayVersion.
       */
      public java.lang.String getGatewayVersion() {
        java.lang.Object ref = gatewayVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          gatewayVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string gateway_version = 3;</code>
       * @return The bytes for gatewayVersion.
       */
      public com.google.protobuf.ByteString
          getGatewayVersionBytes() {
        java.lang.Object ref = gatewayVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          gatewayVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string gateway_version = 3;</code>
       * @param value The gatewayVersion to set.
       * @return This builder for chaining.
       */
      public Builder setGatewayVersion(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        gatewayVersion_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string gateway_version = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGatewayVersion() {
        gatewayVersion_ = getDefaultInstance().getGatewayVersion();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string gateway_version = 3;</code>
       * @param value The bytes for gatewayVersion to set.
       * @return This builder for chaining.
       */
      public Builder setGatewayVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        gatewayVersion_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private int maxFrameBytes_ ;
      /**
       * <pre>
       * Maximum worker-frame payload size, in bytes, negotiated by the gateway from its
       * configured pipe limit. The worker adopts this as its frame-protocol MaxMessageBytes
       * instead of a hard-coded default; 0 (an older gateway that never set the field) means
       * "use the worker's built-in default". Sits above the public gRPC cap by an
       * envelope-overhead margin so an accepted gRPC payload always fits one worker frame.
       * Every worker-&gt;gateway frame — events, heartbeats, faults, and control replies
       * including DrainEvents — must serialize within this limit; reply builders truncate
       * to fit rather than emit an oversized frame.
       * </pre>
       *
       * <code>uint32 max_frame_bytes = 4;</code>
       * @return The maxFrameBytes.
       */
      @java.lang.Override
      public int getMaxFrameBytes() {
        return maxFrameBytes_;
      }
      /**
       * <pre>
       * Maximum worker-frame payload size, in bytes, negotiated by the gateway from its
       * configured pipe limit. The worker adopts this as its frame-protocol MaxMessageBytes
       * instead of a hard-coded default; 0 (an older gateway that never set the field) means
       * "use the worker's built-in default". Sits above the public gRPC cap by an
       * envelope-overhead margin so an accepted gRPC payload always fits one worker frame.
       * Every worker-&gt;gateway frame — events, heartbeats, faults, and control replies
       * including DrainEvents — must serialize within this limit; reply builders truncate
       * to fit rather than emit an oversized frame.
       * </pre>
       *
       * <code>uint32 max_frame_bytes = 4;</code>
       * @param value The maxFrameBytes to set.
       * @return This builder for chaining.
       */
      public Builder setMaxFrameBytes(int value) {

        maxFrameBytes_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Maximum worker-frame payload size, in bytes, negotiated by the gateway from its
       * configured pipe limit. The worker adopts this as its frame-protocol MaxMessageBytes
       * instead of a hard-coded default; 0 (an older gateway that never set the field) means
       * "use the worker's built-in default". Sits above the public gRPC cap by an
       * envelope-overhead margin so an accepted gRPC payload always fits one worker frame.
       * Every worker-&gt;gateway frame — events, heartbeats, faults, and control replies
       * including DrainEvents — must serialize within this limit; reply builders truncate
       * to fit rather than emit an oversized frame.
       * </pre>
       *
       * <code>uint32 max_frame_bytes = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxFrameBytes() {
        bitField0_ = (bitField0_ & ~0x00000008);
        maxFrameBytes_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.GatewayHello)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.GatewayHello)
    private static final mxaccess_worker.v1.MxaccessWorker.GatewayHello DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.GatewayHello();
    }

    public static mxaccess_worker.v1.MxaccessWorker.GatewayHello getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.GatewayHello getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerHelloOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerHello)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>uint32 protocol_version = 1;</code>
     * @return The protocolVersion.
     */
    int getProtocolVersion();

    /**
     * <code>string nonce = 2;</code>
     * @return The nonce.
     */
    java.lang.String getNonce();
    /**
     * <code>string nonce = 2;</code>
     * @return The bytes for nonce.
     */
    com.google.protobuf.ByteString
        getNonceBytes();

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

    /**
     * <code>string worker_version = 4;</code>
     * @return The workerVersion.
     */
    java.lang.String getWorkerVersion();
    /**
     * <code>string worker_version = 4;</code>
     * @return The bytes for workerVersion.
     */
    com.google.protobuf.ByteString
        getWorkerVersionBytes();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerHello}
   */
  public static final class WorkerHello extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerHello)
      WorkerHelloOrBuilder {
  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= */ "",
        "WorkerHello");
    }
    // Use WorkerHello.newBuilder() to construct.
    private WorkerHello(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerHello() {
      nonce_ = "";
      workerVersion_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHello_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHello_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerHello.class, mxaccess_worker.v1.MxaccessWorker.WorkerHello.Builder.class);
    }

    public static final int PROTOCOL_VERSION_FIELD_NUMBER = 1;
    private int protocolVersion_ = 0;
    /**
     * <code>uint32 protocol_version = 1;</code>
     * @return The protocolVersion.
     */
    @java.lang.Override
    public int getProtocolVersion() {
      return protocolVersion_;
    }

    public static final int NONCE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object nonce_ = "";
    /**
     * <code>string nonce = 2;</code>
     * @return The nonce.
     */
    @java.lang.Override
    public java.lang.String getNonce() {
      java.lang.Object ref = nonce_;
      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();
        nonce_ = s;
        return s;
      }
    }
    /**
     * <code>string nonce = 2;</code>
     * @return The bytes for nonce.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNonceBytes() {
      java.lang.Object ref = nonce_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nonce_ = 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_VERSION_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object workerVersion_ = "";
    /**
     * <code>string worker_version = 4;</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 = 4;</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;
      }
    }

    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 (protocolVersion_ != 0) {
        output.writeUInt32(1, protocolVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nonce_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, nonce_);
      }
      if (workerProcessId_ != 0) {
        output.writeInt32(3, workerProcessId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(workerVersion_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, workerVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (protocolVersion_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, protocolVersion_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(nonce_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, nonce_);
      }
      if (workerProcessId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, workerProcessId_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(workerVersion_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, workerVersion_);
      }
      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_worker.v1.MxaccessWorker.WorkerHello)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerHello other = (mxaccess_worker.v1.MxaccessWorker.WorkerHello) obj;

      if (getProtocolVersion()
          != other.getProtocolVersion()) return false;
      if (!getNonce()
          .equals(other.getNonce())) return false;
      if (getWorkerProcessId()
          != other.getWorkerProcessId()) return false;
      if (!getWorkerVersion()
          .equals(other.getWorkerVersion())) 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) + PROTOCOL_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getProtocolVersion();
      hash = (37 * hash) + NONCE_FIELD_NUMBER;
      hash = (53 * hash) + getNonce().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 = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHello_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerHello.class, mxaccess_worker.v1.MxaccessWorker.WorkerHello.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerHello.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHello_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHello getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHello build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerHello result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerHello result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.protocolVersion_ = protocolVersion_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.nonce_ = nonce_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.workerProcessId_ = workerProcessId_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.workerVersion_ = workerVersion_;
        }
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerHello other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerHello.getDefaultInstance()) return this;
        if (other.getProtocolVersion() != 0) {
          setProtocolVersion(other.getProtocolVersion());
        }
        if (!other.getNonce().isEmpty()) {
          nonce_ = other.nonce_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getWorkerProcessId() != 0) {
          setWorkerProcessId(other.getWorkerProcessId());
        }
        if (!other.getWorkerVersion().isEmpty()) {
          workerVersion_ = other.workerVersion_;
          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: {
                protocolVersion_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                nonce_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                workerProcessId_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                workerVersion_ = 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 protocolVersion_ ;
      /**
       * <code>uint32 protocol_version = 1;</code>
       * @return The protocolVersion.
       */
      @java.lang.Override
      public int getProtocolVersion() {
        return protocolVersion_;
      }
      /**
       * <code>uint32 protocol_version = 1;</code>
       * @param value The protocolVersion to set.
       * @return This builder for chaining.
       */
      public Builder setProtocolVersion(int value) {

        protocolVersion_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 protocol_version = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearProtocolVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        protocolVersion_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object nonce_ = "";
      /**
       * <code>string nonce = 2;</code>
       * @return The nonce.
       */
      public java.lang.String getNonce() {
        java.lang.Object ref = nonce_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          nonce_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string nonce = 2;</code>
       * @return The bytes for nonce.
       */
      public com.google.protobuf.ByteString
          getNonceBytes() {
        java.lang.Object ref = nonce_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nonce_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string nonce = 2;</code>
       * @param value The nonce to set.
       * @return This builder for chaining.
       */
      public Builder setNonce(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        nonce_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string nonce = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNonce() {
        nonce_ = getDefaultInstance().getNonce();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string nonce = 2;</code>
       * @param value The bytes for nonce to set.
       * @return This builder for chaining.
       */
      public Builder setNonceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        nonce_ = 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 java.lang.Object workerVersion_ = "";
      /**
       * <code>string worker_version = 4;</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 = 4;</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 = 4;</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_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string worker_version = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearWorkerVersion() {
        workerVersion_ = getDefaultInstance().getWorkerVersion();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string worker_version = 4;</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_ |= 0x00000008;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerHello)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerHello)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerHello DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerHello();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerHello getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerHello getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerReadyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerReady)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <code>string mxaccess_progid = 2;</code>
     * @return The mxaccessProgid.
     */
    java.lang.String getMxaccessProgid();
    /**
     * <code>string mxaccess_progid = 2;</code>
     * @return The bytes for mxaccessProgid.
     */
    com.google.protobuf.ByteString
        getMxaccessProgidBytes();

    /**
     * <code>string mxaccess_clsid = 3;</code>
     * @return The mxaccessClsid.
     */
    java.lang.String getMxaccessClsid();
    /**
     * <code>string mxaccess_clsid = 3;</code>
     * @return The bytes for mxaccessClsid.
     */
    com.google.protobuf.ByteString
        getMxaccessClsidBytes();

    /**
     * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
     * @return Whether the readyTimestamp field is set.
     */
    boolean hasReadyTimestamp();
    /**
     * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
     * @return The readyTimestamp.
     */
    com.google.protobuf.Timestamp getReadyTimestamp();
    /**
     * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
     */
    com.google.protobuf.TimestampOrBuilder getReadyTimestampOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerReady}
   */
  public static final class WorkerReady extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerReady)
      WorkerReadyOrBuilder {
  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= */ "",
        "WorkerReady");
    }
    // Use WorkerReady.newBuilder() to construct.
    private WorkerReady(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerReady() {
      mxaccessProgid_ = "";
      mxaccessClsid_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerReady_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerReady_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerReady.class, mxaccess_worker.v1.MxaccessWorker.WorkerReady.Builder.class);
    }

    private int bitField0_;
    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 MXACCESS_PROGID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object mxaccessProgid_ = "";
    /**
     * <code>string mxaccess_progid = 2;</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 = 2;</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 = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object mxaccessClsid_ = "";
    /**
     * <code>string mxaccess_clsid = 3;</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 = 3;</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;
      }
    }

    public static final int READY_TIMESTAMP_FIELD_NUMBER = 4;
    private com.google.protobuf.Timestamp readyTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
     * @return Whether the readyTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasReadyTimestamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
     * @return The readyTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getReadyTimestamp() {
      return readyTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : readyTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getReadyTimestampOrBuilder() {
      return readyTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : readyTimestamp_;
    }

    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(mxaccessProgid_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, mxaccessProgid_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mxaccessClsid_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, mxaccessClsid_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(4, getReadyTimestamp());
      }
      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(mxaccessProgid_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, mxaccessProgid_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mxaccessClsid_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, mxaccessClsid_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getReadyTimestamp());
      }
      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_worker.v1.MxaccessWorker.WorkerReady)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerReady other = (mxaccess_worker.v1.MxaccessWorker.WorkerReady) obj;

      if (getWorkerProcessId()
          != other.getWorkerProcessId()) return false;
      if (!getMxaccessProgid()
          .equals(other.getMxaccessProgid())) return false;
      if (!getMxaccessClsid()
          .equals(other.getMxaccessClsid())) return false;
      if (hasReadyTimestamp() != other.hasReadyTimestamp()) return false;
      if (hasReadyTimestamp()) {
        if (!getReadyTimestamp()
            .equals(other.getReadyTimestamp())) 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) + MXACCESS_PROGID_FIELD_NUMBER;
      hash = (53 * hash) + getMxaccessProgid().hashCode();
      hash = (37 * hash) + MXACCESS_CLSID_FIELD_NUMBER;
      hash = (53 * hash) + getMxaccessClsid().hashCode();
      if (hasReadyTimestamp()) {
        hash = (37 * hash) + READY_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getReadyTimestamp().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerReady_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerReady.class, mxaccess_worker.v1.MxaccessWorker.WorkerReady.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerReady.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetReadyTimestampFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        workerProcessId_ = 0;
        mxaccessProgid_ = "";
        mxaccessClsid_ = "";
        readyTimestamp_ = null;
        if (readyTimestampBuilder_ != null) {
          readyTimestampBuilder_.dispose();
          readyTimestampBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerReady_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerReady getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerReady build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerReady result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerReady result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.workerProcessId_ = workerProcessId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.mxaccessProgid_ = mxaccessProgid_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.mxaccessClsid_ = mxaccessClsid_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.readyTimestamp_ = readyTimestampBuilder_ == null
              ? readyTimestamp_
              : readyTimestampBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerReady other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerReady.getDefaultInstance()) return this;
        if (other.getWorkerProcessId() != 0) {
          setWorkerProcessId(other.getWorkerProcessId());
        }
        if (!other.getMxaccessProgid().isEmpty()) {
          mxaccessProgid_ = other.mxaccessProgid_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (!other.getMxaccessClsid().isEmpty()) {
          mxaccessClsid_ = other.mxaccessClsid_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasReadyTimestamp()) {
          mergeReadyTimestamp(other.getReadyTimestamp());
        }
        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: {
                mxaccessProgid_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                mxaccessClsid_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    internalGetReadyTimestampFieldBuilder().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 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 mxaccessProgid_ = "";
      /**
       * <code>string mxaccess_progid = 2;</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 = 2;</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 = 2;</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_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_progid = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMxaccessProgid() {
        mxaccessProgid_ = getDefaultInstance().getMxaccessProgid();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_progid = 2;</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_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object mxaccessClsid_ = "";
      /**
       * <code>string mxaccess_clsid = 3;</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 = 3;</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 = 3;</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_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_clsid = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMxaccessClsid() {
        mxaccessClsid_ = getDefaultInstance().getMxaccessClsid();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>string mxaccess_clsid = 3;</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_ |= 0x00000004;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp readyTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> readyTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       * @return Whether the readyTimestamp field is set.
       */
      public boolean hasReadyTimestamp() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       * @return The readyTimestamp.
       */
      public com.google.protobuf.Timestamp getReadyTimestamp() {
        if (readyTimestampBuilder_ == null) {
          return readyTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : readyTimestamp_;
        } else {
          return readyTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       */
      public Builder setReadyTimestamp(com.google.protobuf.Timestamp value) {
        if (readyTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          readyTimestamp_ = value;
        } else {
          readyTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       */
      public Builder setReadyTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (readyTimestampBuilder_ == null) {
          readyTimestamp_ = builderForValue.build();
        } else {
          readyTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       */
      public Builder mergeReadyTimestamp(com.google.protobuf.Timestamp value) {
        if (readyTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            readyTimestamp_ != null &&
            readyTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getReadyTimestampBuilder().mergeFrom(value);
          } else {
            readyTimestamp_ = value;
          }
        } else {
          readyTimestampBuilder_.mergeFrom(value);
        }
        if (readyTimestamp_ != null) {
          bitField0_ |= 0x00000008;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       */
      public Builder clearReadyTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readyTimestamp_ = null;
        if (readyTimestampBuilder_ != null) {
          readyTimestampBuilder_.dispose();
          readyTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       */
      public com.google.protobuf.Timestamp.Builder getReadyTimestampBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return internalGetReadyTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getReadyTimestampOrBuilder() {
        if (readyTimestampBuilder_ != null) {
          return readyTimestampBuilder_.getMessageOrBuilder();
        } else {
          return readyTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : readyTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp ready_timestamp = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetReadyTimestampFieldBuilder() {
        if (readyTimestampBuilder_ == null) {
          readyTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getReadyTimestamp(),
                  getParentForChildren(),
                  isClean());
          readyTimestamp_ = null;
        }
        return readyTimestampBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerReady)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerReady)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerReady DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerReady();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerReady getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerReady getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 1;</code>
     * @return Whether the command field is set.
     */
    boolean hasCommand();
    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 1;</code>
     * @return The command.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommand getCommand();
    /**
     * <code>.mxaccess_gateway.v1.MxCommand command = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommandOrBuilder getCommandOrBuilder();

    /**
     * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
     * @return Whether the enqueueTimestamp field is set.
     */
    boolean hasEnqueueTimestamp();
    /**
     * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
     * @return The enqueueTimestamp.
     */
    com.google.protobuf.Timestamp getEnqueueTimestamp();
    /**
     * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
     */
    com.google.protobuf.TimestampOrBuilder getEnqueueTimestampOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerCommand}
   */
  public static final class WorkerCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerCommand)
      WorkerCommandOrBuilder {
  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= */ "",
        "WorkerCommand");
    }
    // Use WorkerCommand.newBuilder() to construct.
    private WorkerCommand(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerCommand() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerCommand.class, mxaccess_worker.v1.MxaccessWorker.WorkerCommand.Builder.class);
    }

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

    public static final int ENQUEUE_TIMESTAMP_FIELD_NUMBER = 2;
    private com.google.protobuf.Timestamp enqueueTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
     * @return Whether the enqueueTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasEnqueueTimestamp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
     * @return The enqueueTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getEnqueueTimestamp() {
      return enqueueTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : enqueueTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getEnqueueTimestampOrBuilder() {
      return enqueueTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : enqueueTimestamp_;
    }

    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, getCommand());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getEnqueueTimestamp());
      }
      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, getCommand());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getEnqueueTimestamp());
      }
      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_worker.v1.MxaccessWorker.WorkerCommand)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerCommand other = (mxaccess_worker.v1.MxaccessWorker.WorkerCommand) obj;

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

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerCommand.class, mxaccess_worker.v1.MxaccessWorker.WorkerCommand.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerCommand.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();
          internalGetEnqueueTimestampFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        command_ = null;
        if (commandBuilder_ != null) {
          commandBuilder_.dispose();
          commandBuilder_ = null;
        }
        enqueueTimestamp_ = null;
        if (enqueueTimestampBuilder_ != null) {
          enqueueTimestampBuilder_.dispose();
          enqueueTimestampBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommand_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommand getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommand build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerCommand result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.command_ = commandBuilder_ == null
              ? command_
              : commandBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.enqueueTimestamp_ = enqueueTimestampBuilder_ == null
              ? enqueueTimestamp_
              : enqueueTimestampBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerCommand other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerCommand.getDefaultInstance()) return this;
        if (other.hasCommand()) {
          mergeCommand(other.getCommand());
        }
        if (other.hasEnqueueTimestamp()) {
          mergeEnqueueTimestamp(other.getEnqueueTimestamp());
        }
        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(
                    internalGetCommandFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    internalGetEnqueueTimestampFieldBuilder().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 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 = 1;</code>
       * @return Whether the command field is set.
       */
      public boolean hasCommand() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 1;</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 = 1;</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_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 1;</code>
       */
      public Builder setCommand(
          mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder builderForValue) {
        if (commandBuilder_ == null) {
          command_ = builderForValue.build();
        } else {
          commandBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 1;</code>
       */
      public Builder mergeCommand(mxaccess_gateway.v1.MxaccessGateway.MxCommand value) {
        if (commandBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            command_ != null &&
            command_ != mxaccess_gateway.v1.MxaccessGateway.MxCommand.getDefaultInstance()) {
            getCommandBuilder().mergeFrom(value);
          } else {
            command_ = value;
          }
        } else {
          commandBuilder_.mergeFrom(value);
        }
        if (command_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 1;</code>
       */
      public Builder clearCommand() {
        bitField0_ = (bitField0_ & ~0x00000001);
        command_ = null;
        if (commandBuilder_ != null) {
          commandBuilder_.dispose();
          commandBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxCommand.Builder getCommandBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetCommandFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommand command = 1;</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 = 1;</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_;
      }

      private com.google.protobuf.Timestamp enqueueTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> enqueueTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       * @return Whether the enqueueTimestamp field is set.
       */
      public boolean hasEnqueueTimestamp() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       * @return The enqueueTimestamp.
       */
      public com.google.protobuf.Timestamp getEnqueueTimestamp() {
        if (enqueueTimestampBuilder_ == null) {
          return enqueueTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : enqueueTimestamp_;
        } else {
          return enqueueTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       */
      public Builder setEnqueueTimestamp(com.google.protobuf.Timestamp value) {
        if (enqueueTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          enqueueTimestamp_ = value;
        } else {
          enqueueTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       */
      public Builder setEnqueueTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (enqueueTimestampBuilder_ == null) {
          enqueueTimestamp_ = builderForValue.build();
        } else {
          enqueueTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       */
      public Builder mergeEnqueueTimestamp(com.google.protobuf.Timestamp value) {
        if (enqueueTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            enqueueTimestamp_ != null &&
            enqueueTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getEnqueueTimestampBuilder().mergeFrom(value);
          } else {
            enqueueTimestamp_ = value;
          }
        } else {
          enqueueTimestampBuilder_.mergeFrom(value);
        }
        if (enqueueTimestamp_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       */
      public Builder clearEnqueueTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        enqueueTimestamp_ = null;
        if (enqueueTimestampBuilder_ != null) {
          enqueueTimestampBuilder_.dispose();
          enqueueTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       */
      public com.google.protobuf.Timestamp.Builder getEnqueueTimestampBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetEnqueueTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getEnqueueTimestampOrBuilder() {
        if (enqueueTimestampBuilder_ != null) {
          return enqueueTimestampBuilder_.getMessageOrBuilder();
        } else {
          return enqueueTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : enqueueTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp enqueue_timestamp = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetEnqueueTimestampFieldBuilder() {
        if (enqueueTimestampBuilder_ == null) {
          enqueueTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getEnqueueTimestamp(),
                  getParentForChildren(),
                  isClean());
          enqueueTimestamp_ = null;
        }
        return enqueueTimestampBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerCommand)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerCommand)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerCommand();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerCommandReplyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerCommandReply)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
     * @return Whether the reply field is set.
     */
    boolean hasReply();
    /**
     * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
     * @return The reply.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommandReply getReply();
    /**
     * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxCommandReplyOrBuilder getReplyOrBuilder();

    /**
     * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
     * @return Whether the completedTimestamp field is set.
     */
    boolean hasCompletedTimestamp();
    /**
     * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
     * @return The completedTimestamp.
     */
    com.google.protobuf.Timestamp getCompletedTimestamp();
    /**
     * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
     */
    com.google.protobuf.TimestampOrBuilder getCompletedTimestampOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerCommandReply}
   */
  public static final class WorkerCommandReply extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerCommandReply)
      WorkerCommandReplyOrBuilder {
  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= */ "",
        "WorkerCommandReply");
    }
    // Use WorkerCommandReply.newBuilder() to construct.
    private WorkerCommandReply(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerCommandReply() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommandReply_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommandReply_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.class, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.Builder.class);
    }

    private int bitField0_;
    public static final int REPLY_FIELD_NUMBER = 1;
    private mxaccess_gateway.v1.MxaccessGateway.MxCommandReply reply_;
    /**
     * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
     * @return Whether the reply field is set.
     */
    @java.lang.Override
    public boolean hasReply() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
     * @return The reply.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxCommandReply getReply() {
      return reply_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.getDefaultInstance() : reply_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxCommandReplyOrBuilder getReplyOrBuilder() {
      return reply_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.getDefaultInstance() : reply_;
    }

    public static final int COMPLETED_TIMESTAMP_FIELD_NUMBER = 2;
    private com.google.protobuf.Timestamp completedTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
     * @return Whether the completedTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasCompletedTimestamp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
     * @return The completedTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getCompletedTimestamp() {
      return completedTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getCompletedTimestampOrBuilder() {
      return completedTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedTimestamp_;
    }

    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, getReply());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getCompletedTimestamp());
      }
      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, getReply());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getCompletedTimestamp());
      }
      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_worker.v1.MxaccessWorker.WorkerCommandReply)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply other = (mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply) obj;

      if (hasReply() != other.hasReply()) return false;
      if (hasReply()) {
        if (!getReply()
            .equals(other.getReply())) return false;
      }
      if (hasCompletedTimestamp() != other.hasCompletedTimestamp()) return false;
      if (hasCompletedTimestamp()) {
        if (!getCompletedTimestamp()
            .equals(other.getCompletedTimestamp())) 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 (hasReply()) {
        hash = (37 * hash) + REPLY_FIELD_NUMBER;
        hash = (53 * hash) + getReply().hashCode();
      }
      if (hasCompletedTimestamp()) {
        hash = (37 * hash) + COMPLETED_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getCompletedTimestamp().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommandReply_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.class, mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetReplyFieldBuilder();
          internalGetCompletedTimestampFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        reply_ = null;
        if (replyBuilder_ != null) {
          replyBuilder_.dispose();
          replyBuilder_ = null;
        }
        completedTimestamp_ = null;
        if (completedTimestampBuilder_ != null) {
          completedTimestampBuilder_.dispose();
          completedTimestampBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCommandReply_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.reply_ = replyBuilder_ == null
              ? reply_
              : replyBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.completedTimestamp_ = completedTimestampBuilder_ == null
              ? completedTimestamp_
              : completedTimestampBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply.getDefaultInstance()) return this;
        if (other.hasReply()) {
          mergeReply(other.getReply());
        }
        if (other.hasCompletedTimestamp()) {
          mergeCompletedTimestamp(other.getCompletedTimestamp());
        }
        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(
                    internalGetReplyFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    internalGetCompletedTimestampFieldBuilder().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 mxaccess_gateway.v1.MxaccessGateway.MxCommandReply reply_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxCommandReply, mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.Builder, mxaccess_gateway.v1.MxaccessGateway.MxCommandReplyOrBuilder> replyBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       * @return Whether the reply field is set.
       */
      public boolean hasReply() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       * @return The reply.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandReply getReply() {
        if (replyBuilder_ == null) {
          return reply_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.getDefaultInstance() : reply_;
        } else {
          return replyBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       */
      public Builder setReply(mxaccess_gateway.v1.MxaccessGateway.MxCommandReply value) {
        if (replyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reply_ = value;
        } else {
          replyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       */
      public Builder setReply(
          mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.Builder builderForValue) {
        if (replyBuilder_ == null) {
          reply_ = builderForValue.build();
        } else {
          replyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       */
      public Builder mergeReply(mxaccess_gateway.v1.MxaccessGateway.MxCommandReply value) {
        if (replyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            reply_ != null &&
            reply_ != mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.getDefaultInstance()) {
            getReplyBuilder().mergeFrom(value);
          } else {
            reply_ = value;
          }
        } else {
          replyBuilder_.mergeFrom(value);
        }
        if (reply_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       */
      public Builder clearReply() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reply_ = null;
        if (replyBuilder_ != null) {
          replyBuilder_.dispose();
          replyBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.Builder getReplyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetReplyFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxCommandReplyOrBuilder getReplyOrBuilder() {
        if (replyBuilder_ != null) {
          return replyBuilder_.getMessageOrBuilder();
        } else {
          return reply_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.getDefaultInstance() : reply_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxCommandReply reply = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxCommandReply, mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.Builder, mxaccess_gateway.v1.MxaccessGateway.MxCommandReplyOrBuilder> 
          internalGetReplyFieldBuilder() {
        if (replyBuilder_ == null) {
          replyBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxCommandReply, mxaccess_gateway.v1.MxaccessGateway.MxCommandReply.Builder, mxaccess_gateway.v1.MxaccessGateway.MxCommandReplyOrBuilder>(
                  getReply(),
                  getParentForChildren(),
                  isClean());
          reply_ = null;
        }
        return replyBuilder_;
      }

      private com.google.protobuf.Timestamp completedTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> completedTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       * @return Whether the completedTimestamp field is set.
       */
      public boolean hasCompletedTimestamp() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       * @return The completedTimestamp.
       */
      public com.google.protobuf.Timestamp getCompletedTimestamp() {
        if (completedTimestampBuilder_ == null) {
          return completedTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : completedTimestamp_;
        } else {
          return completedTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       */
      public Builder setCompletedTimestamp(com.google.protobuf.Timestamp value) {
        if (completedTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          completedTimestamp_ = value;
        } else {
          completedTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       */
      public Builder setCompletedTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (completedTimestampBuilder_ == null) {
          completedTimestamp_ = builderForValue.build();
        } else {
          completedTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       */
      public Builder mergeCompletedTimestamp(com.google.protobuf.Timestamp value) {
        if (completedTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            completedTimestamp_ != null &&
            completedTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getCompletedTimestampBuilder().mergeFrom(value);
          } else {
            completedTimestamp_ = value;
          }
        } else {
          completedTimestampBuilder_.mergeFrom(value);
        }
        if (completedTimestamp_ != null) {
          bitField0_ |= 0x00000002;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       */
      public Builder clearCompletedTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        completedTimestamp_ = null;
        if (completedTimestampBuilder_ != null) {
          completedTimestampBuilder_.dispose();
          completedTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       */
      public com.google.protobuf.Timestamp.Builder getCompletedTimestampBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return internalGetCompletedTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getCompletedTimestampOrBuilder() {
        if (completedTimestampBuilder_ != null) {
          return completedTimestampBuilder_.getMessageOrBuilder();
        } else {
          return completedTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : completedTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp completed_timestamp = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetCompletedTimestampFieldBuilder() {
        if (completedTimestampBuilder_ == null) {
          completedTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getCompletedTimestamp(),
                  getParentForChildren(),
                  isClean());
          completedTimestamp_ = null;
        }
        return completedTimestampBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerCommandReply)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerCommandReply)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCommandReply getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerCancelOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerCancel)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string reason = 1;</code>
     * @return The reason.
     */
    java.lang.String getReason();
    /**
     * <code>string reason = 1;</code>
     * @return The bytes for reason.
     */
    com.google.protobuf.ByteString
        getReasonBytes();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerCancel}
   */
  public static final class WorkerCancel extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerCancel)
      WorkerCancelOrBuilder {
  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= */ "",
        "WorkerCancel");
    }
    // Use WorkerCancel.newBuilder() to construct.
    private WorkerCancel(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerCancel() {
      reason_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCancel_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCancel_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerCancel.class, mxaccess_worker.v1.MxaccessWorker.WorkerCancel.Builder.class);
    }

    public static final int REASON_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object reason_ = "";
    /**
     * <code>string reason = 1;</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 = 1;</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;
      }
    }

    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(reason_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, reason_);
      }
      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(reason_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, reason_);
      }
      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_worker.v1.MxaccessWorker.WorkerCancel)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerCancel other = (mxaccess_worker.v1.MxaccessWorker.WorkerCancel) obj;

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

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCancel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerCancel.class, mxaccess_worker.v1.MxaccessWorker.WorkerCancel.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerCancel.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerCancel_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCancel getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerCancel build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerCancel result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerCancel result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.reason_ = reason_;
        }
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerCancel other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerCancel.getDefaultInstance()) return this;
        if (!other.getReason().isEmpty()) {
          reason_ = other.reason_;
          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: {
                reason_ = 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 reason_ = "";
      /**
       * <code>string reason = 1;</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 = 1;</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 = 1;</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_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string reason = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearReason() {
        reason_ = getDefaultInstance().getReason();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string reason = 1;</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_ |= 0x00000001;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerCancel)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerCancel)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerCancel DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerCancel();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerCancel getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerCancel getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerShutdownOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerShutdown)
      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();

    /**
     * <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();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerShutdown}
   */
  public static final class WorkerShutdown extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerShutdown)
      WorkerShutdownOrBuilder {
  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= */ "",
        "WorkerShutdown");
    }
    // Use WorkerShutdown.newBuilder() to construct.
    private WorkerShutdown(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerShutdown() {
      reason_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdown_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdown_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.class, mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.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_;
    }

    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;
      }
    }

    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());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(reason_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, reason_);
      }
      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());
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(reason_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, reason_);
      }
      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_worker.v1.MxaccessWorker.WorkerShutdown)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerShutdown other = (mxaccess_worker.v1.MxaccessWorker.WorkerShutdown) obj;

      if (hasGracePeriod() != other.hasGracePeriod()) return false;
      if (hasGracePeriod()) {
        if (!getGracePeriod()
            .equals(other.getGracePeriod())) return false;
      }
      if (!getReason()
          .equals(other.getReason())) 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 = (37 * hash) + REASON_FIELD_NUMBER;
      hash = (53 * hash) + getReason().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdown_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.class, mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.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;
        }
        reason_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdown_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdown getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdown build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerShutdown result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerShutdown result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gracePeriod_ = gracePeriodBuilder_ == null
              ? gracePeriod_
              : gracePeriodBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.reason_ = reason_;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerShutdown other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerShutdown.getDefaultInstance()) return this;
        if (other.hasGracePeriod()) {
          mergeGracePeriod(other.getGracePeriod());
        }
        if (!other.getReason().isEmpty()) {
          reason_ = other.reason_;
          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: {
                input.readMessage(
                    internalGetGracePeriodFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                reason_ = 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 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_;
      }

      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;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerShutdown)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerShutdown)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerShutdown DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerShutdown();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdown getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerShutdown getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerShutdownAckOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerShutdownAck)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
     * @return The status.
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getStatusOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerShutdownAck}
   */
  public static final class WorkerShutdownAck extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerShutdownAck)
      WorkerShutdownAckOrBuilder {
  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= */ "",
        "WorkerShutdownAck");
    }
    // Use WorkerShutdownAck.newBuilder() to construct.
    private WorkerShutdownAck(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerShutdownAck() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdownAck_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdownAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.class, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.Builder.class);
    }

    private int bitField0_;
    public static final int STATUS_FIELD_NUMBER = 1;
    private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus status_;
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
     * @return The status.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getStatus() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : status_;
    }
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getStatusOrBuilder() {
      return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.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_worker.v1.MxaccessWorker.WorkerShutdownAck)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck other = (mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck) 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_worker.v1.MxaccessWorker.WorkerShutdownAck parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck 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_worker.v1.MxaccessWorker.WorkerShutdownAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdownAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.class, mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.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_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerShutdownAck_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck 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_worker.v1.MxaccessWorker.WorkerShutdownAck) {
          return mergeFrom((mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck.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.ProtocolStatus status_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> statusBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
       * @return Whether the status field is set.
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
       * @return The status.
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null ? mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
       */
      public Builder setStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus 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.ProtocolStatus status = 1;</code>
       */
      public Builder setStatus(
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
       */
      public Builder mergeStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            status_ != null &&
            status_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance()) {
            getStatusBuilder().mergeFrom(value);
          } else {
            status_ = value;
          }
        } else {
          statusBuilder_.mergeFrom(value);
        }
        if (status_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus 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.ProtocolStatus status = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance() : status_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus status = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder> 
          internalGetStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder, mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder>(
                  getStatus(),
                  getParentForChildren(),
                  isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerShutdownAck)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerShutdownAck)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerShutdownAck getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
     * @return Whether the event field is set.
     */
    boolean hasEvent();
    /**
     * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
     * @return The event.
     */
    mxaccess_gateway.v1.MxaccessGateway.MxEvent getEvent();
    /**
     * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder getEventOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerEvent}
   */
  public static final class WorkerEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerEvent)
      WorkerEventOrBuilder {
  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= */ "",
        "WorkerEvent");
    }
    // Use WorkerEvent.newBuilder() to construct.
    private WorkerEvent(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerEvent() {
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerEvent.class, mxaccess_worker.v1.MxaccessWorker.WorkerEvent.Builder.class);
    }

    private int bitField0_;
    public static final int EVENT_FIELD_NUMBER = 1;
    private mxaccess_gateway.v1.MxaccessGateway.MxEvent event_;
    /**
     * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
     * @return Whether the event field is set.
     */
    @java.lang.Override
    public boolean hasEvent() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
     * @return The event.
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxEvent getEvent() {
      return event_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance() : event_;
    }
    /**
     * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
     */
    @java.lang.Override
    public mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder getEventOrBuilder() {
      return event_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance() : event_;
    }

    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, getEvent());
      }
      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, getEvent());
      }
      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_worker.v1.MxaccessWorker.WorkerEvent)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerEvent other = (mxaccess_worker.v1.MxaccessWorker.WorkerEvent) obj;

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

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerEvent.class, mxaccess_worker.v1.MxaccessWorker.WorkerEvent.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetEventFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        event_ = null;
        if (eventBuilder_ != null) {
          eventBuilder_.dispose();
          eventBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerEvent_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerEvent getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerEvent build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerEvent result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.event_ = eventBuilder_ == null
              ? event_
              : eventBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerEvent other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerEvent.getDefaultInstance()) return this;
        if (other.hasEvent()) {
          mergeEvent(other.getEvent());
        }
        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(
                    internalGetEventFieldBuilder().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.MxEvent event_;
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxEvent, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder> eventBuilder_;
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       * @return Whether the event field is set.
       */
      public boolean hasEvent() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       * @return The event.
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent getEvent() {
        if (eventBuilder_ == null) {
          return event_ == null ? mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance() : event_;
        } else {
          return eventBuilder_.getMessage();
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       */
      public Builder setEvent(mxaccess_gateway.v1.MxaccessGateway.MxEvent value) {
        if (eventBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          event_ = value;
        } else {
          eventBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       */
      public Builder setEvent(
          mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder builderForValue) {
        if (eventBuilder_ == null) {
          event_ = builderForValue.build();
        } else {
          eventBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       */
      public Builder mergeEvent(mxaccess_gateway.v1.MxaccessGateway.MxEvent value) {
        if (eventBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            event_ != null &&
            event_ != mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance()) {
            getEventBuilder().mergeFrom(value);
          } else {
            event_ = value;
          }
        } else {
          eventBuilder_.mergeFrom(value);
        }
        if (event_ != null) {
          bitField0_ |= 0x00000001;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       */
      public Builder clearEvent() {
        bitField0_ = (bitField0_ & ~0x00000001);
        event_ = null;
        if (eventBuilder_ != null) {
          eventBuilder_.dispose();
          eventBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder getEventBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return internalGetEventFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder getEventOrBuilder() {
        if (eventBuilder_ != null) {
          return eventBuilder_.getMessageOrBuilder();
        } else {
          return event_ == null ?
              mxaccess_gateway.v1.MxaccessGateway.MxEvent.getDefaultInstance() : event_;
        }
      }
      /**
       * <code>.mxaccess_gateway.v1.MxEvent event = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          mxaccess_gateway.v1.MxaccessGateway.MxEvent, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder> 
          internalGetEventFieldBuilder() {
        if (eventBuilder_ == null) {
          eventBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              mxaccess_gateway.v1.MxaccessGateway.MxEvent, mxaccess_gateway.v1.MxaccessGateway.MxEvent.Builder, mxaccess_gateway.v1.MxaccessGateway.MxEventOrBuilder>(
                  getEvent(),
                  getParentForChildren(),
                  isClean());
          event_ = null;
        }
        return eventBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerEvent)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerEvent)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerEvent();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerHeartbeatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerHeartbeat)
      com.google.protobuf.MessageOrBuilder {

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

    /**
     * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
     * @return The enum numeric value on the wire for state.
     */
    int getStateValue();
    /**
     * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
     * @return The state.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerState getState();

    /**
     * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
     * @return Whether the lastStaActivityTimestamp field is set.
     */
    boolean hasLastStaActivityTimestamp();
    /**
     * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
     * @return The lastStaActivityTimestamp.
     */
    com.google.protobuf.Timestamp getLastStaActivityTimestamp();
    /**
     * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
     */
    com.google.protobuf.TimestampOrBuilder getLastStaActivityTimestampOrBuilder();

    /**
     * <code>uint32 pending_command_count = 4;</code>
     * @return The pendingCommandCount.
     */
    int getPendingCommandCount();

    /**
     * <code>uint32 outbound_event_queue_depth = 5;</code>
     * @return The outboundEventQueueDepth.
     */
    int getOutboundEventQueueDepth();

    /**
     * <code>uint64 last_event_sequence = 6;</code>
     * @return The lastEventSequence.
     */
    long getLastEventSequence();

    /**
     * <code>string current_command_correlation_id = 7;</code>
     * @return The currentCommandCorrelationId.
     */
    java.lang.String getCurrentCommandCorrelationId();
    /**
     * <code>string current_command_correlation_id = 7;</code>
     * @return The bytes for currentCommandCorrelationId.
     */
    com.google.protobuf.ByteString
        getCurrentCommandCorrelationIdBytes();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerHeartbeat}
   */
  public static final class WorkerHeartbeat extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerHeartbeat)
      WorkerHeartbeatOrBuilder {
  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= */ "",
        "WorkerHeartbeat");
    }
    // Use WorkerHeartbeat.newBuilder() to construct.
    private WorkerHeartbeat(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerHeartbeat() {
      state_ = 0;
      currentCommandCorrelationId_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHeartbeat_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHeartbeat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.class, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.Builder.class);
    }

    private int bitField0_;
    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 STATE_FIELD_NUMBER = 2;
    private int state_ = 0;
    /**
     * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override public int getStateValue() {
      return state_;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
     * @return The state.
     */
    @java.lang.Override public mxaccess_worker.v1.MxaccessWorker.WorkerState getState() {
      mxaccess_worker.v1.MxaccessWorker.WorkerState result = mxaccess_worker.v1.MxaccessWorker.WorkerState.forNumber(state_);
      return result == null ? mxaccess_worker.v1.MxaccessWorker.WorkerState.UNRECOGNIZED : result;
    }

    public static final int LAST_STA_ACTIVITY_TIMESTAMP_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp lastStaActivityTimestamp_;
    /**
     * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
     * @return Whether the lastStaActivityTimestamp field is set.
     */
    @java.lang.Override
    public boolean hasLastStaActivityTimestamp() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
     * @return The lastStaActivityTimestamp.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getLastStaActivityTimestamp() {
      return lastStaActivityTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastStaActivityTimestamp_;
    }
    /**
     * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getLastStaActivityTimestampOrBuilder() {
      return lastStaActivityTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastStaActivityTimestamp_;
    }

    public static final int PENDING_COMMAND_COUNT_FIELD_NUMBER = 4;
    private int pendingCommandCount_ = 0;
    /**
     * <code>uint32 pending_command_count = 4;</code>
     * @return The pendingCommandCount.
     */
    @java.lang.Override
    public int getPendingCommandCount() {
      return pendingCommandCount_;
    }

    public static final int OUTBOUND_EVENT_QUEUE_DEPTH_FIELD_NUMBER = 5;
    private int outboundEventQueueDepth_ = 0;
    /**
     * <code>uint32 outbound_event_queue_depth = 5;</code>
     * @return The outboundEventQueueDepth.
     */
    @java.lang.Override
    public int getOutboundEventQueueDepth() {
      return outboundEventQueueDepth_;
    }

    public static final int LAST_EVENT_SEQUENCE_FIELD_NUMBER = 6;
    private long lastEventSequence_ = 0L;
    /**
     * <code>uint64 last_event_sequence = 6;</code>
     * @return The lastEventSequence.
     */
    @java.lang.Override
    public long getLastEventSequence() {
      return lastEventSequence_;
    }

    public static final int CURRENT_COMMAND_CORRELATION_ID_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object currentCommandCorrelationId_ = "";
    /**
     * <code>string current_command_correlation_id = 7;</code>
     * @return The currentCommandCorrelationId.
     */
    @java.lang.Override
    public java.lang.String getCurrentCommandCorrelationId() {
      java.lang.Object ref = currentCommandCorrelationId_;
      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();
        currentCommandCorrelationId_ = s;
        return s;
      }
    }
    /**
     * <code>string current_command_correlation_id = 7;</code>
     * @return The bytes for currentCommandCorrelationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCurrentCommandCorrelationIdBytes() {
      java.lang.Object ref = currentCommandCorrelationId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        currentCommandCorrelationId_ = 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 (state_ != mxaccess_worker.v1.MxaccessWorker.WorkerState.WORKER_STATE_UNSPECIFIED.getNumber()) {
        output.writeEnum(2, state_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(3, getLastStaActivityTimestamp());
      }
      if (pendingCommandCount_ != 0) {
        output.writeUInt32(4, pendingCommandCount_);
      }
      if (outboundEventQueueDepth_ != 0) {
        output.writeUInt32(5, outboundEventQueueDepth_);
      }
      if (lastEventSequence_ != 0L) {
        output.writeUInt64(6, lastEventSequence_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(currentCommandCorrelationId_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 7, currentCommandCorrelationId_);
      }
      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 (state_ != mxaccess_worker.v1.MxaccessWorker.WorkerState.WORKER_STATE_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, state_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getLastStaActivityTimestamp());
      }
      if (pendingCommandCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, pendingCommandCount_);
      }
      if (outboundEventQueueDepth_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, outboundEventQueueDepth_);
      }
      if (lastEventSequence_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(6, lastEventSequence_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(currentCommandCorrelationId_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(7, currentCommandCorrelationId_);
      }
      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_worker.v1.MxaccessWorker.WorkerHeartbeat)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat other = (mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat) obj;

      if (getWorkerProcessId()
          != other.getWorkerProcessId()) return false;
      if (state_ != other.state_) return false;
      if (hasLastStaActivityTimestamp() != other.hasLastStaActivityTimestamp()) return false;
      if (hasLastStaActivityTimestamp()) {
        if (!getLastStaActivityTimestamp()
            .equals(other.getLastStaActivityTimestamp())) return false;
      }
      if (getPendingCommandCount()
          != other.getPendingCommandCount()) return false;
      if (getOutboundEventQueueDepth()
          != other.getOutboundEventQueueDepth()) return false;
      if (getLastEventSequence()
          != other.getLastEventSequence()) return false;
      if (!getCurrentCommandCorrelationId()
          .equals(other.getCurrentCommandCorrelationId())) 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) + STATE_FIELD_NUMBER;
      hash = (53 * hash) + state_;
      if (hasLastStaActivityTimestamp()) {
        hash = (37 * hash) + LAST_STA_ACTIVITY_TIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getLastStaActivityTimestamp().hashCode();
      }
      hash = (37 * hash) + PENDING_COMMAND_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getPendingCommandCount();
      hash = (37 * hash) + OUTBOUND_EVENT_QUEUE_DEPTH_FIELD_NUMBER;
      hash = (53 * hash) + getOutboundEventQueueDepth();
      hash = (37 * hash) + LAST_EVENT_SEQUENCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getLastEventSequence());
      hash = (37 * hash) + CURRENT_COMMAND_CORRELATION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCurrentCommandCorrelationId().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHeartbeat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.class, mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          internalGetLastStaActivityTimestampFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        workerProcessId_ = 0;
        state_ = 0;
        lastStaActivityTimestamp_ = null;
        if (lastStaActivityTimestampBuilder_ != null) {
          lastStaActivityTimestampBuilder_.dispose();
          lastStaActivityTimestampBuilder_ = null;
        }
        pendingCommandCount_ = 0;
        outboundEventQueueDepth_ = 0;
        lastEventSequence_ = 0L;
        currentCommandCorrelationId_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerHeartbeat_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.workerProcessId_ = workerProcessId_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.state_ = state_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.lastStaActivityTimestamp_ = lastStaActivityTimestampBuilder_ == null
              ? lastStaActivityTimestamp_
              : lastStaActivityTimestampBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.pendingCommandCount_ = pendingCommandCount_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.outboundEventQueueDepth_ = outboundEventQueueDepth_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.lastEventSequence_ = lastEventSequence_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.currentCommandCorrelationId_ = currentCommandCorrelationId_;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat.getDefaultInstance()) return this;
        if (other.getWorkerProcessId() != 0) {
          setWorkerProcessId(other.getWorkerProcessId());
        }
        if (other.state_ != 0) {
          setStateValue(other.getStateValue());
        }
        if (other.hasLastStaActivityTimestamp()) {
          mergeLastStaActivityTimestamp(other.getLastStaActivityTimestamp());
        }
        if (other.getPendingCommandCount() != 0) {
          setPendingCommandCount(other.getPendingCommandCount());
        }
        if (other.getOutboundEventQueueDepth() != 0) {
          setOutboundEventQueueDepth(other.getOutboundEventQueueDepth());
        }
        if (other.getLastEventSequence() != 0L) {
          setLastEventSequence(other.getLastEventSequence());
        }
        if (!other.getCurrentCommandCorrelationId().isEmpty()) {
          currentCommandCorrelationId_ = other.currentCommandCorrelationId_;
          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: {
                workerProcessId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                state_ = input.readEnum();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    internalGetLastStaActivityTimestampFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                pendingCommandCount_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                outboundEventQueueDepth_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                lastEventSequence_ = input.readUInt64();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 58: {
                currentCommandCorrelationId_ = 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 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 int state_ = 0;
      /**
       * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
       * @return The enum numeric value on the wire for state.
       */
      @java.lang.Override public int getStateValue() {
        return state_;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerState state = 2;</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_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
       * @return The state.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerState getState() {
        mxaccess_worker.v1.MxaccessWorker.WorkerState result = mxaccess_worker.v1.MxaccessWorker.WorkerState.forNumber(state_);
        return result == null ? mxaccess_worker.v1.MxaccessWorker.WorkerState.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setState(mxaccess_worker.v1.MxaccessWorker.WorkerState value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000002;
        state_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerState state = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        state_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Timestamp lastStaActivityTimestamp_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> lastStaActivityTimestampBuilder_;
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       * @return Whether the lastStaActivityTimestamp field is set.
       */
      public boolean hasLastStaActivityTimestamp() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       * @return The lastStaActivityTimestamp.
       */
      public com.google.protobuf.Timestamp getLastStaActivityTimestamp() {
        if (lastStaActivityTimestampBuilder_ == null) {
          return lastStaActivityTimestamp_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : lastStaActivityTimestamp_;
        } else {
          return lastStaActivityTimestampBuilder_.getMessage();
        }
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       */
      public Builder setLastStaActivityTimestamp(com.google.protobuf.Timestamp value) {
        if (lastStaActivityTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastStaActivityTimestamp_ = value;
        } else {
          lastStaActivityTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       */
      public Builder setLastStaActivityTimestamp(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (lastStaActivityTimestampBuilder_ == null) {
          lastStaActivityTimestamp_ = builderForValue.build();
        } else {
          lastStaActivityTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       */
      public Builder mergeLastStaActivityTimestamp(com.google.protobuf.Timestamp value) {
        if (lastStaActivityTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            lastStaActivityTimestamp_ != null &&
            lastStaActivityTimestamp_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
            getLastStaActivityTimestampBuilder().mergeFrom(value);
          } else {
            lastStaActivityTimestamp_ = value;
          }
        } else {
          lastStaActivityTimestampBuilder_.mergeFrom(value);
        }
        if (lastStaActivityTimestamp_ != null) {
          bitField0_ |= 0x00000004;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       */
      public Builder clearLastStaActivityTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lastStaActivityTimestamp_ = null;
        if (lastStaActivityTimestampBuilder_ != null) {
          lastStaActivityTimestampBuilder_.dispose();
          lastStaActivityTimestampBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       */
      public com.google.protobuf.Timestamp.Builder getLastStaActivityTimestampBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return internalGetLastStaActivityTimestampFieldBuilder().getBuilder();
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       */
      public com.google.protobuf.TimestampOrBuilder getLastStaActivityTimestampOrBuilder() {
        if (lastStaActivityTimestampBuilder_ != null) {
          return lastStaActivityTimestampBuilder_.getMessageOrBuilder();
        } else {
          return lastStaActivityTimestamp_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : lastStaActivityTimestamp_;
        }
      }
      /**
       * <code>.google.protobuf.Timestamp last_sta_activity_timestamp = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          internalGetLastStaActivityTimestampFieldBuilder() {
        if (lastStaActivityTimestampBuilder_ == null) {
          lastStaActivityTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getLastStaActivityTimestamp(),
                  getParentForChildren(),
                  isClean());
          lastStaActivityTimestamp_ = null;
        }
        return lastStaActivityTimestampBuilder_;
      }

      private int pendingCommandCount_ ;
      /**
       * <code>uint32 pending_command_count = 4;</code>
       * @return The pendingCommandCount.
       */
      @java.lang.Override
      public int getPendingCommandCount() {
        return pendingCommandCount_;
      }
      /**
       * <code>uint32 pending_command_count = 4;</code>
       * @param value The pendingCommandCount to set.
       * @return This builder for chaining.
       */
      public Builder setPendingCommandCount(int value) {

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

      private int outboundEventQueueDepth_ ;
      /**
       * <code>uint32 outbound_event_queue_depth = 5;</code>
       * @return The outboundEventQueueDepth.
       */
      @java.lang.Override
      public int getOutboundEventQueueDepth() {
        return outboundEventQueueDepth_;
      }
      /**
       * <code>uint32 outbound_event_queue_depth = 5;</code>
       * @param value The outboundEventQueueDepth to set.
       * @return This builder for chaining.
       */
      public Builder setOutboundEventQueueDepth(int value) {

        outboundEventQueueDepth_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 outbound_event_queue_depth = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOutboundEventQueueDepth() {
        bitField0_ = (bitField0_ & ~0x00000010);
        outboundEventQueueDepth_ = 0;
        onChanged();
        return this;
      }

      private long lastEventSequence_ ;
      /**
       * <code>uint64 last_event_sequence = 6;</code>
       * @return The lastEventSequence.
       */
      @java.lang.Override
      public long getLastEventSequence() {
        return lastEventSequence_;
      }
      /**
       * <code>uint64 last_event_sequence = 6;</code>
       * @param value The lastEventSequence to set.
       * @return This builder for chaining.
       */
      public Builder setLastEventSequence(long value) {

        lastEventSequence_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 last_event_sequence = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastEventSequence() {
        bitField0_ = (bitField0_ & ~0x00000020);
        lastEventSequence_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object currentCommandCorrelationId_ = "";
      /**
       * <code>string current_command_correlation_id = 7;</code>
       * @return The currentCommandCorrelationId.
       */
      public java.lang.String getCurrentCommandCorrelationId() {
        java.lang.Object ref = currentCommandCorrelationId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          currentCommandCorrelationId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string current_command_correlation_id = 7;</code>
       * @return The bytes for currentCommandCorrelationId.
       */
      public com.google.protobuf.ByteString
          getCurrentCommandCorrelationIdBytes() {
        java.lang.Object ref = currentCommandCorrelationId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          currentCommandCorrelationId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string current_command_correlation_id = 7;</code>
       * @param value The currentCommandCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentCommandCorrelationId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        currentCommandCorrelationId_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>string current_command_correlation_id = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrentCommandCorrelationId() {
        currentCommandCorrelationId_ = getDefaultInstance().getCurrentCommandCorrelationId();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>string current_command_correlation_id = 7;</code>
       * @param value The bytes for currentCommandCorrelationId to set.
       * @return This builder for chaining.
       */
      public Builder setCurrentCommandCorrelationIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        currentCommandCorrelationId_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mxaccess_worker.v1.WorkerHeartbeat)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerHeartbeat)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerHeartbeat getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WorkerFaultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:mxaccess_worker.v1.WorkerFault)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
     * @return The enum numeric value on the wire for category.
     */
    int getCategoryValue();
    /**
     * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
     * @return The category.
     */
    mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory getCategory();

    /**
     * <code>string command_method = 2;</code>
     * @return The commandMethod.
     */
    java.lang.String getCommandMethod();
    /**
     * <code>string command_method = 2;</code>
     * @return The bytes for commandMethod.
     */
    com.google.protobuf.ByteString
        getCommandMethodBytes();

    /**
     * <code>optional int32 hresult = 3;</code>
     * @return Whether the hresult field is set.
     */
    boolean hasHresult();
    /**
     * <code>optional int32 hresult = 3;</code>
     * @return The hresult.
     */
    int getHresult();

    /**
     * <code>string exception_type = 4;</code>
     * @return The exceptionType.
     */
    java.lang.String getExceptionType();
    /**
     * <code>string exception_type = 4;</code>
     * @return The bytes for exceptionType.
     */
    com.google.protobuf.ByteString
        getExceptionTypeBytes();

    /**
     * <code>string diagnostic_message = 5;</code>
     * @return The diagnosticMessage.
     */
    java.lang.String getDiagnosticMessage();
    /**
     * <code>string diagnostic_message = 5;</code>
     * @return The bytes for diagnosticMessage.
     */
    com.google.protobuf.ByteString
        getDiagnosticMessageBytes();

    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</code>
     * @return Whether the protocolStatus field is set.
     */
    boolean hasProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</code>
     * @return The protocolStatus.
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus getProtocolStatus();
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</code>
     */
    mxaccess_gateway.v1.MxaccessGateway.ProtocolStatusOrBuilder getProtocolStatusOrBuilder();
  }
  /**
   * Protobuf type {@code mxaccess_worker.v1.WorkerFault}
   */
  public static final class WorkerFault extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:mxaccess_worker.v1.WorkerFault)
      WorkerFaultOrBuilder {
  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= */ "",
        "WorkerFault");
    }
    // Use WorkerFault.newBuilder() to construct.
    private WorkerFault(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private WorkerFault() {
      category_ = 0;
      commandMethod_ = "";
      exceptionType_ = "";
      diagnosticMessage_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerFault_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerFault_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              mxaccess_worker.v1.MxaccessWorker.WorkerFault.class, mxaccess_worker.v1.MxaccessWorker.WorkerFault.Builder.class);
    }

    private int bitField0_;
    public static final int CATEGORY_FIELD_NUMBER = 1;
    private int category_ = 0;
    /**
     * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
     * @return The enum numeric value on the wire for category.
     */
    @java.lang.Override public int getCategoryValue() {
      return category_;
    }
    /**
     * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
     * @return The category.
     */
    @java.lang.Override public mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory getCategory() {
      mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory result = mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory.forNumber(category_);
      return result == null ? mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory.UNRECOGNIZED : result;
    }

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

    public static final int HRESULT_FIELD_NUMBER = 3;
    private int hresult_ = 0;
    /**
     * <code>optional int32 hresult = 3;</code>
     * @return Whether the hresult field is set.
     */
    @java.lang.Override
    public boolean hasHresult() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 hresult = 3;</code>
     * @return The hresult.
     */
    @java.lang.Override
    public int getHresult() {
      return hresult_;
    }

    public static final int EXCEPTION_TYPE_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object exceptionType_ = "";
    /**
     * <code>string exception_type = 4;</code>
     * @return The exceptionType.
     */
    @java.lang.Override
    public java.lang.String getExceptionType() {
      java.lang.Object ref = exceptionType_;
      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();
        exceptionType_ = s;
        return s;
      }
    }
    /**
     * <code>string exception_type = 4;</code>
     * @return The bytes for exceptionType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExceptionTypeBytes() {
      java.lang.Object ref = exceptionType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exceptionType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DIAGNOSTIC_MESSAGE_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object diagnosticMessage_ = "";
    /**
     * <code>string diagnostic_message = 5;</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 = 5;</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 PROTOCOL_STATUS_FIELD_NUMBER = 6;
    private mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus protocolStatus_;
    /**
     * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</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 = 6;</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 = 6;</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 (category_ != mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory.WORKER_FAULT_CATEGORY_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, category_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(commandMethod_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, commandMethod_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(3, hresult_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(exceptionType_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, exceptionType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticMessage_)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, diagnosticMessage_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(6, getProtocolStatus());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (category_ != mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory.WORKER_FAULT_CATEGORY_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, category_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(commandMethod_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, commandMethod_);
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, hresult_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(exceptionType_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, exceptionType_);
      }
      if (!com.google.protobuf.GeneratedMessage.isStringEmpty(diagnosticMessage_)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, diagnosticMessage_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, 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_worker.v1.MxaccessWorker.WorkerFault)) {
        return super.equals(obj);
      }
      mxaccess_worker.v1.MxaccessWorker.WorkerFault other = (mxaccess_worker.v1.MxaccessWorker.WorkerFault) obj;

      if (category_ != other.category_) return false;
      if (!getCommandMethod()
          .equals(other.getCommandMethod())) return false;
      if (hasHresult() != other.hasHresult()) return false;
      if (hasHresult()) {
        if (getHresult()
            != other.getHresult()) return false;
      }
      if (!getExceptionType()
          .equals(other.getExceptionType())) return false;
      if (!getDiagnosticMessage()
          .equals(other.getDiagnosticMessage())) 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) + CATEGORY_FIELD_NUMBER;
      hash = (53 * hash) + category_;
      hash = (37 * hash) + COMMAND_METHOD_FIELD_NUMBER;
      hash = (53 * hash) + getCommandMethod().hashCode();
      if (hasHresult()) {
        hash = (37 * hash) + HRESULT_FIELD_NUMBER;
        hash = (53 * hash) + getHresult();
      }
      hash = (37 * hash) + EXCEPTION_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getExceptionType().hashCode();
      hash = (37 * hash) + DIAGNOSTIC_MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getDiagnosticMessage().hashCode();
      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_worker.v1.MxaccessWorker.WorkerFault parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault 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_worker.v1.MxaccessWorker.WorkerFault parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

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

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerFault_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                mxaccess_worker.v1.MxaccessWorker.WorkerFault.class, mxaccess_worker.v1.MxaccessWorker.WorkerFault.Builder.class);
      }

      // Construct using mxaccess_worker.v1.MxaccessWorker.WorkerFault.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;
        category_ = 0;
        commandMethod_ = "";
        hresult_ = 0;
        exceptionType_ = "";
        diagnosticMessage_ = "";
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return mxaccess_worker.v1.MxaccessWorker.internal_static_mxaccess_worker_v1_WorkerFault_descriptor;
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerFault getDefaultInstanceForType() {
        return mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance();
      }

      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerFault build() {
        mxaccess_worker.v1.MxaccessWorker.WorkerFault result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

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

      private void buildPartial0(mxaccess_worker.v1.MxaccessWorker.WorkerFault result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.category_ = category_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.commandMethod_ = commandMethod_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.hresult_ = hresult_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.exceptionType_ = exceptionType_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.diagnosticMessage_ = diagnosticMessage_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.protocolStatus_ = protocolStatusBuilder_ == null
              ? protocolStatus_
              : protocolStatusBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

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

      public Builder mergeFrom(mxaccess_worker.v1.MxaccessWorker.WorkerFault other) {
        if (other == mxaccess_worker.v1.MxaccessWorker.WorkerFault.getDefaultInstance()) return this;
        if (other.category_ != 0) {
          setCategoryValue(other.getCategoryValue());
        }
        if (!other.getCommandMethod().isEmpty()) {
          commandMethod_ = other.commandMethod_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasHresult()) {
          setHresult(other.getHresult());
        }
        if (!other.getExceptionType().isEmpty()) {
          exceptionType_ = other.exceptionType_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (!other.getDiagnosticMessage().isEmpty()) {
          diagnosticMessage_ = other.diagnosticMessage_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        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 8: {
                category_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                commandMethod_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                hresult_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                exceptionType_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                diagnosticMessage_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    internalGetProtocolStatusFieldBuilder().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 category_ = 0;
      /**
       * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
       * @return The enum numeric value on the wire for category.
       */
      @java.lang.Override public int getCategoryValue() {
        return category_;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</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_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
       * @return The category.
       */
      @java.lang.Override
      public mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory getCategory() {
        mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory result = mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory.forNumber(category_);
        return result == null ? mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory.UNRECOGNIZED : result;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
       * @param value The category to set.
       * @return This builder for chaining.
       */
      public Builder setCategory(mxaccess_worker.v1.MxaccessWorker.WorkerFaultCategory value) {
        if (value == null) { throw new NullPointerException(); }
        bitField0_ |= 0x00000001;
        category_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_worker.v1.WorkerFaultCategory category = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategory() {
        bitField0_ = (bitField0_ & ~0x00000001);
        category_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object commandMethod_ = "";
      /**
       * <code>string command_method = 2;</code>
       * @return The commandMethod.
       */
      public java.lang.String getCommandMethod() {
        java.lang.Object ref = commandMethod_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          commandMethod_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string command_method = 2;</code>
       * @return The bytes for commandMethod.
       */
      public com.google.protobuf.ByteString
          getCommandMethodBytes() {
        java.lang.Object ref = commandMethod_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          commandMethod_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string command_method = 2;</code>
       * @param value The commandMethod to set.
       * @return This builder for chaining.
       */
      public Builder setCommandMethod(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        commandMethod_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string command_method = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCommandMethod() {
        commandMethod_ = getDefaultInstance().getCommandMethod();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string command_method = 2;</code>
       * @param value The bytes for commandMethod to set.
       * @return This builder for chaining.
       */
      public Builder setCommandMethodBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        commandMethod_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private int hresult_ ;
      /**
       * <code>optional int32 hresult = 3;</code>
       * @return Whether the hresult field is set.
       */
      @java.lang.Override
      public boolean hasHresult() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int32 hresult = 3;</code>
       * @return The hresult.
       */
      @java.lang.Override
      public int getHresult() {
        return hresult_;
      }
      /**
       * <code>optional 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;
      }
      /**
       * <code>optional int32 hresult = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearHresult() {
        bitField0_ = (bitField0_ & ~0x00000004);
        hresult_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object exceptionType_ = "";
      /**
       * <code>string exception_type = 4;</code>
       * @return The exceptionType.
       */
      public java.lang.String getExceptionType() {
        java.lang.Object ref = exceptionType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          exceptionType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string exception_type = 4;</code>
       * @return The bytes for exceptionType.
       */
      public com.google.protobuf.ByteString
          getExceptionTypeBytes() {
        java.lang.Object ref = exceptionType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exceptionType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string exception_type = 4;</code>
       * @param value The exceptionType to set.
       * @return This builder for chaining.
       */
      public Builder setExceptionType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        exceptionType_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>string exception_type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearExceptionType() {
        exceptionType_ = getDefaultInstance().getExceptionType();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>string exception_type = 4;</code>
       * @param value The bytes for exceptionType to set.
       * @return This builder for chaining.
       */
      public Builder setExceptionTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        exceptionType_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object diagnosticMessage_ = "";
      /**
       * <code>string diagnostic_message = 5;</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 = 5;</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 = 5;</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 = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiagnosticMessage() {
        diagnosticMessage_ = getDefaultInstance().getDiagnosticMessage();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>string diagnostic_message = 5;</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;
      }

      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 = 6;</code>
       * @return Whether the protocolStatus field is set.
       */
      public boolean hasProtocolStatus() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</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 = 6;</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_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</code>
       */
      public Builder setProtocolStatus(
          mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder builderForValue) {
        if (protocolStatusBuilder_ == null) {
          protocolStatus_ = builderForValue.build();
        } else {
          protocolStatusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</code>
       */
      public Builder mergeProtocolStatus(mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus value) {
        if (protocolStatusBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            protocolStatus_ != null &&
            protocolStatus_ != mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.getDefaultInstance()) {
            getProtocolStatusBuilder().mergeFrom(value);
          } else {
            protocolStatus_ = value;
          }
        } else {
          protocolStatusBuilder_.mergeFrom(value);
        }
        if (protocolStatus_ != null) {
          bitField0_ |= 0x00000020;
          onChanged();
        }
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</code>
       */
      public Builder clearProtocolStatus() {
        bitField0_ = (bitField0_ & ~0x00000020);
        protocolStatus_ = null;
        if (protocolStatusBuilder_ != null) {
          protocolStatusBuilder_.dispose();
          protocolStatusBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</code>
       */
      public mxaccess_gateway.v1.MxaccessGateway.ProtocolStatus.Builder getProtocolStatusBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return internalGetProtocolStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.mxaccess_gateway.v1.ProtocolStatus protocol_status = 6;</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 = 6;</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_worker.v1.WorkerFault)
    }

    // @@protoc_insertion_point(class_scope:mxaccess_worker.v1.WorkerFault)
    private static final mxaccess_worker.v1.MxaccessWorker.WorkerFault DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new mxaccess_worker.v1.MxaccessWorker.WorkerFault();
    }

    public static mxaccess_worker.v1.MxaccessWorker.WorkerFault getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public mxaccess_worker.v1.MxaccessWorker.WorkerFault getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerEnvelope_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerEnvelope_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_GatewayHello_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_GatewayHello_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerHello_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerHello_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerReady_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerReady_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerCommandReply_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerCommandReply_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerCancel_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerCancel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerShutdown_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerShutdown_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerShutdownAck_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerShutdownAck_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerHeartbeat_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerHeartbeat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_mxaccess_worker_v1_WorkerFault_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_mxaccess_worker_v1_WorkerFault_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\025mxaccess_worker.proto\022\022mxaccess_worker" +
      ".v1\032\036google/protobuf/duration.proto\032\037goo" +
      "gle/protobuf/timestamp.proto\032\026mxaccess_g" +
      "ateway.proto\"\225\006\n\016WorkerEnvelope\022\030\n\020proto" +
      "col_version\030\001 \001(\r\022\022\n\nsession_id\030\002 \001(\t\022\020\n" +
      "\010sequence\030\003 \001(\004\022\026\n\016correlation_id\030\004 \001(\t\022" +
      "9\n\rgateway_hello\030\n \001(\0132 .mxaccess_worker" +
      ".v1.GatewayHelloH\000\0227\n\014worker_hello\030\013 \001(\013" +
      "2\037.mxaccess_worker.v1.WorkerHelloH\000\0227\n\014w" +
      "orker_ready\030\014 \001(\0132\037.mxaccess_worker.v1.W" +
      "orkerReadyH\000\022;\n\016worker_command\030\r \001(\0132!.m" +
      "xaccess_worker.v1.WorkerCommandH\000\022F\n\024wor" +
      "ker_command_reply\030\016 \001(\0132&.mxaccess_worke" +
      "r.v1.WorkerCommandReplyH\000\0229\n\rworker_canc" +
      "el\030\017 \001(\0132 .mxaccess_worker.v1.WorkerCanc" +
      "elH\000\022=\n\017worker_shutdown\030\020 \001(\0132\".mxaccess" +
      "_worker.v1.WorkerShutdownH\000\022D\n\023worker_sh" +
      "utdown_ack\030\021 \001(\0132%.mxaccess_worker.v1.Wo" +
      "rkerShutdownAckH\000\0227\n\014worker_event\030\022 \001(\0132" +
      "\037.mxaccess_worker.v1.WorkerEventH\000\022?\n\020wo" +
      "rker_heartbeat\030\023 \001(\0132#.mxaccess_worker.v" +
      "1.WorkerHeartbeatH\000\0227\n\014worker_fault\030\024 \001(" +
      "\0132\037.mxaccess_worker.v1.WorkerFaultH\000B\006\n\004" +
      "body\"s\n\014GatewayHello\022\"\n\032supported_protoc" +
      "ol_version\030\001 \001(\r\022\r\n\005nonce\030\002 \001(\t\022\027\n\017gatew" +
      "ay_version\030\003 \001(\t\022\027\n\017max_frame_bytes\030\004 \001(" +
      "\r\"i\n\013WorkerHello\022\030\n\020protocol_version\030\001 \001" +
      "(\r\022\r\n\005nonce\030\002 \001(\t\022\031\n\021worker_process_id\030\003" +
      " \001(\005\022\026\n\016worker_version\030\004 \001(\t\"\216\001\n\013WorkerR" +
      "eady\022\031\n\021worker_process_id\030\001 \001(\005\022\027\n\017mxacc" +
      "ess_progid\030\002 \001(\t\022\026\n\016mxaccess_clsid\030\003 \001(\t" +
      "\0223\n\017ready_timestamp\030\004 \001(\0132\032.google.proto" +
      "buf.Timestamp\"w\n\rWorkerCommand\022/\n\007comman" +
      "d\030\001 \001(\0132\036.mxaccess_gateway.v1.MxCommand\022" +
      "5\n\021enqueue_timestamp\030\002 \001(\0132\032.google.prot" +
      "obuf.Timestamp\"\201\001\n\022WorkerCommandReply\0222\n" +
      "\005reply\030\001 \001(\0132#.mxaccess_gateway.v1.MxCom" +
      "mandReply\0227\n\023completed_timestamp\030\002 \001(\0132\032" +
      ".google.protobuf.Timestamp\"\036\n\014WorkerCanc" +
      "el\022\016\n\006reason\030\001 \001(\t\"Q\n\016WorkerShutdown\022/\n\014" +
      "grace_period\030\001 \001(\0132\031.google.protobuf.Dur" +
      "ation\022\016\n\006reason\030\002 \001(\t\"H\n\021WorkerShutdownA" +
      "ck\0223\n\006status\030\001 \001(\0132#.mxaccess_gateway.v1" +
      ".ProtocolStatus\":\n\013WorkerEvent\022+\n\005event\030" +
      "\001 \001(\0132\034.mxaccess_gateway.v1.MxEvent\"\245\002\n\017" +
      "WorkerHeartbeat\022\031\n\021worker_process_id\030\001 \001" +
      "(\005\022.\n\005state\030\002 \001(\0162\037.mxaccess_worker.v1.W" +
      "orkerState\022?\n\033last_sta_activity_timestam" +
      "p\030\003 \001(\0132\032.google.protobuf.Timestamp\022\035\n\025p" +
      "ending_command_count\030\004 \001(\r\022\"\n\032outbound_e" +
      "vent_queue_depth\030\005 \001(\r\022\033\n\023last_event_seq" +
      "uence\030\006 \001(\004\022&\n\036current_command_correlati" +
      "on_id\030\007 \001(\t\"\364\001\n\013WorkerFault\0229\n\010category\030" +
      "\001 \001(\0162\'.mxaccess_worker.v1.WorkerFaultCa" +
      "tegory\022\026\n\016command_method\030\002 \001(\t\022\024\n\007hresul" +
      "t\030\003 \001(\005H\000\210\001\001\022\026\n\016exception_type\030\004 \001(\t\022\032\n\022" +
      "diagnostic_message\030\005 \001(\t\022<\n\017protocol_sta" +
      "tus\030\006 \001(\0132#.mxaccess_gateway.v1.Protocol" +
      "StatusB\n\n\010_hresult*\227\002\n\013WorkerState\022\034\n\030WO" +
      "RKER_STATE_UNSPECIFIED\020\000\022\031\n\025WORKER_STATE" +
      "_STARTING\020\001\022\034\n\030WORKER_STATE_HANDSHAKING\020" +
      "\002\022!\n\035WORKER_STATE_INITIALIZING_STA\020\003\022\026\n\022" +
      "WORKER_STATE_READY\020\004\022\"\n\036WORKER_STATE_EXE" +
      "CUTING_COMMAND\020\005\022\036\n\032WORKER_STATE_SHUTTIN" +
      "G_DOWN\020\006\022\030\n\024WORKER_STATE_STOPPED\020\007\022\030\n\024WO" +
      "RKER_STATE_FAULTED\020\010*\307\004\n\023WorkerFaultCate" +
      "gory\022%\n!WORKER_FAULT_CATEGORY_UNSPECIFIE" +
      "D\020\000\022+\n\'WORKER_FAULT_CATEGORY_INVALID_ARG" +
      "UMENTS\020\001\0227\n3WORKER_FAULT_CATEGORY_GATEWA" +
      "Y_AUTHENTICATION_FAILED\020\002\022+\n\'WORKER_FAUL" +
      "T_CATEGORY_PROTOCOL_MISMATCH\020\003\022,\n(WORKER" +
      "_FAULT_CATEGORY_PROTOCOL_VIOLATION\020\004\022+\n\'" +
      "WORKER_FAULT_CATEGORY_PIPE_DISCONNECTED\020" +
      "\005\0222\n.WORKER_FAULT_CATEGORY_MXACCESS_CREA" +
      "TION_FAILED\020\006\0221\n-WORKER_FAULT_CATEGORY_M" +
      "XACCESS_COMMAND_FAILED\020\007\022:\n6WORKER_FAULT" +
      "_CATEGORY_MXACCESS_EVENT_CONVERSION_FAIL" +
      "ED\020\010\022\"\n\036WORKER_FAULT_CATEGORY_STA_HUNG\020\t" +
      "\022(\n$WORKER_FAULT_CATEGORY_QUEUE_OVERFLOW" +
      "\020\n\022*\n&WORKER_FAULT_CATEGORY_SHUTDOWN_TIM" +
      "EOUT\020\013B&\252\002#ZB.MOM.WW.MxGateway.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(),
          mxaccess_gateway.v1.MxaccessGateway.getDescriptor(),
        });
    internal_static_mxaccess_worker_v1_WorkerEnvelope_descriptor =
      getDescriptor().getMessageType(0);
    internal_static_mxaccess_worker_v1_WorkerEnvelope_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerEnvelope_descriptor,
        new java.lang.String[] { "ProtocolVersion", "SessionId", "Sequence", "CorrelationId", "GatewayHello", "WorkerHello", "WorkerReady", "WorkerCommand", "WorkerCommandReply", "WorkerCancel", "WorkerShutdown", "WorkerShutdownAck", "WorkerEvent", "WorkerHeartbeat", "WorkerFault", "Body", });
    internal_static_mxaccess_worker_v1_GatewayHello_descriptor =
      getDescriptor().getMessageType(1);
    internal_static_mxaccess_worker_v1_GatewayHello_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_GatewayHello_descriptor,
        new java.lang.String[] { "SupportedProtocolVersion", "Nonce", "GatewayVersion", "MaxFrameBytes", });
    internal_static_mxaccess_worker_v1_WorkerHello_descriptor =
      getDescriptor().getMessageType(2);
    internal_static_mxaccess_worker_v1_WorkerHello_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerHello_descriptor,
        new java.lang.String[] { "ProtocolVersion", "Nonce", "WorkerProcessId", "WorkerVersion", });
    internal_static_mxaccess_worker_v1_WorkerReady_descriptor =
      getDescriptor().getMessageType(3);
    internal_static_mxaccess_worker_v1_WorkerReady_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerReady_descriptor,
        new java.lang.String[] { "WorkerProcessId", "MxaccessProgid", "MxaccessClsid", "ReadyTimestamp", });
    internal_static_mxaccess_worker_v1_WorkerCommand_descriptor =
      getDescriptor().getMessageType(4);
    internal_static_mxaccess_worker_v1_WorkerCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerCommand_descriptor,
        new java.lang.String[] { "Command", "EnqueueTimestamp", });
    internal_static_mxaccess_worker_v1_WorkerCommandReply_descriptor =
      getDescriptor().getMessageType(5);
    internal_static_mxaccess_worker_v1_WorkerCommandReply_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerCommandReply_descriptor,
        new java.lang.String[] { "Reply", "CompletedTimestamp", });
    internal_static_mxaccess_worker_v1_WorkerCancel_descriptor =
      getDescriptor().getMessageType(6);
    internal_static_mxaccess_worker_v1_WorkerCancel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerCancel_descriptor,
        new java.lang.String[] { "Reason", });
    internal_static_mxaccess_worker_v1_WorkerShutdown_descriptor =
      getDescriptor().getMessageType(7);
    internal_static_mxaccess_worker_v1_WorkerShutdown_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerShutdown_descriptor,
        new java.lang.String[] { "GracePeriod", "Reason", });
    internal_static_mxaccess_worker_v1_WorkerShutdownAck_descriptor =
      getDescriptor().getMessageType(8);
    internal_static_mxaccess_worker_v1_WorkerShutdownAck_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerShutdownAck_descriptor,
        new java.lang.String[] { "Status", });
    internal_static_mxaccess_worker_v1_WorkerEvent_descriptor =
      getDescriptor().getMessageType(9);
    internal_static_mxaccess_worker_v1_WorkerEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerEvent_descriptor,
        new java.lang.String[] { "Event", });
    internal_static_mxaccess_worker_v1_WorkerHeartbeat_descriptor =
      getDescriptor().getMessageType(10);
    internal_static_mxaccess_worker_v1_WorkerHeartbeat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerHeartbeat_descriptor,
        new java.lang.String[] { "WorkerProcessId", "State", "LastStaActivityTimestamp", "PendingCommandCount", "OutboundEventQueueDepth", "LastEventSequence", "CurrentCommandCorrelationId", });
    internal_static_mxaccess_worker_v1_WorkerFault_descriptor =
      getDescriptor().getMessageType(11);
    internal_static_mxaccess_worker_v1_WorkerFault_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_mxaccess_worker_v1_WorkerFault_descriptor,
        new java.lang.String[] { "Category", "CommandMethod", "Hresult", "ExceptionType", "DiagnosticMessage", "ProtocolStatus", });
    descriptor.resolveAllFeaturesImmutable();
    com.google.protobuf.DurationProto.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
    mxaccess_gateway.v1.MxaccessGateway.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
