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

package nodomain.freeyourgadget.gadgetbridge.proto.igpsport;

public final class Factory {
  private Factory() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code FACTORY_OPERATE_TYPE}
   */
  public enum FACTORY_OPERATE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_NONE = 0;</code>
     */
    enum_FACTORY_OPERATE_TYPE_NONE(0),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SN_GET = 1;</code>
     */
    enum_FACTORY_OPERATE_TYPE_SN_GET(1),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SN_SEND = 2;</code>
     */
    enum_FACTORY_OPERATE_TYPE_SN_SEND(2),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SN_SET = 3;</code>
     */
    enum_FACTORY_OPERATE_TYPE_SN_SET(3),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SENSOR_GET = 4;</code>
     */
    enum_FACTORY_OPERATE_TYPE_SENSOR_GET(4),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_MEMORY_GET = 5;</code>
     */
    enum_FACTORY_OPERATE_TYPE_MEMORY_GET(5),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_BATTARY_GET = 6;</code>
     */
    enum_FACTORY_OPERATE_TYPE_BATTARY_GET(6),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SIM_FIT_SET = 7;</code>
     */
    enum_FACTORY_OPERATE_TYPE_SIM_FIT_SET(7),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_COORDINATE_SET = 8;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_COORDINATE_SET(8),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SUN_TIME_SET = 9;</code>
     */
    enum_FACTORY_OPERATE_TYPE_SUN_TIME_SET(9),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SUN_TIME_GET = 10;</code>
     */
    enum_FACTORY_OPERATE_TYPE_SUN_TIME_GET(10),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_POWER_SAVE_TIME_SET = 11;</code>
     */
    enum_FACTORY_OPERATE_TYPE_POWER_SAVE_TIME_SET(11),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_RTC_SET = 12;</code>
     */
    enum_FACTORY_OPERATE_TYPE_RTC_SET(12),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_RTC_GET = 13;</code>
     */
    enum_FACTORY_OPERATE_TYPE_RTC_GET(13),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_FILTER_SET = 14;</code>
     */
    enum_FACTORY_OPERATE_TYPE_FILTER_SET(14),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_FILTER_GET = 15;</code>
     */
    enum_FACTORY_OPERATE_TYPE_FILTER_GET(15),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_SET = 16;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_SET(16),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_GET = 17;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_GET(17),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_GNSS_SET = 18;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_GNSS_SET(18),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_GNSS_GET = 19;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_GNSS_GET(19),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_SET = 20;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_SET(20),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_GET = 21;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_GET(21),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_CMD_SET = 22;</code>
     */
    enum_FACTORY_OPERATE_TYPE_GPS_CMD_SET(22),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_CONTROL_SET = 23;</code>
     */
    enum_FACTORY_OPERATE_TYPE_CONTROL_SET(23),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_CONTROL_DATA_SET = 24;</code>
     */
    enum_FACTORY_OPERATE_TYPE_CONTROL_DATA_SET(24),
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_ALL_GET = 254;</code>
     */
    enum_FACTORY_OPERATE_TYPE_ALL_GET(254),
    ;

    /**
     * <code>enum_FACTORY_OPERATE_TYPE_NONE = 0;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_NONE_VALUE = 0;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SN_GET = 1;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_SN_GET_VALUE = 1;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SN_SEND = 2;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_SN_SEND_VALUE = 2;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SN_SET = 3;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_SN_SET_VALUE = 3;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SENSOR_GET = 4;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_SENSOR_GET_VALUE = 4;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_MEMORY_GET = 5;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_MEMORY_GET_VALUE = 5;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_BATTARY_GET = 6;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_BATTARY_GET_VALUE = 6;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SIM_FIT_SET = 7;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_SIM_FIT_SET_VALUE = 7;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_COORDINATE_SET = 8;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_COORDINATE_SET_VALUE = 8;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SUN_TIME_SET = 9;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_SUN_TIME_SET_VALUE = 9;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_SUN_TIME_GET = 10;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_SUN_TIME_GET_VALUE = 10;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_POWER_SAVE_TIME_SET = 11;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_POWER_SAVE_TIME_SET_VALUE = 11;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_RTC_SET = 12;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_RTC_SET_VALUE = 12;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_RTC_GET = 13;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_RTC_GET_VALUE = 13;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_FILTER_SET = 14;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_FILTER_SET_VALUE = 14;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_FILTER_GET = 15;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_FILTER_GET_VALUE = 15;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_SET = 16;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_SET_VALUE = 16;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_GET = 17;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_GET_VALUE = 17;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_GNSS_SET = 18;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_GNSS_SET_VALUE = 18;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_GNSS_GET = 19;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_GNSS_GET_VALUE = 19;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_SET = 20;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_SET_VALUE = 20;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_GET = 21;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_GET_VALUE = 21;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_GPS_CMD_SET = 22;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_GPS_CMD_SET_VALUE = 22;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_CONTROL_SET = 23;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_CONTROL_SET_VALUE = 23;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_CONTROL_DATA_SET = 24;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_CONTROL_DATA_SET_VALUE = 24;
    /**
     * <code>enum_FACTORY_OPERATE_TYPE_ALL_GET = 254;</code>
     */
    public static final int enum_FACTORY_OPERATE_TYPE_ALL_GET_VALUE = 254;


    @java.lang.Override
    public final int getNumber() {
      return 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 FACTORY_OPERATE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static FACTORY_OPERATE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_FACTORY_OPERATE_TYPE_NONE;
        case 1: return enum_FACTORY_OPERATE_TYPE_SN_GET;
        case 2: return enum_FACTORY_OPERATE_TYPE_SN_SEND;
        case 3: return enum_FACTORY_OPERATE_TYPE_SN_SET;
        case 4: return enum_FACTORY_OPERATE_TYPE_SENSOR_GET;
        case 5: return enum_FACTORY_OPERATE_TYPE_MEMORY_GET;
        case 6: return enum_FACTORY_OPERATE_TYPE_BATTARY_GET;
        case 7: return enum_FACTORY_OPERATE_TYPE_SIM_FIT_SET;
        case 8: return enum_FACTORY_OPERATE_TYPE_GPS_COORDINATE_SET;
        case 9: return enum_FACTORY_OPERATE_TYPE_SUN_TIME_SET;
        case 10: return enum_FACTORY_OPERATE_TYPE_SUN_TIME_GET;
        case 11: return enum_FACTORY_OPERATE_TYPE_POWER_SAVE_TIME_SET;
        case 12: return enum_FACTORY_OPERATE_TYPE_RTC_SET;
        case 13: return enum_FACTORY_OPERATE_TYPE_RTC_GET;
        case 14: return enum_FACTORY_OPERATE_TYPE_FILTER_SET;
        case 15: return enum_FACTORY_OPERATE_TYPE_FILTER_GET;
        case 16: return enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_SET;
        case 17: return enum_FACTORY_OPERATE_TYPE_GPS_CONTROL_CMD_GET;
        case 18: return enum_FACTORY_OPERATE_TYPE_GPS_GNSS_SET;
        case 19: return enum_FACTORY_OPERATE_TYPE_GPS_GNSS_GET;
        case 20: return enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_SET;
        case 21: return enum_FACTORY_OPERATE_TYPE_GPS_DYNAMIC_GET;
        case 22: return enum_FACTORY_OPERATE_TYPE_GPS_CMD_SET;
        case 23: return enum_FACTORY_OPERATE_TYPE_CONTROL_SET;
        case 24: return enum_FACTORY_OPERATE_TYPE_CONTROL_DATA_SET;
        case 254: return enum_FACTORY_OPERATE_TYPE_ALL_GET;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return FACTORY_OPERATE_TYPEVerifier.INSTANCE;
    }

    private static final class FACTORY_OPERATE_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new FACTORY_OPERATE_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return FACTORY_OPERATE_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:FACTORY_OPERATE_TYPE)
  }

  /**
   * Protobuf enum {@code FACTORY_SENSOR_TYPE}
   */
  public enum FACTORY_SENSOR_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_SENSOR_INVALID = 0;</code>
     */
    enum_SENSOR_INVALID(0),
    /**
     * <code>enum_GPS = 1;</code>
     */
    enum_GPS(1),
    /**
     * <code>enum_RTC = 2;</code>
     */
    enum_RTC(2),
    /**
     * <code>enum_AIR = 3;</code>
     */
    enum_AIR(3),
    /**
     * <code>enum_TEM = 4;</code>
     */
    enum_TEM(4),
    /**
     * <code>enum_ACC = 5;</code>
     */
    enum_ACC(5),
    /**
     * <code>enum_ANT = 6;</code>
     */
    enum_ANT(6),
    /**
     * <code>enum_KEY = 7;</code>
     */
    enum_KEY(7),
    ;

    /**
     * <code>enum_SENSOR_INVALID = 0;</code>
     */
    public static final int enum_SENSOR_INVALID_VALUE = 0;
    /**
     * <code>enum_GPS = 1;</code>
     */
    public static final int enum_GPS_VALUE = 1;
    /**
     * <code>enum_RTC = 2;</code>
     */
    public static final int enum_RTC_VALUE = 2;
    /**
     * <code>enum_AIR = 3;</code>
     */
    public static final int enum_AIR_VALUE = 3;
    /**
     * <code>enum_TEM = 4;</code>
     */
    public static final int enum_TEM_VALUE = 4;
    /**
     * <code>enum_ACC = 5;</code>
     */
    public static final int enum_ACC_VALUE = 5;
    /**
     * <code>enum_ANT = 6;</code>
     */
    public static final int enum_ANT_VALUE = 6;
    /**
     * <code>enum_KEY = 7;</code>
     */
    public static final int enum_KEY_VALUE = 7;


    @java.lang.Override
    public final int getNumber() {
      return 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 FACTORY_SENSOR_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static FACTORY_SENSOR_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_SENSOR_INVALID;
        case 1: return enum_GPS;
        case 2: return enum_RTC;
        case 3: return enum_AIR;
        case 4: return enum_TEM;
        case 5: return enum_ACC;
        case 6: return enum_ANT;
        case 7: return enum_KEY;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return FACTORY_SENSOR_TYPEVerifier.INSTANCE;
    }

    private static final class FACTORY_SENSOR_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new FACTORY_SENSOR_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return FACTORY_SENSOR_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:FACTORY_SENSOR_TYPE)
  }

  /**
   * Protobuf enum {@code CONTROL_CMD_TYPE}
   */
  public enum CONTROL_CMD_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_CMD_INVALID = 0;</code>
     */
    enum_CMD_INVALID(0),
    /**
     * <code>enum_CMD_ENTER_CHECK = 1;</code>
     */
    enum_CMD_ENTER_CHECK(1),
    /**
     * <code>enum_CMD_LOCK = 2;</code>
     */
    enum_CMD_LOCK(2),
    /**
     * <code>enum_CMD_FORMAT = 16;</code>
     */
    enum_CMD_FORMAT(16),
    /**
     * <code>enum_CMD_LFORMAT = 17;</code>
     */
    enum_CMD_LFORMAT(17),
    /**
     * <code>enum_CMD_PARA_RESET = 18;</code>
     */
    enum_CMD_PARA_RESET(18),
    /**
     * <code>enum_CMD_FACTORY_RESET = 19;</code>
     */
    enum_CMD_FACTORY_RESET(19),
    /**
     * <code>enum_CMD_TEMPERATURE_LOG = 32;</code>
     */
    enum_CMD_TEMPERATURE_LOG(32),
    /**
     * <code>enum_CMD_VOLTAGE_LOG = 33;</code>
     */
    enum_CMD_VOLTAGE_LOG(33),
    /**
     * <code>enum_CMD_ANT_LOG = 34;</code>
     */
    enum_CMD_ANT_LOG(34),
    ;

    /**
     * <code>enum_CMD_INVALID = 0;</code>
     */
    public static final int enum_CMD_INVALID_VALUE = 0;
    /**
     * <code>enum_CMD_ENTER_CHECK = 1;</code>
     */
    public static final int enum_CMD_ENTER_CHECK_VALUE = 1;
    /**
     * <code>enum_CMD_LOCK = 2;</code>
     */
    public static final int enum_CMD_LOCK_VALUE = 2;
    /**
     * <code>enum_CMD_FORMAT = 16;</code>
     */
    public static final int enum_CMD_FORMAT_VALUE = 16;
    /**
     * <code>enum_CMD_LFORMAT = 17;</code>
     */
    public static final int enum_CMD_LFORMAT_VALUE = 17;
    /**
     * <code>enum_CMD_PARA_RESET = 18;</code>
     */
    public static final int enum_CMD_PARA_RESET_VALUE = 18;
    /**
     * <code>enum_CMD_FACTORY_RESET = 19;</code>
     */
    public static final int enum_CMD_FACTORY_RESET_VALUE = 19;
    /**
     * <code>enum_CMD_TEMPERATURE_LOG = 32;</code>
     */
    public static final int enum_CMD_TEMPERATURE_LOG_VALUE = 32;
    /**
     * <code>enum_CMD_VOLTAGE_LOG = 33;</code>
     */
    public static final int enum_CMD_VOLTAGE_LOG_VALUE = 33;
    /**
     * <code>enum_CMD_ANT_LOG = 34;</code>
     */
    public static final int enum_CMD_ANT_LOG_VALUE = 34;


    @java.lang.Override
    public final int getNumber() {
      return 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 CONTROL_CMD_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static CONTROL_CMD_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_CMD_INVALID;
        case 1: return enum_CMD_ENTER_CHECK;
        case 2: return enum_CMD_LOCK;
        case 16: return enum_CMD_FORMAT;
        case 17: return enum_CMD_LFORMAT;
        case 18: return enum_CMD_PARA_RESET;
        case 19: return enum_CMD_FACTORY_RESET;
        case 32: return enum_CMD_TEMPERATURE_LOG;
        case 33: return enum_CMD_VOLTAGE_LOG;
        case 34: return enum_CMD_ANT_LOG;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return CONTROL_CMD_TYPEVerifier.INSTANCE;
    }

    private static final class CONTROL_CMD_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new CONTROL_CMD_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return CONTROL_CMD_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:CONTROL_CMD_TYPE)
  }

  /**
   * Protobuf enum {@code FILTER_TYPE}
   */
  public enum FILTER_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_FILTER_INVALID = 0;</code>
     */
    enum_FILTER_INVALID(0),
    /**
     * <code>enum_FILTER_SMART_SAVE = 1;</code>
     */
    enum_FILTER_SMART_SAVE(1),
    /**
     * <code>enum_FILTER_SPD = 2;</code>
     */
    enum_FILTER_SPD(2),
    /**
     * <code>enum_FILTER_CAD = 3;</code>
     */
    enum_FILTER_CAD(3),
    /**
     * <code>enum_FILTER_HRM = 4;</code>
     */
    enum_FILTER_HRM(4),
    /**
     * <code>enum_FILTER_GPS_ICON = 5;</code>
     */
    enum_FILTER_GPS_ICON(5),
    /**
     * <code>enum_FLTER_ANT_ICON = 6;</code>
     */
    enum_FLTER_ANT_ICON(6),
    ;

    /**
     * <code>enum_FILTER_INVALID = 0;</code>
     */
    public static final int enum_FILTER_INVALID_VALUE = 0;
    /**
     * <code>enum_FILTER_SMART_SAVE = 1;</code>
     */
    public static final int enum_FILTER_SMART_SAVE_VALUE = 1;
    /**
     * <code>enum_FILTER_SPD = 2;</code>
     */
    public static final int enum_FILTER_SPD_VALUE = 2;
    /**
     * <code>enum_FILTER_CAD = 3;</code>
     */
    public static final int enum_FILTER_CAD_VALUE = 3;
    /**
     * <code>enum_FILTER_HRM = 4;</code>
     */
    public static final int enum_FILTER_HRM_VALUE = 4;
    /**
     * <code>enum_FILTER_GPS_ICON = 5;</code>
     */
    public static final int enum_FILTER_GPS_ICON_VALUE = 5;
    /**
     * <code>enum_FLTER_ANT_ICON = 6;</code>
     */
    public static final int enum_FLTER_ANT_ICON_VALUE = 6;


    @java.lang.Override
    public final int getNumber() {
      return 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 FILTER_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static FILTER_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_FILTER_INVALID;
        case 1: return enum_FILTER_SMART_SAVE;
        case 2: return enum_FILTER_SPD;
        case 3: return enum_FILTER_CAD;
        case 4: return enum_FILTER_HRM;
        case 5: return enum_FILTER_GPS_ICON;
        case 6: return enum_FLTER_ANT_ICON;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return FILTER_TYPEVerifier.INSTANCE;
    }

    private static final class FILTER_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new FILTER_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return FILTER_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:FILTER_TYPE)
  }

  /**
   * Protobuf enum {@code GPS_CONTROL_CMD_TYPE}
   */
  public enum GPS_CONTROL_CMD_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_GPS_CMD_INVALID = 0;</code>
     */
    enum_GPS_CMD_INVALID(0),
    /**
     * <code>enum_GPS_CMD_POWER = 1;</code>
     */
    enum_GPS_CMD_POWER(1),
    /**
     * <code>enum_GPS_CMD_COLD_START = 2;</code>
     */
    enum_GPS_CMD_COLD_START(2),
    /**
     * <code>enum_GPS_CMD_POWER_SAVE = 3;</code>
     */
    enum_GPS_CMD_POWER_SAVE(3),
    /**
     * <code>enum_GPS_CMD_GNSS = 4;</code>
     */
    enum_GPS_CMD_GNSS(4),
    ;

    /**
     * <code>enum_GPS_CMD_INVALID = 0;</code>
     */
    public static final int enum_GPS_CMD_INVALID_VALUE = 0;
    /**
     * <code>enum_GPS_CMD_POWER = 1;</code>
     */
    public static final int enum_GPS_CMD_POWER_VALUE = 1;
    /**
     * <code>enum_GPS_CMD_COLD_START = 2;</code>
     */
    public static final int enum_GPS_CMD_COLD_START_VALUE = 2;
    /**
     * <code>enum_GPS_CMD_POWER_SAVE = 3;</code>
     */
    public static final int enum_GPS_CMD_POWER_SAVE_VALUE = 3;
    /**
     * <code>enum_GPS_CMD_GNSS = 4;</code>
     */
    public static final int enum_GPS_CMD_GNSS_VALUE = 4;


    @java.lang.Override
    public final int getNumber() {
      return 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 GPS_CONTROL_CMD_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static GPS_CONTROL_CMD_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_GPS_CMD_INVALID;
        case 1: return enum_GPS_CMD_POWER;
        case 2: return enum_GPS_CMD_COLD_START;
        case 3: return enum_GPS_CMD_POWER_SAVE;
        case 4: return enum_GPS_CMD_GNSS;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return GPS_CONTROL_CMD_TYPEVerifier.INSTANCE;
    }

    private static final class GPS_CONTROL_CMD_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new GPS_CONTROL_CMD_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return GPS_CONTROL_CMD_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:GPS_CONTROL_CMD_TYPE)
  }

  /**
   * Protobuf enum {@code GNSS_TYPE}
   */
  public enum GNSS_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_GNSS_INVALID = 0;</code>
     */
    enum_GNSS_INVALID(0),
    /**
     * <code>enum_GNSS_GPS = 1;</code>
     */
    enum_GNSS_GPS(1),
    /**
     * <code>enum_GNSS_BD = 2;</code>
     */
    enum_GNSS_BD(2),
    /**
     * <code>enum_GNSS__GLONASS = 4;</code>
     */
    enum_GNSS__GLONASS(4),
    /**
     * <code>enum_GNSS__QZSS = 8;</code>
     */
    enum_GNSS__QZSS(8),
    /**
     * <code>enum_GNSS_SBAS = 16;</code>
     */
    enum_GNSS_SBAS(16),
    /**
     * <code>enum_GNSS_GALILEO = 32;</code>
     */
    enum_GNSS_GALILEO(32),
    /**
     * <code>enum_GNSS_IMES = 64;</code>
     */
    enum_GNSS_IMES(64),
    ;

    /**
     * <code>enum_GNSS_INVALID = 0;</code>
     */
    public static final int enum_GNSS_INVALID_VALUE = 0;
    /**
     * <code>enum_GNSS_GPS = 1;</code>
     */
    public static final int enum_GNSS_GPS_VALUE = 1;
    /**
     * <code>enum_GNSS_BD = 2;</code>
     */
    public static final int enum_GNSS_BD_VALUE = 2;
    /**
     * <code>enum_GNSS__GLONASS = 4;</code>
     */
    public static final int enum_GNSS__GLONASS_VALUE = 4;
    /**
     * <code>enum_GNSS__QZSS = 8;</code>
     */
    public static final int enum_GNSS__QZSS_VALUE = 8;
    /**
     * <code>enum_GNSS_SBAS = 16;</code>
     */
    public static final int enum_GNSS_SBAS_VALUE = 16;
    /**
     * <code>enum_GNSS_GALILEO = 32;</code>
     */
    public static final int enum_GNSS_GALILEO_VALUE = 32;
    /**
     * <code>enum_GNSS_IMES = 64;</code>
     */
    public static final int enum_GNSS_IMES_VALUE = 64;


    @java.lang.Override
    public final int getNumber() {
      return 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 GNSS_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static GNSS_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_GNSS_INVALID;
        case 1: return enum_GNSS_GPS;
        case 2: return enum_GNSS_BD;
        case 4: return enum_GNSS__GLONASS;
        case 8: return enum_GNSS__QZSS;
        case 16: return enum_GNSS_SBAS;
        case 32: return enum_GNSS_GALILEO;
        case 64: return enum_GNSS_IMES;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return GNSS_TYPEVerifier.INSTANCE;
    }

    private static final class GNSS_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new GNSS_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return GNSS_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:GNSS_TYPE)
  }

  /**
   * Protobuf enum {@code GPS_DYNAMIC_TYPE}
   */
  public enum GPS_DYNAMIC_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_GPS_DYNAMIC_INVALID = 0;</code>
     */
    enum_GPS_DYNAMIC_INVALID(0),
    /**
     * <code>euum_PORTABLE = 1;</code>
     */
    euum_PORTABLE(1),
    /**
     * <code>enum_STATIONARY = 2;</code>
     */
    enum_STATIONARY(2),
    /**
     * <code>enum_PEDESTRIAN = 3;</code>
     */
    enum_PEDESTRIAN(3),
    /**
     * <code>enum_AUTOMOTIVE = 4;</code>
     */
    enum_AUTOMOTIVE(4),
    /**
     * <code>enum_SEA = 5;</code>
     */
    enum_SEA(5),
    /**
     * <code>enum_1G = 6;</code>
     */
    enum_1G(6),
    /**
     * <code>enum_2G = 7;</code>
     */
    enum_2G(7),
    /**
     * <code>enum_4G = 8;</code>
     */
    enum_4G(8),
    /**
     * <code>enum_WRIST = 9;</code>
     */
    enum_WRIST(9),
    /**
     * <code>enum_BIKE = 10;</code>
     */
    enum_BIKE(10),
    ;

    /**
     * <code>enum_GPS_DYNAMIC_INVALID = 0;</code>
     */
    public static final int enum_GPS_DYNAMIC_INVALID_VALUE = 0;
    /**
     * <code>euum_PORTABLE = 1;</code>
     */
    public static final int euum_PORTABLE_VALUE = 1;
    /**
     * <code>enum_STATIONARY = 2;</code>
     */
    public static final int enum_STATIONARY_VALUE = 2;
    /**
     * <code>enum_PEDESTRIAN = 3;</code>
     */
    public static final int enum_PEDESTRIAN_VALUE = 3;
    /**
     * <code>enum_AUTOMOTIVE = 4;</code>
     */
    public static final int enum_AUTOMOTIVE_VALUE = 4;
    /**
     * <code>enum_SEA = 5;</code>
     */
    public static final int enum_SEA_VALUE = 5;
    /**
     * <code>enum_1G = 6;</code>
     */
    public static final int enum_1G_VALUE = 6;
    /**
     * <code>enum_2G = 7;</code>
     */
    public static final int enum_2G_VALUE = 7;
    /**
     * <code>enum_4G = 8;</code>
     */
    public static final int enum_4G_VALUE = 8;
    /**
     * <code>enum_WRIST = 9;</code>
     */
    public static final int enum_WRIST_VALUE = 9;
    /**
     * <code>enum_BIKE = 10;</code>
     */
    public static final int enum_BIKE_VALUE = 10;


    @java.lang.Override
    public final int getNumber() {
      return 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 GPS_DYNAMIC_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static GPS_DYNAMIC_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_GPS_DYNAMIC_INVALID;
        case 1: return euum_PORTABLE;
        case 2: return enum_STATIONARY;
        case 3: return enum_PEDESTRIAN;
        case 4: return enum_AUTOMOTIVE;
        case 5: return enum_SEA;
        case 6: return enum_1G;
        case 7: return enum_2G;
        case 8: return enum_4G;
        case 9: return enum_WRIST;
        case 10: return enum_BIKE;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return GPS_DYNAMIC_TYPEVerifier.INSTANCE;
    }

    private static final class GPS_DYNAMIC_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new GPS_DYNAMIC_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return GPS_DYNAMIC_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:GPS_DYNAMIC_TYPE)
  }

  /**
   * Protobuf enum {@code ANT_DEV_TYPE}
   */
  public enum ANT_DEV_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enumInvalid_dev_type = 0;</code>
     */
    enumInvalid_dev_type(0),
    /**
     * <code>enumHrm_dev_type = 1;</code>
     */
    enumHrm_dev_type(1),
    /**
     * <code>enumCbsc_dev_type = 2;</code>
     */
    enumCbsc_dev_type(2),
    /**
     * <code>enumBpwr_dev_type = 3;</code>
     */
    enumBpwr_dev_type(3),
    /**
     * <code>enumCad_dev_type = 5;</code>
     */
    enumCad_dev_type(5),
    /**
     * <code>enumSpd_dev_type = 6;</code>
     */
    enumSpd_dev_type(6),
    /**
     * <code>enumShft_dev_type = 7;</code>
     */
    enumShft_dev_type(7),
    /**
     * <code>enumDi2_dev_type = 8;</code>
     */
    enumDi2_dev_type(8),
    /**
     * <code>enumFe_dev_type = 9;</code>
     */
    enumFe_dev_type(9),
    /**
     * <code>enumMax_dev_type = 10;</code>
     */
    enumMax_dev_type(10),
    ;

    /**
     * <code>enumInvalid_dev_type = 0;</code>
     */
    public static final int enumInvalid_dev_type_VALUE = 0;
    /**
     * <code>enumHrm_dev_type = 1;</code>
     */
    public static final int enumHrm_dev_type_VALUE = 1;
    /**
     * <code>enumCbsc_dev_type = 2;</code>
     */
    public static final int enumCbsc_dev_type_VALUE = 2;
    /**
     * <code>enumBpwr_dev_type = 3;</code>
     */
    public static final int enumBpwr_dev_type_VALUE = 3;
    /**
     * <code>enumCad_dev_type = 5;</code>
     */
    public static final int enumCad_dev_type_VALUE = 5;
    /**
     * <code>enumSpd_dev_type = 6;</code>
     */
    public static final int enumSpd_dev_type_VALUE = 6;
    /**
     * <code>enumShft_dev_type = 7;</code>
     */
    public static final int enumShft_dev_type_VALUE = 7;
    /**
     * <code>enumDi2_dev_type = 8;</code>
     */
    public static final int enumDi2_dev_type_VALUE = 8;
    /**
     * <code>enumFe_dev_type = 9;</code>
     */
    public static final int enumFe_dev_type_VALUE = 9;
    /**
     * <code>enumMax_dev_type = 10;</code>
     */
    public static final int enumMax_dev_type_VALUE = 10;


    @java.lang.Override
    public final int getNumber() {
      return 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 ANT_DEV_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static ANT_DEV_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enumInvalid_dev_type;
        case 1: return enumHrm_dev_type;
        case 2: return enumCbsc_dev_type;
        case 3: return enumBpwr_dev_type;
        case 5: return enumCad_dev_type;
        case 6: return enumSpd_dev_type;
        case 7: return enumShft_dev_type;
        case 8: return enumDi2_dev_type;
        case 9: return enumFe_dev_type;
        case 10: return enumMax_dev_type;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return ANT_DEV_TYPEVerifier.INSTANCE;
    }

    private static final class ANT_DEV_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new ANT_DEV_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return ANT_DEV_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ANT_DEV_TYPE)
  }

  public interface factory_sn_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:factory_sn_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional string sn = 1;</code>
     * @return Whether the sn field is set.
     */
    boolean hasSn();
    /**
     * <code>optional string sn = 1;</code>
     * @return The sn.
     */
    java.lang.String getSn();
    /**
     * <code>optional string sn = 1;</code>
     * @return The bytes for sn.
     */
    com.google.protobuf.ByteString
        getSnBytes();

    /**
     * <code>optional string go_more_key = 2;</code>
     * @return Whether the goMoreKey field is set.
     */
    boolean hasGoMoreKey();
    /**
     * <code>optional string go_more_key = 2;</code>
     * @return The goMoreKey.
     */
    java.lang.String getGoMoreKey();
    /**
     * <code>optional string go_more_key = 2;</code>
     * @return The bytes for goMoreKey.
     */
    com.google.protobuf.ByteString
        getGoMoreKeyBytes();
  }
  /**
   * Protobuf type {@code factory_sn_message}
   */
  public  static final class factory_sn_message extends
      com.google.protobuf.GeneratedMessageLite<
          factory_sn_message, factory_sn_message.Builder> implements
      // @@protoc_insertion_point(message_implements:factory_sn_message)
      factory_sn_messageOrBuilder {
    private factory_sn_message() {
      sn_ = "";
      goMoreKey_ = "";
    }
    private int bitField0_;
    public static final int SN_FIELD_NUMBER = 1;
    private java.lang.String sn_;
    /**
     * <code>optional string sn = 1;</code>
     * @return Whether the sn field is set.
     */
    @java.lang.Override
    public boolean hasSn() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string sn = 1;</code>
     * @return The sn.
     */
    @java.lang.Override
    public java.lang.String getSn() {
      return sn_;
    }
    /**
     * <code>optional string sn = 1;</code>
     * @return The bytes for sn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSnBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(sn_);
    }
    /**
     * <code>optional string sn = 1;</code>
     * @param value The sn to set.
     */
    private void setSn(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000001;
      sn_ = value;
    }
    /**
     * <code>optional string sn = 1;</code>
     */
    private void clearSn() {
      bitField0_ = (bitField0_ & ~0x00000001);
      sn_ = getDefaultInstance().getSn();
    }
    /**
     * <code>optional string sn = 1;</code>
     * @param value The bytes for sn to set.
     */
    private void setSnBytes(
        com.google.protobuf.ByteString value) {
      sn_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }

    public static final int GO_MORE_KEY_FIELD_NUMBER = 2;
    private java.lang.String goMoreKey_;
    /**
     * <code>optional string go_more_key = 2;</code>
     * @return Whether the goMoreKey field is set.
     */
    @java.lang.Override
    public boolean hasGoMoreKey() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string go_more_key = 2;</code>
     * @return The goMoreKey.
     */
    @java.lang.Override
    public java.lang.String getGoMoreKey() {
      return goMoreKey_;
    }
    /**
     * <code>optional string go_more_key = 2;</code>
     * @return The bytes for goMoreKey.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGoMoreKeyBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(goMoreKey_);
    }
    /**
     * <code>optional string go_more_key = 2;</code>
     * @param value The goMoreKey to set.
     */
    private void setGoMoreKey(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000002;
      goMoreKey_ = value;
    }
    /**
     * <code>optional string go_more_key = 2;</code>
     */
    private void clearGoMoreKey() {
      bitField0_ = (bitField0_ & ~0x00000002);
      goMoreKey_ = getDefaultInstance().getGoMoreKey();
    }
    /**
     * <code>optional string go_more_key = 2;</code>
     * @param value The bytes for goMoreKey to set.
     */
    private void setGoMoreKeyBytes(
        com.google.protobuf.ByteString value) {
      goMoreKey_ = value.toStringUtf8();
      bitField0_ |= 0x00000002;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code factory_sn_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:factory_sn_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional string sn = 1;</code>
       * @return Whether the sn field is set.
       */
      @java.lang.Override
      public boolean hasSn() {
        return instance.hasSn();
      }
      /**
       * <code>optional string sn = 1;</code>
       * @return The sn.
       */
      @java.lang.Override
      public java.lang.String getSn() {
        return instance.getSn();
      }
      /**
       * <code>optional string sn = 1;</code>
       * @return The bytes for sn.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSnBytes() {
        return instance.getSnBytes();
      }
      /**
       * <code>optional string sn = 1;</code>
       * @param value The sn to set.
       * @return This builder for chaining.
       */
      public Builder setSn(
          java.lang.String value) {
        copyOnWrite();
        instance.setSn(value);
        return this;
      }
      /**
       * <code>optional string sn = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSn() {
        copyOnWrite();
        instance.clearSn();
        return this;
      }
      /**
       * <code>optional string sn = 1;</code>
       * @param value The bytes for sn to set.
       * @return This builder for chaining.
       */
      public Builder setSnBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSnBytes(value);
        return this;
      }

      /**
       * <code>optional string go_more_key = 2;</code>
       * @return Whether the goMoreKey field is set.
       */
      @java.lang.Override
      public boolean hasGoMoreKey() {
        return instance.hasGoMoreKey();
      }
      /**
       * <code>optional string go_more_key = 2;</code>
       * @return The goMoreKey.
       */
      @java.lang.Override
      public java.lang.String getGoMoreKey() {
        return instance.getGoMoreKey();
      }
      /**
       * <code>optional string go_more_key = 2;</code>
       * @return The bytes for goMoreKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getGoMoreKeyBytes() {
        return instance.getGoMoreKeyBytes();
      }
      /**
       * <code>optional string go_more_key = 2;</code>
       * @param value The goMoreKey to set.
       * @return This builder for chaining.
       */
      public Builder setGoMoreKey(
          java.lang.String value) {
        copyOnWrite();
        instance.setGoMoreKey(value);
        return this;
      }
      /**
       * <code>optional string go_more_key = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoMoreKey() {
        copyOnWrite();
        instance.clearGoMoreKey();
        return this;
      }
      /**
       * <code>optional string go_more_key = 2;</code>
       * @param value The bytes for goMoreKey to set.
       * @return This builder for chaining.
       */
      public Builder setGoMoreKeyBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setGoMoreKeyBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:factory_sn_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "sn_",
              "goMoreKey_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1008\u0000\u0002" +
                "\u1008\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:factory_sn_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message DEFAULT_INSTANCE;
    static {
      factory_sn_message defaultInstance = new factory_sn_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        factory_sn_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<factory_sn_message> PARSER;

    public static com.google.protobuf.Parser<factory_sn_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface factory_sensor_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:factory_sensor_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
     * @return Whether the sensorType field is set.
     */
    boolean hasSensorType();
    /**
     * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
     * @return The sensorType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE getSensorType();

    /**
     * <code>optional int32 data = 2;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <code>optional int32 data = 2;</code>
     * @return The data.
     */
    int getData();

    /**
     * <code>optional uint32 status = 3;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>optional uint32 status = 3;</code>
     * @return The status.
     */
    int getStatus();
  }
  /**
   * Protobuf type {@code factory_sensor_message}
   */
  public  static final class factory_sensor_message extends
      com.google.protobuf.GeneratedMessageLite<
          factory_sensor_message, factory_sensor_message.Builder> implements
      // @@protoc_insertion_point(message_implements:factory_sensor_message)
      factory_sensor_messageOrBuilder {
    private factory_sensor_message() {
    }
    private int bitField0_;
    public static final int SENSOR_TYPE_FIELD_NUMBER = 1;
    private int sensorType_;
    /**
     * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
     * @return Whether the sensorType field is set.
     */
    @java.lang.Override
    public boolean hasSensorType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
     * @return The sensorType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE getSensorType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE.forNumber(sensorType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE.enum_SENSOR_INVALID : result;
    }
    /**
     * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
     * @param value The sensorType to set.
     */
    private void setSensorType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE value) {
      sensorType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
     */
    private void clearSensorType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      sensorType_ = 0;
    }

    public static final int DATA_FIELD_NUMBER = 2;
    private int data_;
    /**
     * <code>optional int32 data = 2;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 data = 2;</code>
     * @return The data.
     */
    @java.lang.Override
    public int getData() {
      return data_;
    }
    /**
     * <code>optional int32 data = 2;</code>
     * @param value The data to set.
     */
    private void setData(int value) {
      bitField0_ |= 0x00000002;
      data_ = value;
    }
    /**
     * <code>optional int32 data = 2;</code>
     */
    private void clearData() {
      bitField0_ = (bitField0_ & ~0x00000002);
      data_ = 0;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private int status_;
    /**
     * <code>optional uint32 status = 3;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 status = 3;</code>
     * @return The status.
     */
    @java.lang.Override
    public int getStatus() {
      return status_;
    }
    /**
     * <code>optional uint32 status = 3;</code>
     * @param value The status to set.
     */
    private void setStatus(int value) {
      bitField0_ |= 0x00000004;
      status_ = value;
    }
    /**
     * <code>optional uint32 status = 3;</code>
     */
    private void clearStatus() {
      bitField0_ = (bitField0_ & ~0x00000004);
      status_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code factory_sensor_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:factory_sensor_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
       * @return Whether the sensorType field is set.
       */
      @java.lang.Override
      public boolean hasSensorType() {
        return instance.hasSensorType();
      }
      /**
       * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
       * @return The sensorType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE getSensorType() {
        return instance.getSensorType();
      }
      /**
       * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
       * @param value The enum numeric value on the wire for sensorType to set.
       * @return This builder for chaining.
       */
      public Builder setSensorType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE value) {
        copyOnWrite();
        instance.setSensorType(value);
        return this;
      }
      /**
       * <code>optional .FACTORY_SENSOR_TYPE sensor_type = 1 [default = enum_SENSOR_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearSensorType() {
        copyOnWrite();
        instance.clearSensorType();
        return this;
      }

      /**
       * <code>optional int32 data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <code>optional int32 data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public int getData() {
        return instance.getData();
      }
      /**
       * <code>optional int32 data = 2;</code>
       * @param value The data to set.
       * @return This builder for chaining.
       */
      public Builder setData(int value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <code>optional int32 data = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

      /**
       * <code>optional uint32 status = 3;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return instance.hasStatus();
      }
      /**
       * <code>optional uint32 status = 3;</code>
       * @return The status.
       */
      @java.lang.Override
      public int getStatus() {
        return instance.getStatus();
      }
      /**
       * <code>optional uint32 status = 3;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(int value) {
        copyOnWrite();
        instance.setStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 status = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        copyOnWrite();
        instance.clearStatus();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:factory_sensor_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "sensorType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_SENSOR_TYPE.internalGetVerifier(),
              "data_",
              "status_",
            };
            java.lang.String info =
                "\u0001\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u100c\u0000\u0002" +
                "\u1004\u0001\u0003\u100b\u0002";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:factory_sensor_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message DEFAULT_INSTANCE;
    static {
      factory_sensor_message defaultInstance = new factory_sensor_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        factory_sensor_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<factory_sensor_message> PARSER;

    public static com.google.protobuf.Parser<factory_sensor_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface memory_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:memory_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 total = 1;</code>
     * @return Whether the total field is set.
     */
    boolean hasTotal();
    /**
     * <code>optional uint32 total = 1;</code>
     * @return The total.
     */
    int getTotal();

    /**
     * <code>optional uint32 remain = 2;</code>
     * @return Whether the remain field is set.
     */
    boolean hasRemain();
    /**
     * <code>optional uint32 remain = 2;</code>
     * @return The remain.
     */
    int getRemain();
  }
  /**
   * Protobuf type {@code memory_message}
   */
  public  static final class memory_message extends
      com.google.protobuf.GeneratedMessageLite<
          memory_message, memory_message.Builder> implements
      // @@protoc_insertion_point(message_implements:memory_message)
      memory_messageOrBuilder {
    private memory_message() {
    }
    private int bitField0_;
    public static final int TOTAL_FIELD_NUMBER = 1;
    private int total_;
    /**
     * <code>optional uint32 total = 1;</code>
     * @return Whether the total field is set.
     */
    @java.lang.Override
    public boolean hasTotal() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 total = 1;</code>
     * @return The total.
     */
    @java.lang.Override
    public int getTotal() {
      return total_;
    }
    /**
     * <code>optional uint32 total = 1;</code>
     * @param value The total to set.
     */
    private void setTotal(int value) {
      bitField0_ |= 0x00000001;
      total_ = value;
    }
    /**
     * <code>optional uint32 total = 1;</code>
     */
    private void clearTotal() {
      bitField0_ = (bitField0_ & ~0x00000001);
      total_ = 0;
    }

    public static final int REMAIN_FIELD_NUMBER = 2;
    private int remain_;
    /**
     * <code>optional uint32 remain = 2;</code>
     * @return Whether the remain field is set.
     */
    @java.lang.Override
    public boolean hasRemain() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 remain = 2;</code>
     * @return The remain.
     */
    @java.lang.Override
    public int getRemain() {
      return remain_;
    }
    /**
     * <code>optional uint32 remain = 2;</code>
     * @param value The remain to set.
     */
    private void setRemain(int value) {
      bitField0_ |= 0x00000002;
      remain_ = value;
    }
    /**
     * <code>optional uint32 remain = 2;</code>
     */
    private void clearRemain() {
      bitField0_ = (bitField0_ & ~0x00000002);
      remain_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code memory_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:memory_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 total = 1;</code>
       * @return Whether the total field is set.
       */
      @java.lang.Override
      public boolean hasTotal() {
        return instance.hasTotal();
      }
      /**
       * <code>optional uint32 total = 1;</code>
       * @return The total.
       */
      @java.lang.Override
      public int getTotal() {
        return instance.getTotal();
      }
      /**
       * <code>optional uint32 total = 1;</code>
       * @param value The total to set.
       * @return This builder for chaining.
       */
      public Builder setTotal(int value) {
        copyOnWrite();
        instance.setTotal(value);
        return this;
      }
      /**
       * <code>optional uint32 total = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotal() {
        copyOnWrite();
        instance.clearTotal();
        return this;
      }

      /**
       * <code>optional uint32 remain = 2;</code>
       * @return Whether the remain field is set.
       */
      @java.lang.Override
      public boolean hasRemain() {
        return instance.hasRemain();
      }
      /**
       * <code>optional uint32 remain = 2;</code>
       * @return The remain.
       */
      @java.lang.Override
      public int getRemain() {
        return instance.getRemain();
      }
      /**
       * <code>optional uint32 remain = 2;</code>
       * @param value The remain to set.
       * @return This builder for chaining.
       */
      public Builder setRemain(int value) {
        copyOnWrite();
        instance.setRemain(value);
        return this;
      }
      /**
       * <code>optional uint32 remain = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemain() {
        copyOnWrite();
        instance.clearRemain();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:memory_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "total_",
              "remain_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:memory_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message DEFAULT_INSTANCE;
    static {
      memory_message defaultInstance = new memory_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        memory_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<memory_message> PARSER;

    public static com.google.protobuf.Parser<memory_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface battary_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:battary_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 voltage = 1;</code>
     * @return Whether the voltage field is set.
     */
    boolean hasVoltage();
    /**
     * <code>optional uint32 voltage = 1;</code>
     * @return The voltage.
     */
    int getVoltage();

    /**
     * <code>optional uint32 power_percent = 2;</code>
     * @return Whether the powerPercent field is set.
     */
    boolean hasPowerPercent();
    /**
     * <code>optional uint32 power_percent = 2;</code>
     * @return The powerPercent.
     */
    int getPowerPercent();
  }
  /**
   * Protobuf type {@code battary_message}
   */
  public  static final class battary_message extends
      com.google.protobuf.GeneratedMessageLite<
          battary_message, battary_message.Builder> implements
      // @@protoc_insertion_point(message_implements:battary_message)
      battary_messageOrBuilder {
    private battary_message() {
    }
    private int bitField0_;
    public static final int VOLTAGE_FIELD_NUMBER = 1;
    private int voltage_;
    /**
     * <code>optional uint32 voltage = 1;</code>
     * @return Whether the voltage field is set.
     */
    @java.lang.Override
    public boolean hasVoltage() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 voltage = 1;</code>
     * @return The voltage.
     */
    @java.lang.Override
    public int getVoltage() {
      return voltage_;
    }
    /**
     * <code>optional uint32 voltage = 1;</code>
     * @param value The voltage to set.
     */
    private void setVoltage(int value) {
      bitField0_ |= 0x00000001;
      voltage_ = value;
    }
    /**
     * <code>optional uint32 voltage = 1;</code>
     */
    private void clearVoltage() {
      bitField0_ = (bitField0_ & ~0x00000001);
      voltage_ = 0;
    }

    public static final int POWER_PERCENT_FIELD_NUMBER = 2;
    private int powerPercent_;
    /**
     * <code>optional uint32 power_percent = 2;</code>
     * @return Whether the powerPercent field is set.
     */
    @java.lang.Override
    public boolean hasPowerPercent() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 power_percent = 2;</code>
     * @return The powerPercent.
     */
    @java.lang.Override
    public int getPowerPercent() {
      return powerPercent_;
    }
    /**
     * <code>optional uint32 power_percent = 2;</code>
     * @param value The powerPercent to set.
     */
    private void setPowerPercent(int value) {
      bitField0_ |= 0x00000002;
      powerPercent_ = value;
    }
    /**
     * <code>optional uint32 power_percent = 2;</code>
     */
    private void clearPowerPercent() {
      bitField0_ = (bitField0_ & ~0x00000002);
      powerPercent_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code battary_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:battary_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 voltage = 1;</code>
       * @return Whether the voltage field is set.
       */
      @java.lang.Override
      public boolean hasVoltage() {
        return instance.hasVoltage();
      }
      /**
       * <code>optional uint32 voltage = 1;</code>
       * @return The voltage.
       */
      @java.lang.Override
      public int getVoltage() {
        return instance.getVoltage();
      }
      /**
       * <code>optional uint32 voltage = 1;</code>
       * @param value The voltage to set.
       * @return This builder for chaining.
       */
      public Builder setVoltage(int value) {
        copyOnWrite();
        instance.setVoltage(value);
        return this;
      }
      /**
       * <code>optional uint32 voltage = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVoltage() {
        copyOnWrite();
        instance.clearVoltage();
        return this;
      }

      /**
       * <code>optional uint32 power_percent = 2;</code>
       * @return Whether the powerPercent field is set.
       */
      @java.lang.Override
      public boolean hasPowerPercent() {
        return instance.hasPowerPercent();
      }
      /**
       * <code>optional uint32 power_percent = 2;</code>
       * @return The powerPercent.
       */
      @java.lang.Override
      public int getPowerPercent() {
        return instance.getPowerPercent();
      }
      /**
       * <code>optional uint32 power_percent = 2;</code>
       * @param value The powerPercent to set.
       * @return This builder for chaining.
       */
      public Builder setPowerPercent(int value) {
        copyOnWrite();
        instance.setPowerPercent(value);
        return this;
      }
      /**
       * <code>optional uint32 power_percent = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPowerPercent() {
        copyOnWrite();
        instance.clearPowerPercent();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:battary_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "voltage_",
              "powerPercent_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:battary_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message DEFAULT_INSTANCE;
    static {
      battary_message defaultInstance = new battary_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        battary_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<battary_message> PARSER;

    public static com.google.protobuf.Parser<battary_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface sim_fit_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sim_fit_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 num = 1;</code>
     * @return Whether the num field is set.
     */
    boolean hasNum();
    /**
     * <code>optional uint32 num = 1;</code>
     * @return The num.
     */
    int getNum();

    /**
     * <code>optional uint32 size = 2;</code>
     * @return Whether the size field is set.
     */
    boolean hasSize();
    /**
     * <code>optional uint32 size = 2;</code>
     * @return The size.
     */
    int getSize();
  }
  /**
   * Protobuf type {@code sim_fit_message}
   */
  public  static final class sim_fit_message extends
      com.google.protobuf.GeneratedMessageLite<
          sim_fit_message, sim_fit_message.Builder> implements
      // @@protoc_insertion_point(message_implements:sim_fit_message)
      sim_fit_messageOrBuilder {
    private sim_fit_message() {
    }
    private int bitField0_;
    public static final int NUM_FIELD_NUMBER = 1;
    private int num_;
    /**
     * <code>optional uint32 num = 1;</code>
     * @return Whether the num field is set.
     */
    @java.lang.Override
    public boolean hasNum() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 num = 1;</code>
     * @return The num.
     */
    @java.lang.Override
    public int getNum() {
      return num_;
    }
    /**
     * <code>optional uint32 num = 1;</code>
     * @param value The num to set.
     */
    private void setNum(int value) {
      bitField0_ |= 0x00000001;
      num_ = value;
    }
    /**
     * <code>optional uint32 num = 1;</code>
     */
    private void clearNum() {
      bitField0_ = (bitField0_ & ~0x00000001);
      num_ = 0;
    }

    public static final int SIZE_FIELD_NUMBER = 2;
    private int size_;
    /**
     * <code>optional uint32 size = 2;</code>
     * @return Whether the size field is set.
     */
    @java.lang.Override
    public boolean hasSize() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 size = 2;</code>
     * @return The size.
     */
    @java.lang.Override
    public int getSize() {
      return size_;
    }
    /**
     * <code>optional uint32 size = 2;</code>
     * @param value The size to set.
     */
    private void setSize(int value) {
      bitField0_ |= 0x00000002;
      size_ = value;
    }
    /**
     * <code>optional uint32 size = 2;</code>
     */
    private void clearSize() {
      bitField0_ = (bitField0_ & ~0x00000002);
      size_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code sim_fit_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:sim_fit_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 num = 1;</code>
       * @return Whether the num field is set.
       */
      @java.lang.Override
      public boolean hasNum() {
        return instance.hasNum();
      }
      /**
       * <code>optional uint32 num = 1;</code>
       * @return The num.
       */
      @java.lang.Override
      public int getNum() {
        return instance.getNum();
      }
      /**
       * <code>optional uint32 num = 1;</code>
       * @param value The num to set.
       * @return This builder for chaining.
       */
      public Builder setNum(int value) {
        copyOnWrite();
        instance.setNum(value);
        return this;
      }
      /**
       * <code>optional uint32 num = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearNum() {
        copyOnWrite();
        instance.clearNum();
        return this;
      }

      /**
       * <code>optional uint32 size = 2;</code>
       * @return Whether the size field is set.
       */
      @java.lang.Override
      public boolean hasSize() {
        return instance.hasSize();
      }
      /**
       * <code>optional uint32 size = 2;</code>
       * @return The size.
       */
      @java.lang.Override
      public int getSize() {
        return instance.getSize();
      }
      /**
       * <code>optional uint32 size = 2;</code>
       * @param value The size to set.
       * @return This builder for chaining.
       */
      public Builder setSize(int value) {
        copyOnWrite();
        instance.setSize(value);
        return this;
      }
      /**
       * <code>optional uint32 size = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSize() {
        copyOnWrite();
        instance.clearSize();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:sim_fit_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "num_",
              "size_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:sim_fit_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message DEFAULT_INSTANCE;
    static {
      sim_fit_message defaultInstance = new sim_fit_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        sim_fit_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<sim_fit_message> PARSER;

    public static com.google.protobuf.Parser<sim_fit_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface control_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:control_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
     * @return Whether the cmdType field is set.
     */
    boolean hasCmdType();
    /**
     * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
     * @return The cmdType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE getCmdType();

    /**
     * <code>optional uint32 status = 2;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>optional uint32 status = 2;</code>
     * @return The status.
     */
    int getStatus();
  }
  /**
   * Protobuf type {@code control_message}
   */
  public  static final class control_message extends
      com.google.protobuf.GeneratedMessageLite<
          control_message, control_message.Builder> implements
      // @@protoc_insertion_point(message_implements:control_message)
      control_messageOrBuilder {
    private control_message() {
    }
    private int bitField0_;
    public static final int CMD_TYPE_FIELD_NUMBER = 1;
    private int cmdType_;
    /**
     * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
     * @return Whether the cmdType field is set.
     */
    @java.lang.Override
    public boolean hasCmdType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
     * @return The cmdType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE getCmdType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE.forNumber(cmdType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE.enum_CMD_INVALID : result;
    }
    /**
     * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
     * @param value The cmdType to set.
     */
    private void setCmdType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE value) {
      cmdType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
     */
    private void clearCmdType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      cmdType_ = 0;
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private int status_;
    /**
     * <code>optional uint32 status = 2;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 status = 2;</code>
     * @return The status.
     */
    @java.lang.Override
    public int getStatus() {
      return status_;
    }
    /**
     * <code>optional uint32 status = 2;</code>
     * @param value The status to set.
     */
    private void setStatus(int value) {
      bitField0_ |= 0x00000002;
      status_ = value;
    }
    /**
     * <code>optional uint32 status = 2;</code>
     */
    private void clearStatus() {
      bitField0_ = (bitField0_ & ~0x00000002);
      status_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code control_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:control_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
       * @return Whether the cmdType field is set.
       */
      @java.lang.Override
      public boolean hasCmdType() {
        return instance.hasCmdType();
      }
      /**
       * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
       * @return The cmdType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE getCmdType() {
        return instance.getCmdType();
      }
      /**
       * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
       * @param value The enum numeric value on the wire for cmdType to set.
       * @return This builder for chaining.
       */
      public Builder setCmdType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE value) {
        copyOnWrite();
        instance.setCmdType(value);
        return this;
      }
      /**
       * <code>optional .CONTROL_CMD_TYPE cmd_type = 1 [default = enum_CMD_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearCmdType() {
        copyOnWrite();
        instance.clearCmdType();
        return this;
      }

      /**
       * <code>optional uint32 status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return instance.hasStatus();
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public int getStatus() {
        return instance.getStatus();
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(int value) {
        copyOnWrite();
        instance.setStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        copyOnWrite();
        instance.clearStatus();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:control_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "cmdType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.CONTROL_CMD_TYPE.internalGetVerifier(),
              "status_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100c\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:control_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message DEFAULT_INSTANCE;
    static {
      control_message defaultInstance = new control_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        control_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<control_message> PARSER;

    public static com.google.protobuf.Parser<control_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface gps_coordinate_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:gps_coordinate_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional double latitude = 1;</code>
     * @return Whether the latitude field is set.
     */
    boolean hasLatitude();
    /**
     * <code>optional double latitude = 1;</code>
     * @return The latitude.
     */
    double getLatitude();

    /**
     * <code>optional double longitude = 2;</code>
     * @return Whether the longitude field is set.
     */
    boolean hasLongitude();
    /**
     * <code>optional double longitude = 2;</code>
     * @return The longitude.
     */
    double getLongitude();
  }
  /**
   * Protobuf type {@code gps_coordinate_message}
   */
  public  static final class gps_coordinate_message extends
      com.google.protobuf.GeneratedMessageLite<
          gps_coordinate_message, gps_coordinate_message.Builder> implements
      // @@protoc_insertion_point(message_implements:gps_coordinate_message)
      gps_coordinate_messageOrBuilder {
    private gps_coordinate_message() {
    }
    private int bitField0_;
    public static final int LATITUDE_FIELD_NUMBER = 1;
    private double latitude_;
    /**
     * <code>optional double latitude = 1;</code>
     * @return Whether the latitude field is set.
     */
    @java.lang.Override
    public boolean hasLatitude() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional double latitude = 1;</code>
     * @return The latitude.
     */
    @java.lang.Override
    public double getLatitude() {
      return latitude_;
    }
    /**
     * <code>optional double latitude = 1;</code>
     * @param value The latitude to set.
     */
    private void setLatitude(double value) {
      bitField0_ |= 0x00000001;
      latitude_ = value;
    }
    /**
     * <code>optional double latitude = 1;</code>
     */
    private void clearLatitude() {
      bitField0_ = (bitField0_ & ~0x00000001);
      latitude_ = 0D;
    }

    public static final int LONGITUDE_FIELD_NUMBER = 2;
    private double longitude_;
    /**
     * <code>optional double longitude = 2;</code>
     * @return Whether the longitude field is set.
     */
    @java.lang.Override
    public boolean hasLongitude() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional double longitude = 2;</code>
     * @return The longitude.
     */
    @java.lang.Override
    public double getLongitude() {
      return longitude_;
    }
    /**
     * <code>optional double longitude = 2;</code>
     * @param value The longitude to set.
     */
    private void setLongitude(double value) {
      bitField0_ |= 0x00000002;
      longitude_ = value;
    }
    /**
     * <code>optional double longitude = 2;</code>
     */
    private void clearLongitude() {
      bitField0_ = (bitField0_ & ~0x00000002);
      longitude_ = 0D;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code gps_coordinate_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:gps_coordinate_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional double latitude = 1;</code>
       * @return Whether the latitude field is set.
       */
      @java.lang.Override
      public boolean hasLatitude() {
        return instance.hasLatitude();
      }
      /**
       * <code>optional double latitude = 1;</code>
       * @return The latitude.
       */
      @java.lang.Override
      public double getLatitude() {
        return instance.getLatitude();
      }
      /**
       * <code>optional double latitude = 1;</code>
       * @param value The latitude to set.
       * @return This builder for chaining.
       */
      public Builder setLatitude(double value) {
        copyOnWrite();
        instance.setLatitude(value);
        return this;
      }
      /**
       * <code>optional double latitude = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLatitude() {
        copyOnWrite();
        instance.clearLatitude();
        return this;
      }

      /**
       * <code>optional double longitude = 2;</code>
       * @return Whether the longitude field is set.
       */
      @java.lang.Override
      public boolean hasLongitude() {
        return instance.hasLongitude();
      }
      /**
       * <code>optional double longitude = 2;</code>
       * @return The longitude.
       */
      @java.lang.Override
      public double getLongitude() {
        return instance.getLongitude();
      }
      /**
       * <code>optional double longitude = 2;</code>
       * @param value The longitude to set.
       * @return This builder for chaining.
       */
      public Builder setLongitude(double value) {
        copyOnWrite();
        instance.setLongitude(value);
        return this;
      }
      /**
       * <code>optional double longitude = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearLongitude() {
        copyOnWrite();
        instance.clearLongitude();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:gps_coordinate_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "latitude_",
              "longitude_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1000\u0000\u0002" +
                "\u1000\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:gps_coordinate_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message DEFAULT_INSTANCE;
    static {
      gps_coordinate_message defaultInstance = new gps_coordinate_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        gps_coordinate_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<gps_coordinate_message> PARSER;

    public static com.google.protobuf.Parser<gps_coordinate_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface sun_time_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sun_time_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 sunrise_time = 1;</code>
     * @return Whether the sunriseTime field is set.
     */
    boolean hasSunriseTime();
    /**
     * <code>optional uint32 sunrise_time = 1;</code>
     * @return The sunriseTime.
     */
    int getSunriseTime();

    /**
     * <code>optional uint32 sunset_time = 2;</code>
     * @return Whether the sunsetTime field is set.
     */
    boolean hasSunsetTime();
    /**
     * <code>optional uint32 sunset_time = 2;</code>
     * @return The sunsetTime.
     */
    int getSunsetTime();
  }
  /**
   * Protobuf type {@code sun_time_message}
   */
  public  static final class sun_time_message extends
      com.google.protobuf.GeneratedMessageLite<
          sun_time_message, sun_time_message.Builder> implements
      // @@protoc_insertion_point(message_implements:sun_time_message)
      sun_time_messageOrBuilder {
    private sun_time_message() {
    }
    private int bitField0_;
    public static final int SUNRISE_TIME_FIELD_NUMBER = 1;
    private int sunriseTime_;
    /**
     * <code>optional uint32 sunrise_time = 1;</code>
     * @return Whether the sunriseTime field is set.
     */
    @java.lang.Override
    public boolean hasSunriseTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 sunrise_time = 1;</code>
     * @return The sunriseTime.
     */
    @java.lang.Override
    public int getSunriseTime() {
      return sunriseTime_;
    }
    /**
     * <code>optional uint32 sunrise_time = 1;</code>
     * @param value The sunriseTime to set.
     */
    private void setSunriseTime(int value) {
      bitField0_ |= 0x00000001;
      sunriseTime_ = value;
    }
    /**
     * <code>optional uint32 sunrise_time = 1;</code>
     */
    private void clearSunriseTime() {
      bitField0_ = (bitField0_ & ~0x00000001);
      sunriseTime_ = 0;
    }

    public static final int SUNSET_TIME_FIELD_NUMBER = 2;
    private int sunsetTime_;
    /**
     * <code>optional uint32 sunset_time = 2;</code>
     * @return Whether the sunsetTime field is set.
     */
    @java.lang.Override
    public boolean hasSunsetTime() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 sunset_time = 2;</code>
     * @return The sunsetTime.
     */
    @java.lang.Override
    public int getSunsetTime() {
      return sunsetTime_;
    }
    /**
     * <code>optional uint32 sunset_time = 2;</code>
     * @param value The sunsetTime to set.
     */
    private void setSunsetTime(int value) {
      bitField0_ |= 0x00000002;
      sunsetTime_ = value;
    }
    /**
     * <code>optional uint32 sunset_time = 2;</code>
     */
    private void clearSunsetTime() {
      bitField0_ = (bitField0_ & ~0x00000002);
      sunsetTime_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code sun_time_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:sun_time_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 sunrise_time = 1;</code>
       * @return Whether the sunriseTime field is set.
       */
      @java.lang.Override
      public boolean hasSunriseTime() {
        return instance.hasSunriseTime();
      }
      /**
       * <code>optional uint32 sunrise_time = 1;</code>
       * @return The sunriseTime.
       */
      @java.lang.Override
      public int getSunriseTime() {
        return instance.getSunriseTime();
      }
      /**
       * <code>optional uint32 sunrise_time = 1;</code>
       * @param value The sunriseTime to set.
       * @return This builder for chaining.
       */
      public Builder setSunriseTime(int value) {
        copyOnWrite();
        instance.setSunriseTime(value);
        return this;
      }
      /**
       * <code>optional uint32 sunrise_time = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSunriseTime() {
        copyOnWrite();
        instance.clearSunriseTime();
        return this;
      }

      /**
       * <code>optional uint32 sunset_time = 2;</code>
       * @return Whether the sunsetTime field is set.
       */
      @java.lang.Override
      public boolean hasSunsetTime() {
        return instance.hasSunsetTime();
      }
      /**
       * <code>optional uint32 sunset_time = 2;</code>
       * @return The sunsetTime.
       */
      @java.lang.Override
      public int getSunsetTime() {
        return instance.getSunsetTime();
      }
      /**
       * <code>optional uint32 sunset_time = 2;</code>
       * @param value The sunsetTime to set.
       * @return This builder for chaining.
       */
      public Builder setSunsetTime(int value) {
        copyOnWrite();
        instance.setSunsetTime(value);
        return this;
      }
      /**
       * <code>optional uint32 sunset_time = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSunsetTime() {
        copyOnWrite();
        instance.clearSunsetTime();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:sun_time_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "sunriseTime_",
              "sunsetTime_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:sun_time_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message DEFAULT_INSTANCE;
    static {
      sun_time_message defaultInstance = new sun_time_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        sun_time_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<sun_time_message> PARSER;

    public static com.google.protobuf.Parser<sun_time_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface power_save_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:power_save_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 time = 1;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional uint32 time = 1;</code>
     * @return The time.
     */
    int getTime();
  }
  /**
   * Protobuf type {@code power_save_message}
   */
  public  static final class power_save_message extends
      com.google.protobuf.GeneratedMessageLite<
          power_save_message, power_save_message.Builder> implements
      // @@protoc_insertion_point(message_implements:power_save_message)
      power_save_messageOrBuilder {
    private power_save_message() {
    }
    private int bitField0_;
    public static final int TIME_FIELD_NUMBER = 1;
    private int time_;
    /**
     * <code>optional uint32 time = 1;</code>
     * @return Whether the time field is set.
     */
    @java.lang.Override
    public boolean hasTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 time = 1;</code>
     * @return The time.
     */
    @java.lang.Override
    public int getTime() {
      return time_;
    }
    /**
     * <code>optional uint32 time = 1;</code>
     * @param value The time to set.
     */
    private void setTime(int value) {
      bitField0_ |= 0x00000001;
      time_ = value;
    }
    /**
     * <code>optional uint32 time = 1;</code>
     */
    private void clearTime() {
      bitField0_ = (bitField0_ & ~0x00000001);
      time_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code power_save_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:power_save_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 time = 1;</code>
       * @return Whether the time field is set.
       */
      @java.lang.Override
      public boolean hasTime() {
        return instance.hasTime();
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @return The time.
       */
      @java.lang.Override
      public int getTime() {
        return instance.getTime();
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(int value) {
        copyOnWrite();
        instance.setTime(value);
        return this;
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        copyOnWrite();
        instance.clearTime();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:power_save_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "time_",
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u100b\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:power_save_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message DEFAULT_INSTANCE;
    static {
      power_save_message defaultInstance = new power_save_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        power_save_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<power_save_message> PARSER;

    public static com.google.protobuf.Parser<power_save_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface rtc_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:rtc_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 time = 1;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional uint32 time = 1;</code>
     * @return The time.
     */
    int getTime();
  }
  /**
   * Protobuf type {@code rtc_message}
   */
  public  static final class rtc_message extends
      com.google.protobuf.GeneratedMessageLite<
          rtc_message, rtc_message.Builder> implements
      // @@protoc_insertion_point(message_implements:rtc_message)
      rtc_messageOrBuilder {
    private rtc_message() {
    }
    private int bitField0_;
    public static final int TIME_FIELD_NUMBER = 1;
    private int time_;
    /**
     * <code>optional uint32 time = 1;</code>
     * @return Whether the time field is set.
     */
    @java.lang.Override
    public boolean hasTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 time = 1;</code>
     * @return The time.
     */
    @java.lang.Override
    public int getTime() {
      return time_;
    }
    /**
     * <code>optional uint32 time = 1;</code>
     * @param value The time to set.
     */
    private void setTime(int value) {
      bitField0_ |= 0x00000001;
      time_ = value;
    }
    /**
     * <code>optional uint32 time = 1;</code>
     */
    private void clearTime() {
      bitField0_ = (bitField0_ & ~0x00000001);
      time_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code rtc_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:rtc_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 time = 1;</code>
       * @return Whether the time field is set.
       */
      @java.lang.Override
      public boolean hasTime() {
        return instance.hasTime();
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @return The time.
       */
      @java.lang.Override
      public int getTime() {
        return instance.getTime();
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(int value) {
        copyOnWrite();
        instance.setTime(value);
        return this;
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        copyOnWrite();
        instance.clearTime();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:rtc_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "time_",
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u100b\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:rtc_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message DEFAULT_INSTANCE;
    static {
      rtc_message defaultInstance = new rtc_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        rtc_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<rtc_message> PARSER;

    public static com.google.protobuf.Parser<rtc_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface filter_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:filter_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
     * @return Whether the filterType field is set.
     */
    boolean hasFilterType();
    /**
     * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
     * @return The filterType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE getFilterType();

    /**
     * <code>optional uint32 status = 2;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>optional uint32 status = 2;</code>
     * @return The status.
     */
    int getStatus();
  }
  /**
   * Protobuf type {@code filter_message}
   */
  public  static final class filter_message extends
      com.google.protobuf.GeneratedMessageLite<
          filter_message, filter_message.Builder> implements
      // @@protoc_insertion_point(message_implements:filter_message)
      filter_messageOrBuilder {
    private filter_message() {
    }
    private int bitField0_;
    public static final int FILTER_TYPE_FIELD_NUMBER = 1;
    private int filterType_;
    /**
     * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
     * @return Whether the filterType field is set.
     */
    @java.lang.Override
    public boolean hasFilterType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
     * @return The filterType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE getFilterType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE.forNumber(filterType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE.enum_FILTER_INVALID : result;
    }
    /**
     * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
     * @param value The filterType to set.
     */
    private void setFilterType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE value) {
      filterType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
     */
    private void clearFilterType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      filterType_ = 0;
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private int status_;
    /**
     * <code>optional uint32 status = 2;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 status = 2;</code>
     * @return The status.
     */
    @java.lang.Override
    public int getStatus() {
      return status_;
    }
    /**
     * <code>optional uint32 status = 2;</code>
     * @param value The status to set.
     */
    private void setStatus(int value) {
      bitField0_ |= 0x00000002;
      status_ = value;
    }
    /**
     * <code>optional uint32 status = 2;</code>
     */
    private void clearStatus() {
      bitField0_ = (bitField0_ & ~0x00000002);
      status_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code filter_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:filter_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
       * @return Whether the filterType field is set.
       */
      @java.lang.Override
      public boolean hasFilterType() {
        return instance.hasFilterType();
      }
      /**
       * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
       * @return The filterType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE getFilterType() {
        return instance.getFilterType();
      }
      /**
       * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
       * @param value The enum numeric value on the wire for filterType to set.
       * @return This builder for chaining.
       */
      public Builder setFilterType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE value) {
        copyOnWrite();
        instance.setFilterType(value);
        return this;
      }
      /**
       * <code>optional .FILTER_TYPE filter_type = 1 [default = enum_FILTER_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearFilterType() {
        copyOnWrite();
        instance.clearFilterType();
        return this;
      }

      /**
       * <code>optional uint32 status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return instance.hasStatus();
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public int getStatus() {
        return instance.getStatus();
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(int value) {
        copyOnWrite();
        instance.setStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        copyOnWrite();
        instance.clearStatus();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:filter_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "filterType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FILTER_TYPE.internalGetVerifier(),
              "status_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100c\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:filter_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message DEFAULT_INSTANCE;
    static {
      filter_message defaultInstance = new filter_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        filter_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<filter_message> PARSER;

    public static com.google.protobuf.Parser<filter_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface gps_control_cmd_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:gps_control_cmd_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
     * @return Whether the gpsCmdType field is set.
     */
    boolean hasGpsCmdType();
    /**
     * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
     * @return The gpsCmdType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE getGpsCmdType();

    /**
     * <code>optional uint32 status = 2;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>optional uint32 status = 2;</code>
     * @return The status.
     */
    int getStatus();
  }
  /**
   * Protobuf type {@code gps_control_cmd_message}
   */
  public  static final class gps_control_cmd_message extends
      com.google.protobuf.GeneratedMessageLite<
          gps_control_cmd_message, gps_control_cmd_message.Builder> implements
      // @@protoc_insertion_point(message_implements:gps_control_cmd_message)
      gps_control_cmd_messageOrBuilder {
    private gps_control_cmd_message() {
    }
    private int bitField0_;
    public static final int GPS_CMD_TYPE_FIELD_NUMBER = 1;
    private int gpsCmdType_;
    /**
     * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
     * @return Whether the gpsCmdType field is set.
     */
    @java.lang.Override
    public boolean hasGpsCmdType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
     * @return The gpsCmdType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE getGpsCmdType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE.forNumber(gpsCmdType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE.enum_GPS_CMD_INVALID : result;
    }
    /**
     * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
     * @param value The gpsCmdType to set.
     */
    private void setGpsCmdType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE value) {
      gpsCmdType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
     */
    private void clearGpsCmdType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      gpsCmdType_ = 0;
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private int status_;
    /**
     * <code>optional uint32 status = 2;</code>
     * @return Whether the status field is set.
     */
    @java.lang.Override
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 status = 2;</code>
     * @return The status.
     */
    @java.lang.Override
    public int getStatus() {
      return status_;
    }
    /**
     * <code>optional uint32 status = 2;</code>
     * @param value The status to set.
     */
    private void setStatus(int value) {
      bitField0_ |= 0x00000002;
      status_ = value;
    }
    /**
     * <code>optional uint32 status = 2;</code>
     */
    private void clearStatus() {
      bitField0_ = (bitField0_ & ~0x00000002);
      status_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code gps_control_cmd_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:gps_control_cmd_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
       * @return Whether the gpsCmdType field is set.
       */
      @java.lang.Override
      public boolean hasGpsCmdType() {
        return instance.hasGpsCmdType();
      }
      /**
       * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
       * @return The gpsCmdType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE getGpsCmdType() {
        return instance.getGpsCmdType();
      }
      /**
       * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
       * @param value The enum numeric value on the wire for gpsCmdType to set.
       * @return This builder for chaining.
       */
      public Builder setGpsCmdType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE value) {
        copyOnWrite();
        instance.setGpsCmdType(value);
        return this;
      }
      /**
       * <code>optional .GPS_CONTROL_CMD_TYPE gps_cmd_type = 1 [default = enum_GPS_CMD_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearGpsCmdType() {
        copyOnWrite();
        instance.clearGpsCmdType();
        return this;
      }

      /**
       * <code>optional uint32 status = 2;</code>
       * @return Whether the status field is set.
       */
      @java.lang.Override
      public boolean hasStatus() {
        return instance.hasStatus();
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @return The status.
       */
      @java.lang.Override
      public int getStatus() {
        return instance.getStatus();
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(int value) {
        copyOnWrite();
        instance.setStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 status = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        copyOnWrite();
        instance.clearStatus();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:gps_control_cmd_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "gpsCmdType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_CONTROL_CMD_TYPE.internalGetVerifier(),
              "status_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100c\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:gps_control_cmd_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message DEFAULT_INSTANCE;
    static {
      gps_control_cmd_message defaultInstance = new gps_control_cmd_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        gps_control_cmd_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<gps_control_cmd_message> PARSER;

    public static com.google.protobuf.Parser<gps_control_cmd_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface gps_gnss_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:gps_gnss_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 gnss_gnss_cmd = 1;</code>
     * @return Whether the gnssGnssCmd field is set.
     */
    boolean hasGnssGnssCmd();
    /**
     * <code>optional uint32 gnss_gnss_cmd = 1;</code>
     * @return The gnssGnssCmd.
     */
    int getGnssGnssCmd();
  }
  /**
   * Protobuf type {@code gps_gnss_message}
   */
  public  static final class gps_gnss_message extends
      com.google.protobuf.GeneratedMessageLite<
          gps_gnss_message, gps_gnss_message.Builder> implements
      // @@protoc_insertion_point(message_implements:gps_gnss_message)
      gps_gnss_messageOrBuilder {
    private gps_gnss_message() {
    }
    private int bitField0_;
    public static final int GNSS_GNSS_CMD_FIELD_NUMBER = 1;
    private int gnssGnssCmd_;
    /**
     * <code>optional uint32 gnss_gnss_cmd = 1;</code>
     * @return Whether the gnssGnssCmd field is set.
     */
    @java.lang.Override
    public boolean hasGnssGnssCmd() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 gnss_gnss_cmd = 1;</code>
     * @return The gnssGnssCmd.
     */
    @java.lang.Override
    public int getGnssGnssCmd() {
      return gnssGnssCmd_;
    }
    /**
     * <code>optional uint32 gnss_gnss_cmd = 1;</code>
     * @param value The gnssGnssCmd to set.
     */
    private void setGnssGnssCmd(int value) {
      bitField0_ |= 0x00000001;
      gnssGnssCmd_ = value;
    }
    /**
     * <code>optional uint32 gnss_gnss_cmd = 1;</code>
     */
    private void clearGnssGnssCmd() {
      bitField0_ = (bitField0_ & ~0x00000001);
      gnssGnssCmd_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code gps_gnss_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:gps_gnss_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 gnss_gnss_cmd = 1;</code>
       * @return Whether the gnssGnssCmd field is set.
       */
      @java.lang.Override
      public boolean hasGnssGnssCmd() {
        return instance.hasGnssGnssCmd();
      }
      /**
       * <code>optional uint32 gnss_gnss_cmd = 1;</code>
       * @return The gnssGnssCmd.
       */
      @java.lang.Override
      public int getGnssGnssCmd() {
        return instance.getGnssGnssCmd();
      }
      /**
       * <code>optional uint32 gnss_gnss_cmd = 1;</code>
       * @param value The gnssGnssCmd to set.
       * @return This builder for chaining.
       */
      public Builder setGnssGnssCmd(int value) {
        copyOnWrite();
        instance.setGnssGnssCmd(value);
        return this;
      }
      /**
       * <code>optional uint32 gnss_gnss_cmd = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGnssGnssCmd() {
        copyOnWrite();
        instance.clearGnssGnssCmd();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:gps_gnss_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "gnssGnssCmd_",
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u100b\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:gps_gnss_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message DEFAULT_INSTANCE;
    static {
      gps_gnss_message defaultInstance = new gps_gnss_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        gps_gnss_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<gps_gnss_message> PARSER;

    public static com.google.protobuf.Parser<gps_gnss_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface gps_dynamic_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:gps_dynamic_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
     * @return Whether the gpsDynamicType field is set.
     */
    boolean hasGpsDynamicType();
    /**
     * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
     * @return The gpsDynamicType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE getGpsDynamicType();
  }
  /**
   * Protobuf type {@code gps_dynamic_message}
   */
  public  static final class gps_dynamic_message extends
      com.google.protobuf.GeneratedMessageLite<
          gps_dynamic_message, gps_dynamic_message.Builder> implements
      // @@protoc_insertion_point(message_implements:gps_dynamic_message)
      gps_dynamic_messageOrBuilder {
    private gps_dynamic_message() {
    }
    private int bitField0_;
    public static final int GPS_DYNAMIC_TYPE_FIELD_NUMBER = 1;
    private int gpsDynamicType_;
    /**
     * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
     * @return Whether the gpsDynamicType field is set.
     */
    @java.lang.Override
    public boolean hasGpsDynamicType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
     * @return The gpsDynamicType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE getGpsDynamicType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE.forNumber(gpsDynamicType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE.enum_GPS_DYNAMIC_INVALID : result;
    }
    /**
     * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
     * @param value The gpsDynamicType to set.
     */
    private void setGpsDynamicType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE value) {
      gpsDynamicType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
     */
    private void clearGpsDynamicType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      gpsDynamicType_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code gps_dynamic_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:gps_dynamic_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
       * @return Whether the gpsDynamicType field is set.
       */
      @java.lang.Override
      public boolean hasGpsDynamicType() {
        return instance.hasGpsDynamicType();
      }
      /**
       * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
       * @return The gpsDynamicType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE getGpsDynamicType() {
        return instance.getGpsDynamicType();
      }
      /**
       * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
       * @param value The enum numeric value on the wire for gpsDynamicType to set.
       * @return This builder for chaining.
       */
      public Builder setGpsDynamicType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE value) {
        copyOnWrite();
        instance.setGpsDynamicType(value);
        return this;
      }
      /**
       * <code>optional .GPS_DYNAMIC_TYPE gps_dynamic_type = 1 [default = enum_GPS_DYNAMIC_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearGpsDynamicType() {
        copyOnWrite();
        instance.clearGpsDynamicType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:gps_dynamic_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "gpsDynamicType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GPS_DYNAMIC_TYPE.internalGetVerifier(),
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u100c\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:gps_dynamic_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message DEFAULT_INSTANCE;
    static {
      gps_dynamic_message defaultInstance = new gps_dynamic_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        gps_dynamic_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<gps_dynamic_message> PARSER;

    public static com.google.protobuf.Parser<gps_dynamic_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface gps_cmd_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:gps_cmd_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @return A list containing the gpsCmd.
     */
    java.util.List<com.google.protobuf.ByteString> getGpsCmdList();
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @return The count of gpsCmd.
     */
    int getGpsCmdCount();
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @param index The index of the element to return.
     * @return The gpsCmd at the given index.
     */
    com.google.protobuf.ByteString getGpsCmd(int index);
  }
  /**
   * Protobuf type {@code gps_cmd_message}
   */
  public  static final class gps_cmd_message extends
      com.google.protobuf.GeneratedMessageLite<
          gps_cmd_message, gps_cmd_message.Builder> implements
      // @@protoc_insertion_point(message_implements:gps_cmd_message)
      gps_cmd_messageOrBuilder {
    private gps_cmd_message() {
      gpsCmd_ = emptyProtobufList();
    }
    public static final int GPS_CMD_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> gpsCmd_;
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @return A list containing the gpsCmd.
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.ByteString>
        getGpsCmdList() {
      return gpsCmd_;
    }
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @return The count of gpsCmd.
     */
    @java.lang.Override
    public int getGpsCmdCount() {
      return gpsCmd_.size();
    }
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @param index The index of the element to return.
     * @return The gpsCmd at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getGpsCmd(int index) {
      return gpsCmd_.get(index);
    }
    private void ensureGpsCmdIsMutable() {
      com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> tmp = gpsCmd_;
      if (!tmp.isModifiable()) {
        gpsCmd_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @param index The index to set the value at.
     * @param value The gpsCmd to set.
     */
    private void setGpsCmd(
        int index, com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureGpsCmdIsMutable();
      gpsCmd_.set(index, value);
    }
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @param value The gpsCmd to add.
     */
    private void addGpsCmd(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureGpsCmdIsMutable();
      gpsCmd_.add(value);
    }
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     * @param values The gpsCmd to add.
     */
    private void addAllGpsCmd(
        java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
      ensureGpsCmdIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, gpsCmd_);
    }
    /**
     * <code>repeated bytes gps_cmd = 1;</code>
     */
    private void clearGpsCmd() {
      gpsCmd_ = emptyProtobufList();
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code gps_cmd_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:gps_cmd_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated bytes gps_cmd = 1;</code>
       * @return A list containing the gpsCmd.
       */
      @java.lang.Override
      public java.util.List<com.google.protobuf.ByteString>
          getGpsCmdList() {
        return java.util.Collections.unmodifiableList(
            instance.getGpsCmdList());
      }
      /**
       * <code>repeated bytes gps_cmd = 1;</code>
       * @return The count of gpsCmd.
       */
      @java.lang.Override
      public int getGpsCmdCount() {
        return instance.getGpsCmdCount();
      }
      /**
       * <code>repeated bytes gps_cmd = 1;</code>
       * @param index The index of the element to return.
       * @return The gpsCmd at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getGpsCmd(int index) {
        return instance.getGpsCmd(index);
      }
      /**
       * <code>repeated bytes gps_cmd = 1;</code>
       * @param value The gpsCmd to set.
       * @return This builder for chaining.
       */
      public Builder setGpsCmd(
          int index, com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setGpsCmd(index, value);
        return this;
      }
      /**
       * <code>repeated bytes gps_cmd = 1;</code>
       * @param value The gpsCmd to add.
       * @return This builder for chaining.
       */
      public Builder addGpsCmd(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addGpsCmd(value);
        return this;
      }
      /**
       * <code>repeated bytes gps_cmd = 1;</code>
       * @param values The gpsCmd to add.
       * @return This builder for chaining.
       */
      public Builder addAllGpsCmd(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        copyOnWrite();
        instance.addAllGpsCmd(values);
        return this;
      }
      /**
       * <code>repeated bytes gps_cmd = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGpsCmd() {
        copyOnWrite();
        instance.clearGpsCmd();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:gps_cmd_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "gpsCmd_",
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001c";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:gps_cmd_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message DEFAULT_INSTANCE;
    static {
      gps_cmd_message defaultInstance = new gps_cmd_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        gps_cmd_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<gps_cmd_message> PARSER;

    public static com.google.protobuf.Parser<gps_cmd_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface data_set_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:data_set_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 data_type = 1;</code>
     * @return Whether the dataType field is set.
     */
    boolean hasDataType();
    /**
     * <code>optional uint32 data_type = 1;</code>
     * @return The dataType.
     */
    int getDataType();

    /**
     * <code>optional uint32 value = 2;</code>
     * @return Whether the value field is set.
     */
    boolean hasValue();
    /**
     * <code>optional uint32 value = 2;</code>
     * @return The value.
     */
    int getValue();
  }
  /**
   * Protobuf type {@code data_set_message}
   */
  public  static final class data_set_message extends
      com.google.protobuf.GeneratedMessageLite<
          data_set_message, data_set_message.Builder> implements
      // @@protoc_insertion_point(message_implements:data_set_message)
      data_set_messageOrBuilder {
    private data_set_message() {
    }
    private int bitField0_;
    public static final int DATA_TYPE_FIELD_NUMBER = 1;
    private int dataType_;
    /**
     * <code>optional uint32 data_type = 1;</code>
     * @return Whether the dataType field is set.
     */
    @java.lang.Override
    public boolean hasDataType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 data_type = 1;</code>
     * @return The dataType.
     */
    @java.lang.Override
    public int getDataType() {
      return dataType_;
    }
    /**
     * <code>optional uint32 data_type = 1;</code>
     * @param value The dataType to set.
     */
    private void setDataType(int value) {
      bitField0_ |= 0x00000001;
      dataType_ = value;
    }
    /**
     * <code>optional uint32 data_type = 1;</code>
     */
    private void clearDataType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      dataType_ = 0;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * <code>optional uint32 value = 2;</code>
     * @return Whether the value field is set.
     */
    @java.lang.Override
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public int getValue() {
      return value_;
    }
    /**
     * <code>optional uint32 value = 2;</code>
     * @param value The value to set.
     */
    private void setValue(int value) {
      bitField0_ |= 0x00000002;
      value_ = value;
    }
    /**
     * <code>optional uint32 value = 2;</code>
     */
    private void clearValue() {
      bitField0_ = (bitField0_ & ~0x00000002);
      value_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code data_set_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:data_set_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 data_type = 1;</code>
       * @return Whether the dataType field is set.
       */
      @java.lang.Override
      public boolean hasDataType() {
        return instance.hasDataType();
      }
      /**
       * <code>optional uint32 data_type = 1;</code>
       * @return The dataType.
       */
      @java.lang.Override
      public int getDataType() {
        return instance.getDataType();
      }
      /**
       * <code>optional uint32 data_type = 1;</code>
       * @param value The dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataType(int value) {
        copyOnWrite();
        instance.setDataType(value);
        return this;
      }
      /**
       * <code>optional uint32 data_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataType() {
        copyOnWrite();
        instance.clearDataType();
        return this;
      }

      /**
       * <code>optional uint32 value = 2;</code>
       * @return Whether the value field is set.
       */
      @java.lang.Override
      public boolean hasValue() {
        return instance.hasValue();
      }
      /**
       * <code>optional uint32 value = 2;</code>
       * @return The value.
       */
      @java.lang.Override
      public int getValue() {
        return instance.getValue();
      }
      /**
       * <code>optional uint32 value = 2;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(int value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <code>optional uint32 value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:data_set_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "dataType_",
              "value_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:data_set_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message DEFAULT_INSTANCE;
    static {
      data_set_message defaultInstance = new data_set_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        data_set_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<data_set_message> PARSER;

    public static com.google.protobuf.Parser<data_set_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface gps_snr_massageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:gps_snr_massage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .GNSS_TYPE gnss_type = 1;</code>
     * @return Whether the gnssType field is set.
     */
    boolean hasGnssType();
    /**
     * <code>optional .GNSS_TYPE gnss_type = 1;</code>
     * @return The gnssType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE getGnssType();

    /**
     * <code>repeated uint32 data = 2;</code>
     * @return A list containing the data.
     */
    java.util.List<java.lang.Integer> getDataList();
    /**
     * <code>repeated uint32 data = 2;</code>
     * @return The count of data.
     */
    int getDataCount();
    /**
     * <code>repeated uint32 data = 2;</code>
     * @param index The index of the element to return.
     * @return The data at the given index.
     */
    int getData(int index);
  }
  /**
   * Protobuf type {@code gps_snr_massage}
   */
  public  static final class gps_snr_massage extends
      com.google.protobuf.GeneratedMessageLite<
          gps_snr_massage, gps_snr_massage.Builder> implements
      // @@protoc_insertion_point(message_implements:gps_snr_massage)
      gps_snr_massageOrBuilder {
    private gps_snr_massage() {
      data_ = emptyIntList();
    }
    private int bitField0_;
    public static final int GNSS_TYPE_FIELD_NUMBER = 1;
    private int gnssType_;
    /**
     * <code>optional .GNSS_TYPE gnss_type = 1;</code>
     * @return Whether the gnssType field is set.
     */
    @java.lang.Override
    public boolean hasGnssType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .GNSS_TYPE gnss_type = 1;</code>
     * @return The gnssType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE getGnssType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE.forNumber(gnssType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE.enum_GNSS_INVALID : result;
    }
    /**
     * <code>optional .GNSS_TYPE gnss_type = 1;</code>
     * @param value The gnssType to set.
     */
    private void setGnssType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE value) {
      gnssType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .GNSS_TYPE gnss_type = 1;</code>
     */
    private void clearGnssType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      gnssType_ = 0;
    }

    public static final int DATA_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.IntList data_;
    /**
     * <code>repeated uint32 data = 2;</code>
     * @return A list containing the data.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getDataList() {
      return data_;
    }
    /**
     * <code>repeated uint32 data = 2;</code>
     * @return The count of data.
     */
    @java.lang.Override
    public int getDataCount() {
      return data_.size();
    }
    /**
     * <code>repeated uint32 data = 2;</code>
     * @param index The index of the element to return.
     * @return The data at the given index.
     */
    @java.lang.Override
    public int getData(int index) {
      return data_.getInt(index);
    }
    private void ensureDataIsMutable() {
      com.google.protobuf.Internal.IntList tmp = data_;
      if (!tmp.isModifiable()) {
        data_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated uint32 data = 2;</code>
     * @param index The index to set the value at.
     * @param value The data to set.
     */
    private void setData(
        int index, int value) {
      ensureDataIsMutable();
      data_.setInt(index, value);
    }
    /**
     * <code>repeated uint32 data = 2;</code>
     * @param value The data to add.
     */
    private void addData(int value) {
      ensureDataIsMutable();
      data_.addInt(value);
    }
    /**
     * <code>repeated uint32 data = 2;</code>
     * @param values The data to add.
     */
    private void addAllData(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensureDataIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, data_);
    }
    /**
     * <code>repeated uint32 data = 2;</code>
     */
    private void clearData() {
      data_ = emptyIntList();
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code gps_snr_massage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage, Builder> implements
        // @@protoc_insertion_point(builder_implements:gps_snr_massage)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .GNSS_TYPE gnss_type = 1;</code>
       * @return Whether the gnssType field is set.
       */
      @java.lang.Override
      public boolean hasGnssType() {
        return instance.hasGnssType();
      }
      /**
       * <code>optional .GNSS_TYPE gnss_type = 1;</code>
       * @return The gnssType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE getGnssType() {
        return instance.getGnssType();
      }
      /**
       * <code>optional .GNSS_TYPE gnss_type = 1;</code>
       * @param value The enum numeric value on the wire for gnssType to set.
       * @return This builder for chaining.
       */
      public Builder setGnssType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE value) {
        copyOnWrite();
        instance.setGnssType(value);
        return this;
      }
      /**
       * <code>optional .GNSS_TYPE gnss_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGnssType() {
        copyOnWrite();
        instance.clearGnssType();
        return this;
      }

      /**
       * <code>repeated uint32 data = 2;</code>
       * @return A list containing the data.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getDataList() {
        return java.util.Collections.unmodifiableList(
            instance.getDataList());
      }
      /**
       * <code>repeated uint32 data = 2;</code>
       * @return The count of data.
       */
      @java.lang.Override
      public int getDataCount() {
        return instance.getDataCount();
      }
      /**
       * <code>repeated uint32 data = 2;</code>
       * @param index The index of the element to return.
       * @return The data at the given index.
       */
      @java.lang.Override
      public int getData(int index) {
        return instance.getData(index);
      }
      /**
       * <code>repeated uint32 data = 2;</code>
       * @param value The data to set.
       * @return This builder for chaining.
       */
      public Builder setData(
          int index, int value) {
        copyOnWrite();
        instance.setData(index, value);
        return this;
      }
      /**
       * <code>repeated uint32 data = 2;</code>
       * @param value The data to add.
       * @return This builder for chaining.
       */
      public Builder addData(int value) {
        copyOnWrite();
        instance.addData(value);
        return this;
      }
      /**
       * <code>repeated uint32 data = 2;</code>
       * @param values The data to add.
       * @return This builder for chaining.
       */
      public Builder addAllData(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllData(values);
        return this;
      }
      /**
       * <code>repeated uint32 data = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:gps_snr_massage)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "gnssType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.GNSS_TYPE.internalGetVerifier(),
              "data_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u100c\u0000\u0002" +
                "\u001d";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:gps_snr_massage)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage DEFAULT_INSTANCE;
    static {
      gps_snr_massage defaultInstance = new gps_snr_massage();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        gps_snr_massage.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<gps_snr_massage> PARSER;

    public static com.google.protobuf.Parser<gps_snr_massage> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ant_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ant_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
     * @return Whether the devType field is set.
     */
    boolean hasDevType();
    /**
     * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
     * @return The devType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE getDevType();

    /**
     * <code>optional uint32 dev_connect_status = 2;</code>
     * @return Whether the devConnectStatus field is set.
     */
    boolean hasDevConnectStatus();
    /**
     * <code>optional uint32 dev_connect_status = 2;</code>
     * @return The devConnectStatus.
     */
    int getDevConnectStatus();

    /**
     * <code>optional uint32 data = 3;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <code>optional uint32 data = 3;</code>
     * @return The data.
     */
    int getData();
  }
  /**
   * Protobuf type {@code ant_message}
   */
  public  static final class ant_message extends
      com.google.protobuf.GeneratedMessageLite<
          ant_message, ant_message.Builder> implements
      // @@protoc_insertion_point(message_implements:ant_message)
      ant_messageOrBuilder {
    private ant_message() {
    }
    private int bitField0_;
    public static final int DEV_TYPE_FIELD_NUMBER = 1;
    private int devType_;
    /**
     * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
     * @return Whether the devType field is set.
     */
    @java.lang.Override
    public boolean hasDevType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
     * @return The devType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE getDevType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE.forNumber(devType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE.enumInvalid_dev_type : result;
    }
    /**
     * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
     * @param value The devType to set.
     */
    private void setDevType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE value) {
      devType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
     */
    private void clearDevType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      devType_ = 0;
    }

    public static final int DEV_CONNECT_STATUS_FIELD_NUMBER = 2;
    private int devConnectStatus_;
    /**
     * <code>optional uint32 dev_connect_status = 2;</code>
     * @return Whether the devConnectStatus field is set.
     */
    @java.lang.Override
    public boolean hasDevConnectStatus() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 dev_connect_status = 2;</code>
     * @return The devConnectStatus.
     */
    @java.lang.Override
    public int getDevConnectStatus() {
      return devConnectStatus_;
    }
    /**
     * <code>optional uint32 dev_connect_status = 2;</code>
     * @param value The devConnectStatus to set.
     */
    private void setDevConnectStatus(int value) {
      bitField0_ |= 0x00000002;
      devConnectStatus_ = value;
    }
    /**
     * <code>optional uint32 dev_connect_status = 2;</code>
     */
    private void clearDevConnectStatus() {
      bitField0_ = (bitField0_ & ~0x00000002);
      devConnectStatus_ = 0;
    }

    public static final int DATA_FIELD_NUMBER = 3;
    private int data_;
    /**
     * <code>optional uint32 data = 3;</code>
     * @return Whether the data field is set.
     */
    @java.lang.Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 data = 3;</code>
     * @return The data.
     */
    @java.lang.Override
    public int getData() {
      return data_;
    }
    /**
     * <code>optional uint32 data = 3;</code>
     * @param value The data to set.
     */
    private void setData(int value) {
      bitField0_ |= 0x00000004;
      data_ = value;
    }
    /**
     * <code>optional uint32 data = 3;</code>
     */
    private void clearData() {
      bitField0_ = (bitField0_ & ~0x00000004);
      data_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code ant_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:ant_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
       * @return Whether the devType field is set.
       */
      @java.lang.Override
      public boolean hasDevType() {
        return instance.hasDevType();
      }
      /**
       * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
       * @return The devType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE getDevType() {
        return instance.getDevType();
      }
      /**
       * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
       * @param value The enum numeric value on the wire for devType to set.
       * @return This builder for chaining.
       */
      public Builder setDevType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE value) {
        copyOnWrite();
        instance.setDevType(value);
        return this;
      }
      /**
       * <code>optional .ANT_DEV_TYPE dev_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDevType() {
        copyOnWrite();
        instance.clearDevType();
        return this;
      }

      /**
       * <code>optional uint32 dev_connect_status = 2;</code>
       * @return Whether the devConnectStatus field is set.
       */
      @java.lang.Override
      public boolean hasDevConnectStatus() {
        return instance.hasDevConnectStatus();
      }
      /**
       * <code>optional uint32 dev_connect_status = 2;</code>
       * @return The devConnectStatus.
       */
      @java.lang.Override
      public int getDevConnectStatus() {
        return instance.getDevConnectStatus();
      }
      /**
       * <code>optional uint32 dev_connect_status = 2;</code>
       * @param value The devConnectStatus to set.
       * @return This builder for chaining.
       */
      public Builder setDevConnectStatus(int value) {
        copyOnWrite();
        instance.setDevConnectStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 dev_connect_status = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDevConnectStatus() {
        copyOnWrite();
        instance.clearDevConnectStatus();
        return this;
      }

      /**
       * <code>optional uint32 data = 3;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return instance.hasData();
      }
      /**
       * <code>optional uint32 data = 3;</code>
       * @return The data.
       */
      @java.lang.Override
      public int getData() {
        return instance.getData();
      }
      /**
       * <code>optional uint32 data = 3;</code>
       * @param value The data to set.
       * @return This builder for chaining.
       */
      public Builder setData(int value) {
        copyOnWrite();
        instance.setData(value);
        return this;
      }
      /**
       * <code>optional uint32 data = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ant_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "devType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ANT_DEV_TYPE.internalGetVerifier(),
              "devConnectStatus_",
              "data_",
            };
            java.lang.String info =
                "\u0001\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u100c\u0000\u0002" +
                "\u100b\u0001\u0003\u100b\u0002";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:ant_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message DEFAULT_INSTANCE;
    static {
      ant_message defaultInstance = new ant_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ant_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ant_message> PARSER;

    public static com.google.protobuf.Parser<ant_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface factory_msgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:factory_msg)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
     * @return Whether the serviceType field is set.
     */
    boolean hasServiceType();
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
     * @return The serviceType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType();

    /**
     * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
     * @return Whether the factoryOperateType field is set.
     */
    boolean hasFactoryOperateType();
    /**
     * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
     * @return The factoryOperateType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE getFactoryOperateType();

    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> 
        getFactorySnMsgList();
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message getFactorySnMsg(int index);
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    int getFactorySnMsgCount();

    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> 
        getFactorySensorMsgList();
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message getFactorySensorMsg(int index);
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    int getFactorySensorMsgCount();

    /**
     * <code>optional .memory_message memory_msg = 5;</code>
     * @return Whether the memoryMsg field is set.
     */
    boolean hasMemoryMsg();
    /**
     * <code>optional .memory_message memory_msg = 5;</code>
     * @return The memoryMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message getMemoryMsg();

    /**
     * <code>optional .battary_message battary_msg = 6;</code>
     * @return Whether the battaryMsg field is set.
     */
    boolean hasBattaryMsg();
    /**
     * <code>optional .battary_message battary_msg = 6;</code>
     * @return The battaryMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message getBattaryMsg();

    /**
     * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
     * @return Whether the simFitMsg field is set.
     */
    boolean hasSimFitMsg();
    /**
     * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
     * @return The simFitMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message getSimFitMsg();

    /**
     * <code>optional .control_message control_msg = 8;</code>
     * @return Whether the controlMsg field is set.
     */
    boolean hasControlMsg();
    /**
     * <code>optional .control_message control_msg = 8;</code>
     * @return The controlMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message getControlMsg();

    /**
     * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
     * @return Whether the gpsCoordinateMsg field is set.
     */
    boolean hasGpsCoordinateMsg();
    /**
     * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
     * @return The gpsCoordinateMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message getGpsCoordinateMsg();

    /**
     * <code>optional .sun_time_message sun_time_msg = 10;</code>
     * @return Whether the sunTimeMsg field is set.
     */
    boolean hasSunTimeMsg();
    /**
     * <code>optional .sun_time_message sun_time_msg = 10;</code>
     * @return The sunTimeMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message getSunTimeMsg();

    /**
     * <code>optional .power_save_message power_save_msg = 11;</code>
     * @return Whether the powerSaveMsg field is set.
     */
    boolean hasPowerSaveMsg();
    /**
     * <code>optional .power_save_message power_save_msg = 11;</code>
     * @return The powerSaveMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message getPowerSaveMsg();

    /**
     * <code>optional .rtc_message rtc_msg = 12;</code>
     * @return Whether the rtcMsg field is set.
     */
    boolean hasRtcMsg();
    /**
     * <code>optional .rtc_message rtc_msg = 12;</code>
     * @return The rtcMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message getRtcMsg();

    /**
     * <code>optional .filter_message filter_msg = 13;</code>
     * @return Whether the filterMsg field is set.
     */
    boolean hasFilterMsg();
    /**
     * <code>optional .filter_message filter_msg = 13;</code>
     * @return The filterMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message getFilterMsg();

    /**
     * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
     * @return Whether the gpsControlCmdMsg field is set.
     */
    boolean hasGpsControlCmdMsg();
    /**
     * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
     * @return The gpsControlCmdMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message getGpsControlCmdMsg();

    /**
     * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
     * @return Whether the gpsGnssMsg field is set.
     */
    boolean hasGpsGnssMsg();
    /**
     * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
     * @return The gpsGnssMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message getGpsGnssMsg();

    /**
     * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
     * @return Whether the gpsDynamicMsg field is set.
     */
    boolean hasGpsDynamicMsg();
    /**
     * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
     * @return The gpsDynamicMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message getGpsDynamicMsg();

    /**
     * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
     * @return Whether the gpsCmdMsg field is set.
     */
    boolean hasGpsCmdMsg();
    /**
     * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
     * @return The gpsCmdMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message getGpsCmdMsg();

    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> 
        getDataSetMsgList();
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message getDataSetMsg(int index);
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    int getDataSetMsgCount();

    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> 
        getGpsSnrMsgList();
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage getGpsSnrMsg(int index);
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    int getGpsSnrMsgCount();

    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> 
        getAntMsgList();
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message getAntMsg(int index);
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    int getAntMsgCount();
  }
  /**
   * Protobuf type {@code factory_msg}
   */
  public  static final class factory_msg extends
      com.google.protobuf.GeneratedMessageLite<
          factory_msg, factory_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:factory_msg)
      factory_msgOrBuilder {
    private factory_msg() {
      serviceType_ = 11;
      factorySnMsg_ = emptyProtobufList();
      factorySensorMsg_ = emptyProtobufList();
      dataSetMsg_ = emptyProtobufList();
      gpsSnrMsg_ = emptyProtobufList();
      antMsg_ = emptyProtobufList();
    }
    private int bitField0_;
    public static final int SERVICE_TYPE_FIELD_NUMBER = 1;
    private int serviceType_;
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
     * @return Whether the serviceType field is set.
     */
    @java.lang.Override
    public boolean hasServiceType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
     * @return The serviceType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.forNumber(serviceType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.enum_SERVICE_TYPE_INDEX_FACTORY : result;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
     * @param value The serviceType to set.
     */
    private void setServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index value) {
      serviceType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
     */
    private void clearServiceType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      serviceType_ = 11;
    }

    public static final int FACTORY_OPERATE_TYPE_FIELD_NUMBER = 2;
    private int factoryOperateType_;
    /**
     * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
     * @return Whether the factoryOperateType field is set.
     */
    @java.lang.Override
    public boolean hasFactoryOperateType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
     * @return The factoryOperateType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE getFactoryOperateType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE.forNumber(factoryOperateType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE.enum_FACTORY_OPERATE_TYPE_NONE : result;
    }
    /**
     * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
     * @param value The factoryOperateType to set.
     */
    private void setFactoryOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE value) {
      factoryOperateType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
     */
    private void clearFactoryOperateType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      factoryOperateType_ = 0;
    }

    public static final int FACTORY_SN_MSG_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> factorySnMsg_;
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> getFactorySnMsgList() {
      return factorySnMsg_;
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_messageOrBuilder> 
        getFactorySnMsgOrBuilderList() {
      return factorySnMsg_;
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    @java.lang.Override
    public int getFactorySnMsgCount() {
      return factorySnMsg_.size();
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message getFactorySnMsg(int index) {
      return factorySnMsg_.get(index);
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_messageOrBuilder getFactorySnMsgOrBuilder(
        int index) {
      return factorySnMsg_.get(index);
    }
    private void ensureFactorySnMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> tmp = factorySnMsg_;
      if (!tmp.isModifiable()) {
        factorySnMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    private void setFactorySnMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message value) {
      value.getClass();
  ensureFactorySnMsgIsMutable();
      factorySnMsg_.set(index, value);
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    private void addFactorySnMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message value) {
      value.getClass();
  ensureFactorySnMsgIsMutable();
      factorySnMsg_.add(value);
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    private void addFactorySnMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message value) {
      value.getClass();
  ensureFactorySnMsgIsMutable();
      factorySnMsg_.add(index, value);
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    private void addAllFactorySnMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> values) {
      ensureFactorySnMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, factorySnMsg_);
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    private void clearFactorySnMsg() {
      factorySnMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
     */
    private void removeFactorySnMsg(int index) {
      ensureFactorySnMsgIsMutable();
      factorySnMsg_.remove(index);
    }

    public static final int FACTORY_SENSOR_MSG_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> factorySensorMsg_;
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> getFactorySensorMsgList() {
      return factorySensorMsg_;
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_messageOrBuilder> 
        getFactorySensorMsgOrBuilderList() {
      return factorySensorMsg_;
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    @java.lang.Override
    public int getFactorySensorMsgCount() {
      return factorySensorMsg_.size();
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message getFactorySensorMsg(int index) {
      return factorySensorMsg_.get(index);
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_messageOrBuilder getFactorySensorMsgOrBuilder(
        int index) {
      return factorySensorMsg_.get(index);
    }
    private void ensureFactorySensorMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> tmp = factorySensorMsg_;
      if (!tmp.isModifiable()) {
        factorySensorMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    private void setFactorySensorMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message value) {
      value.getClass();
  ensureFactorySensorMsgIsMutable();
      factorySensorMsg_.set(index, value);
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    private void addFactorySensorMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message value) {
      value.getClass();
  ensureFactorySensorMsgIsMutable();
      factorySensorMsg_.add(value);
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    private void addFactorySensorMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message value) {
      value.getClass();
  ensureFactorySensorMsgIsMutable();
      factorySensorMsg_.add(index, value);
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    private void addAllFactorySensorMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> values) {
      ensureFactorySensorMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, factorySensorMsg_);
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    private void clearFactorySensorMsg() {
      factorySensorMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
     */
    private void removeFactorySensorMsg(int index) {
      ensureFactorySensorMsgIsMutable();
      factorySensorMsg_.remove(index);
    }

    public static final int MEMORY_MSG_FIELD_NUMBER = 5;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message memoryMsg_;
    /**
     * <code>optional .memory_message memory_msg = 5;</code>
     */
    @java.lang.Override
    public boolean hasMemoryMsg() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .memory_message memory_msg = 5;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message getMemoryMsg() {
      return memoryMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message.getDefaultInstance() : memoryMsg_;
    }
    /**
     * <code>optional .memory_message memory_msg = 5;</code>
     */
    private void setMemoryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message value) {
      value.getClass();
  memoryMsg_ = value;
      bitField0_ |= 0x00000004;
      }
    /**
     * <code>optional .memory_message memory_msg = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMemoryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message value) {
      value.getClass();
  if (memoryMsg_ != null &&
          memoryMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message.getDefaultInstance()) {
        memoryMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message.newBuilder(memoryMsg_).mergeFrom(value).buildPartial();
      } else {
        memoryMsg_ = value;
      }
      bitField0_ |= 0x00000004;
    }
    /**
     * <code>optional .memory_message memory_msg = 5;</code>
     */
    private void clearMemoryMsg() {  memoryMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000004);
    }

    public static final int BATTARY_MSG_FIELD_NUMBER = 6;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message battaryMsg_;
    /**
     * <code>optional .battary_message battary_msg = 6;</code>
     */
    @java.lang.Override
    public boolean hasBattaryMsg() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .battary_message battary_msg = 6;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message getBattaryMsg() {
      return battaryMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message.getDefaultInstance() : battaryMsg_;
    }
    /**
     * <code>optional .battary_message battary_msg = 6;</code>
     */
    private void setBattaryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message value) {
      value.getClass();
  battaryMsg_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * <code>optional .battary_message battary_msg = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBattaryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message value) {
      value.getClass();
  if (battaryMsg_ != null &&
          battaryMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message.getDefaultInstance()) {
        battaryMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message.newBuilder(battaryMsg_).mergeFrom(value).buildPartial();
      } else {
        battaryMsg_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .battary_message battary_msg = 6;</code>
     */
    private void clearBattaryMsg() {  battaryMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }

    public static final int SIM_FIT_MSG_FIELD_NUMBER = 7;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message simFitMsg_;
    /**
     * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
     */
    @java.lang.Override
    public boolean hasSimFitMsg() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message getSimFitMsg() {
      return simFitMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message.getDefaultInstance() : simFitMsg_;
    }
    /**
     * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
     */
    private void setSimFitMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message value) {
      value.getClass();
  simFitMsg_ = value;
      bitField0_ |= 0x00000010;
      }
    /**
     * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSimFitMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message value) {
      value.getClass();
  if (simFitMsg_ != null &&
          simFitMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message.getDefaultInstance()) {
        simFitMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message.newBuilder(simFitMsg_).mergeFrom(value).buildPartial();
      } else {
        simFitMsg_ = value;
      }
      bitField0_ |= 0x00000010;
    }
    /**
     * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
     */
    private void clearSimFitMsg() {  simFitMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000010);
    }

    public static final int CONTROL_MSG_FIELD_NUMBER = 8;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message controlMsg_;
    /**
     * <code>optional .control_message control_msg = 8;</code>
     */
    @java.lang.Override
    public boolean hasControlMsg() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .control_message control_msg = 8;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message getControlMsg() {
      return controlMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message.getDefaultInstance() : controlMsg_;
    }
    /**
     * <code>optional .control_message control_msg = 8;</code>
     */
    private void setControlMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message value) {
      value.getClass();
  controlMsg_ = value;
      bitField0_ |= 0x00000020;
      }
    /**
     * <code>optional .control_message control_msg = 8;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeControlMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message value) {
      value.getClass();
  if (controlMsg_ != null &&
          controlMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message.getDefaultInstance()) {
        controlMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message.newBuilder(controlMsg_).mergeFrom(value).buildPartial();
      } else {
        controlMsg_ = value;
      }
      bitField0_ |= 0x00000020;
    }
    /**
     * <code>optional .control_message control_msg = 8;</code>
     */
    private void clearControlMsg() {  controlMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000020);
    }

    public static final int GPS_COORDINATE_MSG_FIELD_NUMBER = 9;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message gpsCoordinateMsg_;
    /**
     * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
     */
    @java.lang.Override
    public boolean hasGpsCoordinateMsg() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message getGpsCoordinateMsg() {
      return gpsCoordinateMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message.getDefaultInstance() : gpsCoordinateMsg_;
    }
    /**
     * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
     */
    private void setGpsCoordinateMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message value) {
      value.getClass();
  gpsCoordinateMsg_ = value;
      bitField0_ |= 0x00000040;
      }
    /**
     * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeGpsCoordinateMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message value) {
      value.getClass();
  if (gpsCoordinateMsg_ != null &&
          gpsCoordinateMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message.getDefaultInstance()) {
        gpsCoordinateMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message.newBuilder(gpsCoordinateMsg_).mergeFrom(value).buildPartial();
      } else {
        gpsCoordinateMsg_ = value;
      }
      bitField0_ |= 0x00000040;
    }
    /**
     * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
     */
    private void clearGpsCoordinateMsg() {  gpsCoordinateMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000040);
    }

    public static final int SUN_TIME_MSG_FIELD_NUMBER = 10;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message sunTimeMsg_;
    /**
     * <code>optional .sun_time_message sun_time_msg = 10;</code>
     */
    @java.lang.Override
    public boolean hasSunTimeMsg() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .sun_time_message sun_time_msg = 10;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message getSunTimeMsg() {
      return sunTimeMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message.getDefaultInstance() : sunTimeMsg_;
    }
    /**
     * <code>optional .sun_time_message sun_time_msg = 10;</code>
     */
    private void setSunTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message value) {
      value.getClass();
  sunTimeMsg_ = value;
      bitField0_ |= 0x00000080;
      }
    /**
     * <code>optional .sun_time_message sun_time_msg = 10;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSunTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message value) {
      value.getClass();
  if (sunTimeMsg_ != null &&
          sunTimeMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message.getDefaultInstance()) {
        sunTimeMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message.newBuilder(sunTimeMsg_).mergeFrom(value).buildPartial();
      } else {
        sunTimeMsg_ = value;
      }
      bitField0_ |= 0x00000080;
    }
    /**
     * <code>optional .sun_time_message sun_time_msg = 10;</code>
     */
    private void clearSunTimeMsg() {  sunTimeMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000080);
    }

    public static final int POWER_SAVE_MSG_FIELD_NUMBER = 11;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message powerSaveMsg_;
    /**
     * <code>optional .power_save_message power_save_msg = 11;</code>
     */
    @java.lang.Override
    public boolean hasPowerSaveMsg() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .power_save_message power_save_msg = 11;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message getPowerSaveMsg() {
      return powerSaveMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message.getDefaultInstance() : powerSaveMsg_;
    }
    /**
     * <code>optional .power_save_message power_save_msg = 11;</code>
     */
    private void setPowerSaveMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message value) {
      value.getClass();
  powerSaveMsg_ = value;
      bitField0_ |= 0x00000100;
      }
    /**
     * <code>optional .power_save_message power_save_msg = 11;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePowerSaveMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message value) {
      value.getClass();
  if (powerSaveMsg_ != null &&
          powerSaveMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message.getDefaultInstance()) {
        powerSaveMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message.newBuilder(powerSaveMsg_).mergeFrom(value).buildPartial();
      } else {
        powerSaveMsg_ = value;
      }
      bitField0_ |= 0x00000100;
    }
    /**
     * <code>optional .power_save_message power_save_msg = 11;</code>
     */
    private void clearPowerSaveMsg() {  powerSaveMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000100);
    }

    public static final int RTC_MSG_FIELD_NUMBER = 12;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message rtcMsg_;
    /**
     * <code>optional .rtc_message rtc_msg = 12;</code>
     */
    @java.lang.Override
    public boolean hasRtcMsg() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .rtc_message rtc_msg = 12;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message getRtcMsg() {
      return rtcMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message.getDefaultInstance() : rtcMsg_;
    }
    /**
     * <code>optional .rtc_message rtc_msg = 12;</code>
     */
    private void setRtcMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message value) {
      value.getClass();
  rtcMsg_ = value;
      bitField0_ |= 0x00000200;
      }
    /**
     * <code>optional .rtc_message rtc_msg = 12;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRtcMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message value) {
      value.getClass();
  if (rtcMsg_ != null &&
          rtcMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message.getDefaultInstance()) {
        rtcMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message.newBuilder(rtcMsg_).mergeFrom(value).buildPartial();
      } else {
        rtcMsg_ = value;
      }
      bitField0_ |= 0x00000200;
    }
    /**
     * <code>optional .rtc_message rtc_msg = 12;</code>
     */
    private void clearRtcMsg() {  rtcMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000200);
    }

    public static final int FILTER_MSG_FIELD_NUMBER = 13;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message filterMsg_;
    /**
     * <code>optional .filter_message filter_msg = 13;</code>
     */
    @java.lang.Override
    public boolean hasFilterMsg() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .filter_message filter_msg = 13;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message getFilterMsg() {
      return filterMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message.getDefaultInstance() : filterMsg_;
    }
    /**
     * <code>optional .filter_message filter_msg = 13;</code>
     */
    private void setFilterMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message value) {
      value.getClass();
  filterMsg_ = value;
      bitField0_ |= 0x00000400;
      }
    /**
     * <code>optional .filter_message filter_msg = 13;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFilterMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message value) {
      value.getClass();
  if (filterMsg_ != null &&
          filterMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message.getDefaultInstance()) {
        filterMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message.newBuilder(filterMsg_).mergeFrom(value).buildPartial();
      } else {
        filterMsg_ = value;
      }
      bitField0_ |= 0x00000400;
    }
    /**
     * <code>optional .filter_message filter_msg = 13;</code>
     */
    private void clearFilterMsg() {  filterMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000400);
    }

    public static final int GPS_CONTROL_CMD_MSG_FIELD_NUMBER = 14;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message gpsControlCmdMsg_;
    /**
     * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
     */
    @java.lang.Override
    public boolean hasGpsControlCmdMsg() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message getGpsControlCmdMsg() {
      return gpsControlCmdMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message.getDefaultInstance() : gpsControlCmdMsg_;
    }
    /**
     * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
     */
    private void setGpsControlCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message value) {
      value.getClass();
  gpsControlCmdMsg_ = value;
      bitField0_ |= 0x00000800;
      }
    /**
     * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeGpsControlCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message value) {
      value.getClass();
  if (gpsControlCmdMsg_ != null &&
          gpsControlCmdMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message.getDefaultInstance()) {
        gpsControlCmdMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message.newBuilder(gpsControlCmdMsg_).mergeFrom(value).buildPartial();
      } else {
        gpsControlCmdMsg_ = value;
      }
      bitField0_ |= 0x00000800;
    }
    /**
     * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
     */
    private void clearGpsControlCmdMsg() {  gpsControlCmdMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000800);
    }

    public static final int GPS_GNSS_MSG_FIELD_NUMBER = 15;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message gpsGnssMsg_;
    /**
     * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
     */
    @java.lang.Override
    public boolean hasGpsGnssMsg() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message getGpsGnssMsg() {
      return gpsGnssMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message.getDefaultInstance() : gpsGnssMsg_;
    }
    /**
     * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
     */
    private void setGpsGnssMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message value) {
      value.getClass();
  gpsGnssMsg_ = value;
      bitField0_ |= 0x00001000;
      }
    /**
     * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeGpsGnssMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message value) {
      value.getClass();
  if (gpsGnssMsg_ != null &&
          gpsGnssMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message.getDefaultInstance()) {
        gpsGnssMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message.newBuilder(gpsGnssMsg_).mergeFrom(value).buildPartial();
      } else {
        gpsGnssMsg_ = value;
      }
      bitField0_ |= 0x00001000;
    }
    /**
     * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
     */
    private void clearGpsGnssMsg() {  gpsGnssMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00001000);
    }

    public static final int GPS_DYNAMIC_MSG_FIELD_NUMBER = 16;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message gpsDynamicMsg_;
    /**
     * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
     */
    @java.lang.Override
    public boolean hasGpsDynamicMsg() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message getGpsDynamicMsg() {
      return gpsDynamicMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message.getDefaultInstance() : gpsDynamicMsg_;
    }
    /**
     * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
     */
    private void setGpsDynamicMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message value) {
      value.getClass();
  gpsDynamicMsg_ = value;
      bitField0_ |= 0x00002000;
      }
    /**
     * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeGpsDynamicMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message value) {
      value.getClass();
  if (gpsDynamicMsg_ != null &&
          gpsDynamicMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message.getDefaultInstance()) {
        gpsDynamicMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message.newBuilder(gpsDynamicMsg_).mergeFrom(value).buildPartial();
      } else {
        gpsDynamicMsg_ = value;
      }
      bitField0_ |= 0x00002000;
    }
    /**
     * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
     */
    private void clearGpsDynamicMsg() {  gpsDynamicMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00002000);
    }

    public static final int GPS_CMD_MSG_FIELD_NUMBER = 17;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message gpsCmdMsg_;
    /**
     * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
     */
    @java.lang.Override
    public boolean hasGpsCmdMsg() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message getGpsCmdMsg() {
      return gpsCmdMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message.getDefaultInstance() : gpsCmdMsg_;
    }
    /**
     * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
     */
    private void setGpsCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message value) {
      value.getClass();
  gpsCmdMsg_ = value;
      bitField0_ |= 0x00004000;
      }
    /**
     * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeGpsCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message value) {
      value.getClass();
  if (gpsCmdMsg_ != null &&
          gpsCmdMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message.getDefaultInstance()) {
        gpsCmdMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message.newBuilder(gpsCmdMsg_).mergeFrom(value).buildPartial();
      } else {
        gpsCmdMsg_ = value;
      }
      bitField0_ |= 0x00004000;
    }
    /**
     * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
     */
    private void clearGpsCmdMsg() {  gpsCmdMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00004000);
    }

    public static final int DATA_SET_MSG_FIELD_NUMBER = 18;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> dataSetMsg_;
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> getDataSetMsgList() {
      return dataSetMsg_;
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_messageOrBuilder> 
        getDataSetMsgOrBuilderList() {
      return dataSetMsg_;
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    @java.lang.Override
    public int getDataSetMsgCount() {
      return dataSetMsg_.size();
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message getDataSetMsg(int index) {
      return dataSetMsg_.get(index);
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_messageOrBuilder getDataSetMsgOrBuilder(
        int index) {
      return dataSetMsg_.get(index);
    }
    private void ensureDataSetMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> tmp = dataSetMsg_;
      if (!tmp.isModifiable()) {
        dataSetMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    private void setDataSetMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message value) {
      value.getClass();
  ensureDataSetMsgIsMutable();
      dataSetMsg_.set(index, value);
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    private void addDataSetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message value) {
      value.getClass();
  ensureDataSetMsgIsMutable();
      dataSetMsg_.add(value);
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    private void addDataSetMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message value) {
      value.getClass();
  ensureDataSetMsgIsMutable();
      dataSetMsg_.add(index, value);
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    private void addAllDataSetMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> values) {
      ensureDataSetMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, dataSetMsg_);
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    private void clearDataSetMsg() {
      dataSetMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .data_set_message data_set_msg = 18;</code>
     */
    private void removeDataSetMsg(int index) {
      ensureDataSetMsgIsMutable();
      dataSetMsg_.remove(index);
    }

    public static final int GPS_SNR_MSG_FIELD_NUMBER = 19;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> gpsSnrMsg_;
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> getGpsSnrMsgList() {
      return gpsSnrMsg_;
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massageOrBuilder> 
        getGpsSnrMsgOrBuilderList() {
      return gpsSnrMsg_;
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    @java.lang.Override
    public int getGpsSnrMsgCount() {
      return gpsSnrMsg_.size();
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage getGpsSnrMsg(int index) {
      return gpsSnrMsg_.get(index);
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massageOrBuilder getGpsSnrMsgOrBuilder(
        int index) {
      return gpsSnrMsg_.get(index);
    }
    private void ensureGpsSnrMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> tmp = gpsSnrMsg_;
      if (!tmp.isModifiable()) {
        gpsSnrMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    private void setGpsSnrMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage value) {
      value.getClass();
  ensureGpsSnrMsgIsMutable();
      gpsSnrMsg_.set(index, value);
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    private void addGpsSnrMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage value) {
      value.getClass();
  ensureGpsSnrMsgIsMutable();
      gpsSnrMsg_.add(value);
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    private void addGpsSnrMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage value) {
      value.getClass();
  ensureGpsSnrMsgIsMutable();
      gpsSnrMsg_.add(index, value);
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    private void addAllGpsSnrMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> values) {
      ensureGpsSnrMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, gpsSnrMsg_);
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    private void clearGpsSnrMsg() {
      gpsSnrMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
     */
    private void removeGpsSnrMsg(int index) {
      ensureGpsSnrMsgIsMutable();
      gpsSnrMsg_.remove(index);
    }

    public static final int ANT_MSG_FIELD_NUMBER = 20;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> antMsg_;
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> getAntMsgList() {
      return antMsg_;
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_messageOrBuilder> 
        getAntMsgOrBuilderList() {
      return antMsg_;
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    @java.lang.Override
    public int getAntMsgCount() {
      return antMsg_.size();
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message getAntMsg(int index) {
      return antMsg_.get(index);
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_messageOrBuilder getAntMsgOrBuilder(
        int index) {
      return antMsg_.get(index);
    }
    private void ensureAntMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> tmp = antMsg_;
      if (!tmp.isModifiable()) {
        antMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    private void setAntMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message value) {
      value.getClass();
  ensureAntMsgIsMutable();
      antMsg_.set(index, value);
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    private void addAntMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message value) {
      value.getClass();
  ensureAntMsgIsMutable();
      antMsg_.add(value);
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    private void addAntMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message value) {
      value.getClass();
  ensureAntMsgIsMutable();
      antMsg_.add(index, value);
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    private void addAllAntMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> values) {
      ensureAntMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, antMsg_);
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    private void clearAntMsg() {
      antMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .ant_message ant_msg = 20;</code>
     */
    private void removeAntMsg(int index) {
      ensureAntMsgIsMutable();
      antMsg_.remove(index);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code factory_msg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg, Builder> implements
        // @@protoc_insertion_point(builder_implements:factory_msg)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msgOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
       * @return Whether the serviceType field is set.
       */
      @java.lang.Override
      public boolean hasServiceType() {
        return instance.hasServiceType();
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
       * @return The serviceType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType() {
        return instance.getServiceType();
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
       * @param value The enum numeric value on the wire for serviceType to set.
       * @return This builder for chaining.
       */
      public Builder setServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index value) {
        copyOnWrite();
        instance.setServiceType(value);
        return this;
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_FACTORY];</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceType() {
        copyOnWrite();
        instance.clearServiceType();
        return this;
      }

      /**
       * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
       * @return Whether the factoryOperateType field is set.
       */
      @java.lang.Override
      public boolean hasFactoryOperateType() {
        return instance.hasFactoryOperateType();
      }
      /**
       * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
       * @return The factoryOperateType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE getFactoryOperateType() {
        return instance.getFactoryOperateType();
      }
      /**
       * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
       * @param value The enum numeric value on the wire for factoryOperateType to set.
       * @return This builder for chaining.
       */
      public Builder setFactoryOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE value) {
        copyOnWrite();
        instance.setFactoryOperateType(value);
        return this;
      }
      /**
       * <code>required .FACTORY_OPERATE_TYPE factory_operate_type = 2 [default = enum_FACTORY_OPERATE_TYPE_NONE];</code>
       * @return This builder for chaining.
       */
      public Builder clearFactoryOperateType() {
        copyOnWrite();
        instance.clearFactoryOperateType();
        return this;
      }

      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> getFactorySnMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getFactorySnMsgList());
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      @java.lang.Override
      public int getFactorySnMsgCount() {
        return instance.getFactorySnMsgCount();
      }/**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message getFactorySnMsg(int index) {
        return instance.getFactorySnMsg(index);
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder setFactorySnMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message value) {
        copyOnWrite();
        instance.setFactorySnMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder setFactorySnMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message.Builder builderForValue) {
        copyOnWrite();
        instance.setFactorySnMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder addFactorySnMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message value) {
        copyOnWrite();
        instance.addFactorySnMsg(value);
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder addFactorySnMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message value) {
        copyOnWrite();
        instance.addFactorySnMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder addFactorySnMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message.Builder builderForValue) {
        copyOnWrite();
        instance.addFactorySnMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder addFactorySnMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message.Builder builderForValue) {
        copyOnWrite();
        instance.addFactorySnMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder addAllFactorySnMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message> values) {
        copyOnWrite();
        instance.addAllFactorySnMsg(values);
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder clearFactorySnMsg() {
        copyOnWrite();
        instance.clearFactorySnMsg();
        return this;
      }
      /**
       * <code>repeated .factory_sn_message factory_sn_msg = 3;</code>
       */
      public Builder removeFactorySnMsg(int index) {
        copyOnWrite();
        instance.removeFactorySnMsg(index);
        return this;
      }

      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> getFactorySensorMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getFactorySensorMsgList());
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      @java.lang.Override
      public int getFactorySensorMsgCount() {
        return instance.getFactorySensorMsgCount();
      }/**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message getFactorySensorMsg(int index) {
        return instance.getFactorySensorMsg(index);
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder setFactorySensorMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message value) {
        copyOnWrite();
        instance.setFactorySensorMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder setFactorySensorMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message.Builder builderForValue) {
        copyOnWrite();
        instance.setFactorySensorMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder addFactorySensorMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message value) {
        copyOnWrite();
        instance.addFactorySensorMsg(value);
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder addFactorySensorMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message value) {
        copyOnWrite();
        instance.addFactorySensorMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder addFactorySensorMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message.Builder builderForValue) {
        copyOnWrite();
        instance.addFactorySensorMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder addFactorySensorMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message.Builder builderForValue) {
        copyOnWrite();
        instance.addFactorySensorMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder addAllFactorySensorMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message> values) {
        copyOnWrite();
        instance.addAllFactorySensorMsg(values);
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder clearFactorySensorMsg() {
        copyOnWrite();
        instance.clearFactorySensorMsg();
        return this;
      }
      /**
       * <code>repeated .factory_sensor_message factory_sensor_msg = 4;</code>
       */
      public Builder removeFactorySensorMsg(int index) {
        copyOnWrite();
        instance.removeFactorySensorMsg(index);
        return this;
      }

      /**
       * <code>optional .memory_message memory_msg = 5;</code>
       */
      @java.lang.Override
      public boolean hasMemoryMsg() {
        return instance.hasMemoryMsg();
      }
      /**
       * <code>optional .memory_message memory_msg = 5;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message getMemoryMsg() {
        return instance.getMemoryMsg();
      }
      /**
       * <code>optional .memory_message memory_msg = 5;</code>
       */
      public Builder setMemoryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message value) {
        copyOnWrite();
        instance.setMemoryMsg(value);
        return this;
        }
      /**
       * <code>optional .memory_message memory_msg = 5;</code>
       */
      public Builder setMemoryMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message.Builder builderForValue) {
        copyOnWrite();
        instance.setMemoryMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .memory_message memory_msg = 5;</code>
       */
      public Builder mergeMemoryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.memory_message value) {
        copyOnWrite();
        instance.mergeMemoryMsg(value);
        return this;
      }
      /**
       * <code>optional .memory_message memory_msg = 5;</code>
       */
      public Builder clearMemoryMsg() {  copyOnWrite();
        instance.clearMemoryMsg();
        return this;
      }

      /**
       * <code>optional .battary_message battary_msg = 6;</code>
       */
      @java.lang.Override
      public boolean hasBattaryMsg() {
        return instance.hasBattaryMsg();
      }
      /**
       * <code>optional .battary_message battary_msg = 6;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message getBattaryMsg() {
        return instance.getBattaryMsg();
      }
      /**
       * <code>optional .battary_message battary_msg = 6;</code>
       */
      public Builder setBattaryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message value) {
        copyOnWrite();
        instance.setBattaryMsg(value);
        return this;
        }
      /**
       * <code>optional .battary_message battary_msg = 6;</code>
       */
      public Builder setBattaryMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message.Builder builderForValue) {
        copyOnWrite();
        instance.setBattaryMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .battary_message battary_msg = 6;</code>
       */
      public Builder mergeBattaryMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.battary_message value) {
        copyOnWrite();
        instance.mergeBattaryMsg(value);
        return this;
      }
      /**
       * <code>optional .battary_message battary_msg = 6;</code>
       */
      public Builder clearBattaryMsg() {  copyOnWrite();
        instance.clearBattaryMsg();
        return this;
      }

      /**
       * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
       */
      @java.lang.Override
      public boolean hasSimFitMsg() {
        return instance.hasSimFitMsg();
      }
      /**
       * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message getSimFitMsg() {
        return instance.getSimFitMsg();
      }
      /**
       * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
       */
      public Builder setSimFitMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message value) {
        copyOnWrite();
        instance.setSimFitMsg(value);
        return this;
        }
      /**
       * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
       */
      public Builder setSimFitMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message.Builder builderForValue) {
        copyOnWrite();
        instance.setSimFitMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
       */
      public Builder mergeSimFitMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sim_fit_message value) {
        copyOnWrite();
        instance.mergeSimFitMsg(value);
        return this;
      }
      /**
       * <code>optional .sim_fit_message sim_fit_msg = 7;</code>
       */
      public Builder clearSimFitMsg() {  copyOnWrite();
        instance.clearSimFitMsg();
        return this;
      }

      /**
       * <code>optional .control_message control_msg = 8;</code>
       */
      @java.lang.Override
      public boolean hasControlMsg() {
        return instance.hasControlMsg();
      }
      /**
       * <code>optional .control_message control_msg = 8;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message getControlMsg() {
        return instance.getControlMsg();
      }
      /**
       * <code>optional .control_message control_msg = 8;</code>
       */
      public Builder setControlMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message value) {
        copyOnWrite();
        instance.setControlMsg(value);
        return this;
        }
      /**
       * <code>optional .control_message control_msg = 8;</code>
       */
      public Builder setControlMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message.Builder builderForValue) {
        copyOnWrite();
        instance.setControlMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .control_message control_msg = 8;</code>
       */
      public Builder mergeControlMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.control_message value) {
        copyOnWrite();
        instance.mergeControlMsg(value);
        return this;
      }
      /**
       * <code>optional .control_message control_msg = 8;</code>
       */
      public Builder clearControlMsg() {  copyOnWrite();
        instance.clearControlMsg();
        return this;
      }

      /**
       * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
       */
      @java.lang.Override
      public boolean hasGpsCoordinateMsg() {
        return instance.hasGpsCoordinateMsg();
      }
      /**
       * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message getGpsCoordinateMsg() {
        return instance.getGpsCoordinateMsg();
      }
      /**
       * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
       */
      public Builder setGpsCoordinateMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message value) {
        copyOnWrite();
        instance.setGpsCoordinateMsg(value);
        return this;
        }
      /**
       * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
       */
      public Builder setGpsCoordinateMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message.Builder builderForValue) {
        copyOnWrite();
        instance.setGpsCoordinateMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
       */
      public Builder mergeGpsCoordinateMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_coordinate_message value) {
        copyOnWrite();
        instance.mergeGpsCoordinateMsg(value);
        return this;
      }
      /**
       * <code>optional .gps_coordinate_message gps_coordinate_msg = 9;</code>
       */
      public Builder clearGpsCoordinateMsg() {  copyOnWrite();
        instance.clearGpsCoordinateMsg();
        return this;
      }

      /**
       * <code>optional .sun_time_message sun_time_msg = 10;</code>
       */
      @java.lang.Override
      public boolean hasSunTimeMsg() {
        return instance.hasSunTimeMsg();
      }
      /**
       * <code>optional .sun_time_message sun_time_msg = 10;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message getSunTimeMsg() {
        return instance.getSunTimeMsg();
      }
      /**
       * <code>optional .sun_time_message sun_time_msg = 10;</code>
       */
      public Builder setSunTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message value) {
        copyOnWrite();
        instance.setSunTimeMsg(value);
        return this;
        }
      /**
       * <code>optional .sun_time_message sun_time_msg = 10;</code>
       */
      public Builder setSunTimeMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message.Builder builderForValue) {
        copyOnWrite();
        instance.setSunTimeMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .sun_time_message sun_time_msg = 10;</code>
       */
      public Builder mergeSunTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.sun_time_message value) {
        copyOnWrite();
        instance.mergeSunTimeMsg(value);
        return this;
      }
      /**
       * <code>optional .sun_time_message sun_time_msg = 10;</code>
       */
      public Builder clearSunTimeMsg() {  copyOnWrite();
        instance.clearSunTimeMsg();
        return this;
      }

      /**
       * <code>optional .power_save_message power_save_msg = 11;</code>
       */
      @java.lang.Override
      public boolean hasPowerSaveMsg() {
        return instance.hasPowerSaveMsg();
      }
      /**
       * <code>optional .power_save_message power_save_msg = 11;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message getPowerSaveMsg() {
        return instance.getPowerSaveMsg();
      }
      /**
       * <code>optional .power_save_message power_save_msg = 11;</code>
       */
      public Builder setPowerSaveMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message value) {
        copyOnWrite();
        instance.setPowerSaveMsg(value);
        return this;
        }
      /**
       * <code>optional .power_save_message power_save_msg = 11;</code>
       */
      public Builder setPowerSaveMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message.Builder builderForValue) {
        copyOnWrite();
        instance.setPowerSaveMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .power_save_message power_save_msg = 11;</code>
       */
      public Builder mergePowerSaveMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.power_save_message value) {
        copyOnWrite();
        instance.mergePowerSaveMsg(value);
        return this;
      }
      /**
       * <code>optional .power_save_message power_save_msg = 11;</code>
       */
      public Builder clearPowerSaveMsg() {  copyOnWrite();
        instance.clearPowerSaveMsg();
        return this;
      }

      /**
       * <code>optional .rtc_message rtc_msg = 12;</code>
       */
      @java.lang.Override
      public boolean hasRtcMsg() {
        return instance.hasRtcMsg();
      }
      /**
       * <code>optional .rtc_message rtc_msg = 12;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message getRtcMsg() {
        return instance.getRtcMsg();
      }
      /**
       * <code>optional .rtc_message rtc_msg = 12;</code>
       */
      public Builder setRtcMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message value) {
        copyOnWrite();
        instance.setRtcMsg(value);
        return this;
        }
      /**
       * <code>optional .rtc_message rtc_msg = 12;</code>
       */
      public Builder setRtcMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message.Builder builderForValue) {
        copyOnWrite();
        instance.setRtcMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .rtc_message rtc_msg = 12;</code>
       */
      public Builder mergeRtcMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.rtc_message value) {
        copyOnWrite();
        instance.mergeRtcMsg(value);
        return this;
      }
      /**
       * <code>optional .rtc_message rtc_msg = 12;</code>
       */
      public Builder clearRtcMsg() {  copyOnWrite();
        instance.clearRtcMsg();
        return this;
      }

      /**
       * <code>optional .filter_message filter_msg = 13;</code>
       */
      @java.lang.Override
      public boolean hasFilterMsg() {
        return instance.hasFilterMsg();
      }
      /**
       * <code>optional .filter_message filter_msg = 13;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message getFilterMsg() {
        return instance.getFilterMsg();
      }
      /**
       * <code>optional .filter_message filter_msg = 13;</code>
       */
      public Builder setFilterMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message value) {
        copyOnWrite();
        instance.setFilterMsg(value);
        return this;
        }
      /**
       * <code>optional .filter_message filter_msg = 13;</code>
       */
      public Builder setFilterMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message.Builder builderForValue) {
        copyOnWrite();
        instance.setFilterMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .filter_message filter_msg = 13;</code>
       */
      public Builder mergeFilterMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.filter_message value) {
        copyOnWrite();
        instance.mergeFilterMsg(value);
        return this;
      }
      /**
       * <code>optional .filter_message filter_msg = 13;</code>
       */
      public Builder clearFilterMsg() {  copyOnWrite();
        instance.clearFilterMsg();
        return this;
      }

      /**
       * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
       */
      @java.lang.Override
      public boolean hasGpsControlCmdMsg() {
        return instance.hasGpsControlCmdMsg();
      }
      /**
       * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message getGpsControlCmdMsg() {
        return instance.getGpsControlCmdMsg();
      }
      /**
       * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
       */
      public Builder setGpsControlCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message value) {
        copyOnWrite();
        instance.setGpsControlCmdMsg(value);
        return this;
        }
      /**
       * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
       */
      public Builder setGpsControlCmdMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message.Builder builderForValue) {
        copyOnWrite();
        instance.setGpsControlCmdMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
       */
      public Builder mergeGpsControlCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_control_cmd_message value) {
        copyOnWrite();
        instance.mergeGpsControlCmdMsg(value);
        return this;
      }
      /**
       * <code>optional .gps_control_cmd_message gps_control_cmd_msg = 14;</code>
       */
      public Builder clearGpsControlCmdMsg() {  copyOnWrite();
        instance.clearGpsControlCmdMsg();
        return this;
      }

      /**
       * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
       */
      @java.lang.Override
      public boolean hasGpsGnssMsg() {
        return instance.hasGpsGnssMsg();
      }
      /**
       * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message getGpsGnssMsg() {
        return instance.getGpsGnssMsg();
      }
      /**
       * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
       */
      public Builder setGpsGnssMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message value) {
        copyOnWrite();
        instance.setGpsGnssMsg(value);
        return this;
        }
      /**
       * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
       */
      public Builder setGpsGnssMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message.Builder builderForValue) {
        copyOnWrite();
        instance.setGpsGnssMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
       */
      public Builder mergeGpsGnssMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_gnss_message value) {
        copyOnWrite();
        instance.mergeGpsGnssMsg(value);
        return this;
      }
      /**
       * <code>optional .gps_gnss_message gps_gnss_msg = 15;</code>
       */
      public Builder clearGpsGnssMsg() {  copyOnWrite();
        instance.clearGpsGnssMsg();
        return this;
      }

      /**
       * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
       */
      @java.lang.Override
      public boolean hasGpsDynamicMsg() {
        return instance.hasGpsDynamicMsg();
      }
      /**
       * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message getGpsDynamicMsg() {
        return instance.getGpsDynamicMsg();
      }
      /**
       * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
       */
      public Builder setGpsDynamicMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message value) {
        copyOnWrite();
        instance.setGpsDynamicMsg(value);
        return this;
        }
      /**
       * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
       */
      public Builder setGpsDynamicMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message.Builder builderForValue) {
        copyOnWrite();
        instance.setGpsDynamicMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
       */
      public Builder mergeGpsDynamicMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_dynamic_message value) {
        copyOnWrite();
        instance.mergeGpsDynamicMsg(value);
        return this;
      }
      /**
       * <code>optional .gps_dynamic_message gps_dynamic_msg = 16;</code>
       */
      public Builder clearGpsDynamicMsg() {  copyOnWrite();
        instance.clearGpsDynamicMsg();
        return this;
      }

      /**
       * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
       */
      @java.lang.Override
      public boolean hasGpsCmdMsg() {
        return instance.hasGpsCmdMsg();
      }
      /**
       * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message getGpsCmdMsg() {
        return instance.getGpsCmdMsg();
      }
      /**
       * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
       */
      public Builder setGpsCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message value) {
        copyOnWrite();
        instance.setGpsCmdMsg(value);
        return this;
        }
      /**
       * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
       */
      public Builder setGpsCmdMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message.Builder builderForValue) {
        copyOnWrite();
        instance.setGpsCmdMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
       */
      public Builder mergeGpsCmdMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_cmd_message value) {
        copyOnWrite();
        instance.mergeGpsCmdMsg(value);
        return this;
      }
      /**
       * <code>optional .gps_cmd_message gps_cmd_msg = 17;</code>
       */
      public Builder clearGpsCmdMsg() {  copyOnWrite();
        instance.clearGpsCmdMsg();
        return this;
      }

      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> getDataSetMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getDataSetMsgList());
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      @java.lang.Override
      public int getDataSetMsgCount() {
        return instance.getDataSetMsgCount();
      }/**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message getDataSetMsg(int index) {
        return instance.getDataSetMsg(index);
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder setDataSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message value) {
        copyOnWrite();
        instance.setDataSetMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder setDataSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message.Builder builderForValue) {
        copyOnWrite();
        instance.setDataSetMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder addDataSetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message value) {
        copyOnWrite();
        instance.addDataSetMsg(value);
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder addDataSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message value) {
        copyOnWrite();
        instance.addDataSetMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder addDataSetMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message.Builder builderForValue) {
        copyOnWrite();
        instance.addDataSetMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder addDataSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message.Builder builderForValue) {
        copyOnWrite();
        instance.addDataSetMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder addAllDataSetMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message> values) {
        copyOnWrite();
        instance.addAllDataSetMsg(values);
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder clearDataSetMsg() {
        copyOnWrite();
        instance.clearDataSetMsg();
        return this;
      }
      /**
       * <code>repeated .data_set_message data_set_msg = 18;</code>
       */
      public Builder removeDataSetMsg(int index) {
        copyOnWrite();
        instance.removeDataSetMsg(index);
        return this;
      }

      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> getGpsSnrMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getGpsSnrMsgList());
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      @java.lang.Override
      public int getGpsSnrMsgCount() {
        return instance.getGpsSnrMsgCount();
      }/**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage getGpsSnrMsg(int index) {
        return instance.getGpsSnrMsg(index);
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder setGpsSnrMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage value) {
        copyOnWrite();
        instance.setGpsSnrMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder setGpsSnrMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage.Builder builderForValue) {
        copyOnWrite();
        instance.setGpsSnrMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder addGpsSnrMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage value) {
        copyOnWrite();
        instance.addGpsSnrMsg(value);
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder addGpsSnrMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage value) {
        copyOnWrite();
        instance.addGpsSnrMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder addGpsSnrMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage.Builder builderForValue) {
        copyOnWrite();
        instance.addGpsSnrMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder addGpsSnrMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage.Builder builderForValue) {
        copyOnWrite();
        instance.addGpsSnrMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder addAllGpsSnrMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage> values) {
        copyOnWrite();
        instance.addAllGpsSnrMsg(values);
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder clearGpsSnrMsg() {
        copyOnWrite();
        instance.clearGpsSnrMsg();
        return this;
      }
      /**
       * <code>repeated .gps_snr_massage gps_snr_msg = 19;</code>
       */
      public Builder removeGpsSnrMsg(int index) {
        copyOnWrite();
        instance.removeGpsSnrMsg(index);
        return this;
      }

      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> getAntMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getAntMsgList());
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      @java.lang.Override
      public int getAntMsgCount() {
        return instance.getAntMsgCount();
      }/**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message getAntMsg(int index) {
        return instance.getAntMsg(index);
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder setAntMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message value) {
        copyOnWrite();
        instance.setAntMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder setAntMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message.Builder builderForValue) {
        copyOnWrite();
        instance.setAntMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder addAntMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message value) {
        copyOnWrite();
        instance.addAntMsg(value);
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder addAntMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message value) {
        copyOnWrite();
        instance.addAntMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder addAntMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message.Builder builderForValue) {
        copyOnWrite();
        instance.addAntMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder addAntMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message.Builder builderForValue) {
        copyOnWrite();
        instance.addAntMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder addAllAntMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message> values) {
        copyOnWrite();
        instance.addAllAntMsg(values);
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder clearAntMsg() {
        copyOnWrite();
        instance.clearAntMsg();
        return this;
      }
      /**
       * <code>repeated .ant_message ant_msg = 20;</code>
       */
      public Builder removeAntMsg(int index) {
        copyOnWrite();
        instance.removeAntMsg(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:factory_msg)
    }
    private byte memoizedIsInitialized = 2;
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "serviceType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.internalGetVerifier(),
              "factoryOperateType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.FACTORY_OPERATE_TYPE.internalGetVerifier(),
              "factorySnMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sn_message.class,
              "factorySensorMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_sensor_message.class,
              "memoryMsg_",
              "battaryMsg_",
              "simFitMsg_",
              "controlMsg_",
              "gpsCoordinateMsg_",
              "sunTimeMsg_",
              "powerSaveMsg_",
              "rtcMsg_",
              "filterMsg_",
              "gpsControlCmdMsg_",
              "gpsGnssMsg_",
              "gpsDynamicMsg_",
              "gpsCmdMsg_",
              "dataSetMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.data_set_message.class,
              "gpsSnrMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.gps_snr_massage.class,
              "antMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.ant_message.class,
            };
            java.lang.String info =
                "\u0001\u0014\u0000\u0001\u0001\u0014\u0014\u0000\u0005\u0002\u0001\u150c\u0000\u0002" +
                "\u150c\u0001\u0003\u001b\u0004\u001b\u0005\u1009\u0002\u0006\u1009\u0003\u0007\u1009" +
                "\u0004\b\u1009\u0005\t\u1009\u0006\n\u1009\u0007\u000b\u1009\b\f\u1009\t\r\u1009" +
                "\n\u000e\u1009\u000b\u000f\u1009\f\u0010\u1009\r\u0011\u1009\u000e\u0012\u001b\u0013" +
                "\u001b\u0014\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return memoizedIsInitialized;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        memoizedIsInitialized = (byte) (arg0 == null ? 0 : 1);
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:factory_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg DEFAULT_INSTANCE;
    static {
      factory_msg defaultInstance = new factory_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        factory_msg.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Factory.factory_msg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<factory_msg> PARSER;

    public static com.google.protobuf.Parser<factory_msg> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
