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

package nodomain.freeyourgadget.gadgetbridge.proto.igpsport;

public final class Config {
  private Config() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code CONFIG_SERVICE_TYPE}
   */
  public enum CONFIG_SERVICE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_NONE = 0;</code>
     */
    enum_CONFIG_SERVICE_TYPE_NONE(0),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_USER = 1;</code>
     */
    enum_CONFIG_SERVICE_TYPE_USER(1),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_PAGE = 2;</code>
     */
    enum_CONFIG_SERVICE_TYPE_PAGE(2),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_BIKE = 3;</code>
     */
    enum_CONFIG_SERVICE_TYPE_BIKE(3),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_UNIT = 4;</code>
     */
    enum_CONFIG_SERVICE_TYPE_UNIT(4),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_LANG = 5;</code>
     */
    enum_CONFIG_SERVICE_TYPE_LANG(5),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_KEY = 6;</code>
     */
    enum_CONFIG_SERVICE_TYPE_KEY(6),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_WHEEL = 7;</code>
     */
    enum_CONFIG_SERVICE_TYPE_WHEEL(7),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_GPS = 16;</code>
     */
    enum_CONFIG_SERVICE_TYPE_GPS(16),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_SOUND = 17;</code>
     */
    enum_CONFIG_SERVICE_TYPE_SOUND(17),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_POWER = 18;</code>
     */
    enum_CONFIG_SERVICE_TYPE_POWER(18),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_DIS_COLOR = 19;</code>
     */
    enum_CONFIG_SERVICE_TYPE_DIS_COLOR(19),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_BK = 20;</code>
     */
    enum_CONFIG_SERVICE_TYPE_BK(20),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_ALARM = 48;</code>
     */
    enum_CONFIG_SERVICE_TYPE_ALARM(48),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_LAP = 49;</code>
     */
    enum_CONFIG_SERVICE_TYPE_LAP(49),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_AUTO = 50;</code>
     */
    enum_CONFIG_SERVICE_TYPE_AUTO(50),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_MODE = 51;</code>
     */
    enum_CONFIG_SERVICE_TYPE_MODE(51),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_ALTITUDE = 52;</code>
     */
    enum_CONFIG_SERVICE_TYPE_ALTITUDE(52),
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_DATA = 53;</code>
     */
    enum_CONFIG_SERVICE_TYPE_DATA(53),
    ;

    /**
     * <code>enum_CONFIG_SERVICE_TYPE_NONE = 0;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_NONE_VALUE = 0;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_USER = 1;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_USER_VALUE = 1;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_PAGE = 2;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_PAGE_VALUE = 2;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_BIKE = 3;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_BIKE_VALUE = 3;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_UNIT = 4;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_UNIT_VALUE = 4;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_LANG = 5;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_LANG_VALUE = 5;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_KEY = 6;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_KEY_VALUE = 6;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_WHEEL = 7;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_WHEEL_VALUE = 7;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_GPS = 16;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_GPS_VALUE = 16;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_SOUND = 17;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_SOUND_VALUE = 17;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_POWER = 18;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_POWER_VALUE = 18;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_DIS_COLOR = 19;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_DIS_COLOR_VALUE = 19;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_BK = 20;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_BK_VALUE = 20;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_ALARM = 48;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_ALARM_VALUE = 48;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_LAP = 49;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_LAP_VALUE = 49;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_AUTO = 50;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_AUTO_VALUE = 50;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_MODE = 51;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_MODE_VALUE = 51;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_ALTITUDE = 52;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_ALTITUDE_VALUE = 52;
    /**
     * <code>enum_CONFIG_SERVICE_TYPE_DATA = 53;</code>
     */
    public static final int enum_CONFIG_SERVICE_TYPE_DATA_VALUE = 53;


    @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 CONFIG_SERVICE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static CONFIG_SERVICE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_CONFIG_SERVICE_TYPE_NONE;
        case 1: return enum_CONFIG_SERVICE_TYPE_USER;
        case 2: return enum_CONFIG_SERVICE_TYPE_PAGE;
        case 3: return enum_CONFIG_SERVICE_TYPE_BIKE;
        case 4: return enum_CONFIG_SERVICE_TYPE_UNIT;
        case 5: return enum_CONFIG_SERVICE_TYPE_LANG;
        case 6: return enum_CONFIG_SERVICE_TYPE_KEY;
        case 7: return enum_CONFIG_SERVICE_TYPE_WHEEL;
        case 16: return enum_CONFIG_SERVICE_TYPE_GPS;
        case 17: return enum_CONFIG_SERVICE_TYPE_SOUND;
        case 18: return enum_CONFIG_SERVICE_TYPE_POWER;
        case 19: return enum_CONFIG_SERVICE_TYPE_DIS_COLOR;
        case 20: return enum_CONFIG_SERVICE_TYPE_BK;
        case 48: return enum_CONFIG_SERVICE_TYPE_ALARM;
        case 49: return enum_CONFIG_SERVICE_TYPE_LAP;
        case 50: return enum_CONFIG_SERVICE_TYPE_AUTO;
        case 51: return enum_CONFIG_SERVICE_TYPE_MODE;
        case 52: return enum_CONFIG_SERVICE_TYPE_ALTITUDE;
        case 53: return enum_CONFIG_SERVICE_TYPE_DATA;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:CONFIG_SERVICE_TYPE)
  }

  /**
   * Protobuf enum {@code CONFIG_OPERATE_TYPE}
   */
  public enum CONFIG_OPERATE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_NONE = 0;</code>
     */
    enum_CONFIG_OPERATE_TYPE_NONE(0),
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_SET = 1;</code>
     */
    enum_CONFIG_OPERATE_TYPE_SET(1),
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_GET = 2;</code>
     */
    enum_CONFIG_OPERATE_TYPE_GET(2),
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_SEND = 3;</code>
     */
    enum_CONFIG_OPERATE_TYPE_SEND(3),
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_ADD = 4;</code>
     */
    enum_CONFIG_OPERATE_TYPE_ADD(4),
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_DEL = 5;</code>
     */
    enum_CONFIG_OPERATE_TYPE_DEL(5),
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_GET_MODULE_INFO = 6;</code>
     */
    enum_CONFIG_OPERATE_TYPE_GET_MODULE_INFO(6),
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_CTRL = 7;</code>
     */
    enum_CONFIG_OPERATE_TYPE_CTRL(7),
    ;

    /**
     * <code>enum_CONFIG_OPERATE_TYPE_NONE = 0;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_NONE_VALUE = 0;
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_SET = 1;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_SET_VALUE = 1;
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_GET = 2;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_GET_VALUE = 2;
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_SEND = 3;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_SEND_VALUE = 3;
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_ADD = 4;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_ADD_VALUE = 4;
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_DEL = 5;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_DEL_VALUE = 5;
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_GET_MODULE_INFO = 6;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_GET_MODULE_INFO_VALUE = 6;
    /**
     * <code>enum_CONFIG_OPERATE_TYPE_CTRL = 7;</code>
     */
    public static final int enum_CONFIG_OPERATE_TYPE_CTRL_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 CONFIG_OPERATE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static CONFIG_OPERATE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_CONFIG_OPERATE_TYPE_NONE;
        case 1: return enum_CONFIG_OPERATE_TYPE_SET;
        case 2: return enum_CONFIG_OPERATE_TYPE_GET;
        case 3: return enum_CONFIG_OPERATE_TYPE_SEND;
        case 4: return enum_CONFIG_OPERATE_TYPE_ADD;
        case 5: return enum_CONFIG_OPERATE_TYPE_DEL;
        case 6: return enum_CONFIG_OPERATE_TYPE_GET_MODULE_INFO;
        case 7: return enum_CONFIG_OPERATE_TYPE_CTRL;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:CONFIG_OPERATE_TYPE)
  }

  /**
   * Protobuf enum {@code SOUND_TYPE}
   */
  public enum SOUND_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_SOUND_TYPE_INVALID = 0;</code>
     */
    enum_SOUND_TYPE_INVALID(0),
    /**
     * <code>enum_SOUND_RECORD_START = 1;</code>
     */
    enum_SOUND_RECORD_START(1),
    /**
     * <code>enum_SOUND_RECORD_PAUSE = 2;</code>
     */
    enum_SOUND_RECORD_PAUSE(2),
    /**
     * <code>enum_SOUND_RECORD_SAVE = 4;</code>
     */
    enum_SOUND_RECORD_SAVE(4),
    /**
     * <code>enum_SOUND_LAP = 8;</code>
     */
    enum_SOUND_LAP(8),
    /**
     * <code>enum_SOUND_ALART = 16;</code>
     */
    enum_SOUND_ALART(16),
    /**
     * <code>enum_SOUND_KEY = 32;</code>
     */
    enum_SOUND_KEY(32),
    /**
     * <code>enum_SOUND_USB = 64;</code>
     */
    enum_SOUND_USB(64),
    /**
     * <code>enum_SOUND_GPS = 128;</code>
     */
    enum_SOUND_GPS(128),
    /**
     * <code>enum_SOUND_SENSOR = 256;</code>
     */
    enum_SOUND_SENSOR(256),
    /**
     * <code>enum_SOUND_CALL = 512;</code>
     */
    enum_SOUND_CALL(512),
    /**
     * <code>enum_SOUND_SOCIAL = 1024;</code>
     */
    enum_SOUND_SOCIAL(1024),
    /**
     * <code>enum_SOUND_BURGLAR_ALARM = 2048;</code>
     */
    enum_SOUND_BURGLAR_ALARM(2048),
    /**
     * <code>enum_SOUND_DEV_FIND = 4096;</code>
     */
    enum_SOUND_DEV_FIND(4096),
    ;

    /**
     * <code>enum_SOUND_TYPE_INVALID = 0;</code>
     */
    public static final int enum_SOUND_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_SOUND_RECORD_START = 1;</code>
     */
    public static final int enum_SOUND_RECORD_START_VALUE = 1;
    /**
     * <code>enum_SOUND_RECORD_PAUSE = 2;</code>
     */
    public static final int enum_SOUND_RECORD_PAUSE_VALUE = 2;
    /**
     * <code>enum_SOUND_RECORD_SAVE = 4;</code>
     */
    public static final int enum_SOUND_RECORD_SAVE_VALUE = 4;
    /**
     * <code>enum_SOUND_LAP = 8;</code>
     */
    public static final int enum_SOUND_LAP_VALUE = 8;
    /**
     * <code>enum_SOUND_ALART = 16;</code>
     */
    public static final int enum_SOUND_ALART_VALUE = 16;
    /**
     * <code>enum_SOUND_KEY = 32;</code>
     */
    public static final int enum_SOUND_KEY_VALUE = 32;
    /**
     * <code>enum_SOUND_USB = 64;</code>
     */
    public static final int enum_SOUND_USB_VALUE = 64;
    /**
     * <code>enum_SOUND_GPS = 128;</code>
     */
    public static final int enum_SOUND_GPS_VALUE = 128;
    /**
     * <code>enum_SOUND_SENSOR = 256;</code>
     */
    public static final int enum_SOUND_SENSOR_VALUE = 256;
    /**
     * <code>enum_SOUND_CALL = 512;</code>
     */
    public static final int enum_SOUND_CALL_VALUE = 512;
    /**
     * <code>enum_SOUND_SOCIAL = 1024;</code>
     */
    public static final int enum_SOUND_SOCIAL_VALUE = 1024;
    /**
     * <code>enum_SOUND_BURGLAR_ALARM = 2048;</code>
     */
    public static final int enum_SOUND_BURGLAR_ALARM_VALUE = 2048;
    /**
     * <code>enum_SOUND_DEV_FIND = 4096;</code>
     */
    public static final int enum_SOUND_DEV_FIND_VALUE = 4096;


    @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 SOUND_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static SOUND_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_SOUND_TYPE_INVALID;
        case 1: return enum_SOUND_RECORD_START;
        case 2: return enum_SOUND_RECORD_PAUSE;
        case 4: return enum_SOUND_RECORD_SAVE;
        case 8: return enum_SOUND_LAP;
        case 16: return enum_SOUND_ALART;
        case 32: return enum_SOUND_KEY;
        case 64: return enum_SOUND_USB;
        case 128: return enum_SOUND_GPS;
        case 256: return enum_SOUND_SENSOR;
        case 512: return enum_SOUND_CALL;
        case 1024: return enum_SOUND_SOCIAL;
        case 2048: return enum_SOUND_BURGLAR_ALARM;
        case 4096: return enum_SOUND_DEV_FIND;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:SOUND_TYPE)
  }

  /**
   * Protobuf enum {@code SOUND_SCENE_TYPE}
   */
  public enum SOUND_SCENE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_SOUND_SCENE_TYPE_INVALID = 0;</code>
     */
    enum_SOUND_SCENE_TYPE_INVALID(0),
    /**
     * <code>enum_ALL_SCENE = 1;</code>
     */
    enum_ALL_SCENE(1),
    /**
     * <code>enum_RECORDING_SCENE = 2;</code>
     */
    enum_RECORDING_SCENE(2),
    ;

    /**
     * <code>enum_SOUND_SCENE_TYPE_INVALID = 0;</code>
     */
    public static final int enum_SOUND_SCENE_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_ALL_SCENE = 1;</code>
     */
    public static final int enum_ALL_SCENE_VALUE = 1;
    /**
     * <code>enum_RECORDING_SCENE = 2;</code>
     */
    public static final int enum_RECORDING_SCENE_VALUE = 2;


    @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 SOUND_SCENE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static SOUND_SCENE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_SOUND_SCENE_TYPE_INVALID;
        case 1: return enum_ALL_SCENE;
        case 2: return enum_RECORDING_SCENE;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:SOUND_SCENE_TYPE)
  }

  /**
   * Protobuf enum {@code KEY_TYPE}
   */
  public enum KEY_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_KEY_TYPE_INVALID = 0;</code>
     */
    enum_KEY_TYPE_INVALID(0),
    /**
     * <code>enum_KEY1 = 1;</code>
     */
    enum_KEY1(1),
    /**
     * <code>enum_KEY2 = 2;</code>
     */
    enum_KEY2(2),
    /**
     * <code>enum_KEY3 = 3;</code>
     */
    enum_KEY3(3),
    /**
     * <code>enum_KEY4 = 4;</code>
     */
    enum_KEY4(4),
    /**
     * <code>enum_KEY5 = 5;</code>
     */
    enum_KEY5(5),
    /**
     * <code>enum_KEY6 = 6;</code>
     */
    enum_KEY6(6),
    ;

    /**
     * <code>enum_KEY_TYPE_INVALID = 0;</code>
     */
    public static final int enum_KEY_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_KEY1 = 1;</code>
     */
    public static final int enum_KEY1_VALUE = 1;
    /**
     * <code>enum_KEY2 = 2;</code>
     */
    public static final int enum_KEY2_VALUE = 2;
    /**
     * <code>enum_KEY3 = 3;</code>
     */
    public static final int enum_KEY3_VALUE = 3;
    /**
     * <code>enum_KEY4 = 4;</code>
     */
    public static final int enum_KEY4_VALUE = 4;
    /**
     * <code>enum_KEY5 = 5;</code>
     */
    public static final int enum_KEY5_VALUE = 5;
    /**
     * <code>enum_KEY6 = 6;</code>
     */
    public static final int enum_KEY6_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 KEY_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static KEY_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_KEY_TYPE_INVALID;
        case 1: return enum_KEY1;
        case 2: return enum_KEY2;
        case 3: return enum_KEY3;
        case 4: return enum_KEY4;
        case 5: return enum_KEY5;
        case 6: return enum_KEY6;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:KEY_TYPE)
  }

  /**
   * Protobuf enum {@code KEY_FUNCTION_TYPE}
   */
  public enum KEY_FUNCTION_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_KEY_FUNCTION_TYPE_INVALID = 0;</code>
     */
    enum_KEY_FUNCTION_TYPE_INVALID(0),
    /**
     * <code>enum_RECORD_STATUS_MANUAL_PAUSE = 1;</code>
     */
    enum_RECORD_STATUS_MANUAL_PAUSE(1),
    /**
     * <code>enum_RECORD_STATUS_MANUAL_LAP = 2;</code>
     */
    enum_RECORD_STATUS_MANUAL_LAP(2),
    ;

    /**
     * <code>enum_KEY_FUNCTION_TYPE_INVALID = 0;</code>
     */
    public static final int enum_KEY_FUNCTION_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_RECORD_STATUS_MANUAL_PAUSE = 1;</code>
     */
    public static final int enum_RECORD_STATUS_MANUAL_PAUSE_VALUE = 1;
    /**
     * <code>enum_RECORD_STATUS_MANUAL_LAP = 2;</code>
     */
    public static final int enum_RECORD_STATUS_MANUAL_LAP_VALUE = 2;


    @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 KEY_FUNCTION_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static KEY_FUNCTION_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_KEY_FUNCTION_TYPE_INVALID;
        case 1: return enum_RECORD_STATUS_MANUAL_PAUSE;
        case 2: return enum_RECORD_STATUS_MANUAL_LAP;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:KEY_FUNCTION_TYPE)
  }

  /**
   * Protobuf enum {@code AUTO_TYPE}
   */
  public enum AUTO_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_AUTO_TYPE_INVALID = 0;</code>
     */
    enum_AUTO_TYPE_INVALID(0),
    /**
     * <code>enum_PAUSE = 1;</code>
     */
    enum_PAUSE(1),
    /**
     * <code>enum_RECORD_START = 2;</code>
     */
    enum_RECORD_START(2),
    /**
     * <code>enum_POWER_OFF = 3;</code>
     */
    enum_POWER_OFF(3),
    /**
     * <code>enum_SLEEP = 4;</code>
     */
    enum_SLEEP(4),
    /**
     * <code>enum_HOME_PAGE_BACK = 5;</code>
     */
    enum_HOME_PAGE_BACK(5),
    /**
     * <code>enum_SMART_SAVE = 6;</code>
     */
    enum_SMART_SAVE(6),
    /**
     * <code>enum_POWER_SAVE = 7;</code>
     */
    enum_POWER_SAVE(7),
    /**
     * <code>enum_PAGE_AUTO = 8;</code>
     */
    enum_PAGE_AUTO(8),
    /**
     * <code>enum_MOTION_CHECK = 9;</code>
     */
    enum_MOTION_CHECK(9),
    ;

    /**
     * <code>enum_AUTO_TYPE_INVALID = 0;</code>
     */
    public static final int enum_AUTO_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_PAUSE = 1;</code>
     */
    public static final int enum_PAUSE_VALUE = 1;
    /**
     * <code>enum_RECORD_START = 2;</code>
     */
    public static final int enum_RECORD_START_VALUE = 2;
    /**
     * <code>enum_POWER_OFF = 3;</code>
     */
    public static final int enum_POWER_OFF_VALUE = 3;
    /**
     * <code>enum_SLEEP = 4;</code>
     */
    public static final int enum_SLEEP_VALUE = 4;
    /**
     * <code>enum_HOME_PAGE_BACK = 5;</code>
     */
    public static final int enum_HOME_PAGE_BACK_VALUE = 5;
    /**
     * <code>enum_SMART_SAVE = 6;</code>
     */
    public static final int enum_SMART_SAVE_VALUE = 6;
    /**
     * <code>enum_POWER_SAVE = 7;</code>
     */
    public static final int enum_POWER_SAVE_VALUE = 7;
    /**
     * <code>enum_PAGE_AUTO = 8;</code>
     */
    public static final int enum_PAGE_AUTO_VALUE = 8;
    /**
     * <code>enum_MOTION_CHECK = 9;</code>
     */
    public static final int enum_MOTION_CHECK_VALUE = 9;


    @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 AUTO_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static AUTO_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_AUTO_TYPE_INVALID;
        case 1: return enum_PAUSE;
        case 2: return enum_RECORD_START;
        case 3: return enum_POWER_OFF;
        case 4: return enum_SLEEP;
        case 5: return enum_HOME_PAGE_BACK;
        case 6: return enum_SMART_SAVE;
        case 7: return enum_POWER_SAVE;
        case 8: return enum_PAGE_AUTO;
        case 9: return enum_MOTION_CHECK;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:AUTO_TYPE)
  }

  /**
   * Protobuf enum {@code POWER_SAVE_STATUS}
   */
  public enum POWER_SAVE_STATUS
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>POWER_SAVE_STATUS_OFF = 0;</code>
     */
    POWER_SAVE_STATUS_OFF(0),
    /**
     * <code>POWER_SAVE_STATUS_ON = 1;</code>
     */
    POWER_SAVE_STATUS_ON(1),
    /**
     * <code>POWER_SAVE_STATUS_SMART = 2;</code>
     */
    POWER_SAVE_STATUS_SMART(2),
    ;

    /**
     * <code>POWER_SAVE_STATUS_OFF = 0;</code>
     */
    public static final int POWER_SAVE_STATUS_OFF_VALUE = 0;
    /**
     * <code>POWER_SAVE_STATUS_ON = 1;</code>
     */
    public static final int POWER_SAVE_STATUS_ON_VALUE = 1;
    /**
     * <code>POWER_SAVE_STATUS_SMART = 2;</code>
     */
    public static final int POWER_SAVE_STATUS_SMART_VALUE = 2;


    @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 POWER_SAVE_STATUS valueOf(int value) {
      return forNumber(value);
    }

    public static POWER_SAVE_STATUS forNumber(int value) {
      switch (value) {
        case 0: return POWER_SAVE_STATUS_OFF;
        case 1: return POWER_SAVE_STATUS_ON;
        case 2: return POWER_SAVE_STATUS_SMART;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:POWER_SAVE_STATUS)
  }

  /**
   * Protobuf enum {@code PAGE_AUTO_STATUS}
   */
  public enum PAGE_AUTO_STATUS
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>PAGE_AUTO_STATUS_OFF = 0;</code>
     */
    PAGE_AUTO_STATUS_OFF(0),
    /**
     * <code>PAGE_AUTO_STATUS_ON = 1;</code>
     */
    PAGE_AUTO_STATUS_ON(1),
    /**
     * <code>PAGE_AUTO_STATUS_FAST = 2;</code>
     */
    PAGE_AUTO_STATUS_FAST(2),
    /**
     * <code>PAGE_AUTO_STATUS_SLOW = 3;</code>
     */
    PAGE_AUTO_STATUS_SLOW(3),
    /**
     * <code>PAGE_AUTO_STATUS_MAIN = 4;</code>
     */
    PAGE_AUTO_STATUS_MAIN(4),
    ;

    /**
     * <code>PAGE_AUTO_STATUS_OFF = 0;</code>
     */
    public static final int PAGE_AUTO_STATUS_OFF_VALUE = 0;
    /**
     * <code>PAGE_AUTO_STATUS_ON = 1;</code>
     */
    public static final int PAGE_AUTO_STATUS_ON_VALUE = 1;
    /**
     * <code>PAGE_AUTO_STATUS_FAST = 2;</code>
     */
    public static final int PAGE_AUTO_STATUS_FAST_VALUE = 2;
    /**
     * <code>PAGE_AUTO_STATUS_SLOW = 3;</code>
     */
    public static final int PAGE_AUTO_STATUS_SLOW_VALUE = 3;
    /**
     * <code>PAGE_AUTO_STATUS_MAIN = 4;</code>
     */
    public static final int PAGE_AUTO_STATUS_MAIN_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 PAGE_AUTO_STATUS valueOf(int value) {
      return forNumber(value);
    }

    public static PAGE_AUTO_STATUS forNumber(int value) {
      switch (value) {
        case 0: return PAGE_AUTO_STATUS_OFF;
        case 1: return PAGE_AUTO_STATUS_ON;
        case 2: return PAGE_AUTO_STATUS_FAST;
        case 3: return PAGE_AUTO_STATUS_SLOW;
        case 4: return PAGE_AUTO_STATUS_MAIN;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:PAGE_AUTO_STATUS)
  }

  /**
   * Protobuf enum {@code ALARM_TYPE}
   */
  public enum ALARM_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>ALARM_TYPE_INVALID = 0;</code>
     */
    ALARM_TYPE_INVALID(0),
    /**
     * <code>ALARM_TYPE_RIDE_TIME = 1;</code>
     */
    ALARM_TYPE_RIDE_TIME(1),
    /**
     * <code>ALARM_TYPE_RIDE_DISTANCE = 2;</code>
     */
    ALARM_TYPE_RIDE_DISTANCE(2),
    /**
     * <code>ALARM_TYPE_HRM = 3;</code>
     */
    ALARM_TYPE_HRM(3),
    /**
     * <code>ALARM_TYPE_CAD = 4;</code>
     */
    ALARM_TYPE_CAD(4),
    /**
     * <code>ALARM_TYPE_PWR = 5;</code>
     */
    ALARM_TYPE_PWR(5),
    /**
     * <code>ALARM_TYPE_CALORIE = 6;</code>
     */
    ALARM_TYPE_CALORIE(6),
    /**
     * <code>ALARM_TYPE_SPEED = 7;</code>
     */
    ALARM_TYPE_SPEED(7),
    /**
     * <code>ALARM_TYPE_WATER = 8;</code>
     */
    ALARM_TYPE_WATER(8),
    /**
     * <code>ALARM_TYPE_FOOD = 9;</code>
     */
    ALARM_TYPE_FOOD(9),
    /**
     * <code>ALARM_TYPE_CORE_TEMP = 10;</code>
     */
    ALARM_TYPE_CORE_TEMP(10),
    ;

    /**
     * <code>ALARM_TYPE_INVALID = 0;</code>
     */
    public static final int ALARM_TYPE_INVALID_VALUE = 0;
    /**
     * <code>ALARM_TYPE_RIDE_TIME = 1;</code>
     */
    public static final int ALARM_TYPE_RIDE_TIME_VALUE = 1;
    /**
     * <code>ALARM_TYPE_RIDE_DISTANCE = 2;</code>
     */
    public static final int ALARM_TYPE_RIDE_DISTANCE_VALUE = 2;
    /**
     * <code>ALARM_TYPE_HRM = 3;</code>
     */
    public static final int ALARM_TYPE_HRM_VALUE = 3;
    /**
     * <code>ALARM_TYPE_CAD = 4;</code>
     */
    public static final int ALARM_TYPE_CAD_VALUE = 4;
    /**
     * <code>ALARM_TYPE_PWR = 5;</code>
     */
    public static final int ALARM_TYPE_PWR_VALUE = 5;
    /**
     * <code>ALARM_TYPE_CALORIE = 6;</code>
     */
    public static final int ALARM_TYPE_CALORIE_VALUE = 6;
    /**
     * <code>ALARM_TYPE_SPEED = 7;</code>
     */
    public static final int ALARM_TYPE_SPEED_VALUE = 7;
    /**
     * <code>ALARM_TYPE_WATER = 8;</code>
     */
    public static final int ALARM_TYPE_WATER_VALUE = 8;
    /**
     * <code>ALARM_TYPE_FOOD = 9;</code>
     */
    public static final int ALARM_TYPE_FOOD_VALUE = 9;
    /**
     * <code>ALARM_TYPE_CORE_TEMP = 10;</code>
     */
    public static final int ALARM_TYPE_CORE_TEMP_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 ALARM_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static ALARM_TYPE forNumber(int value) {
      switch (value) {
        case 0: return ALARM_TYPE_INVALID;
        case 1: return ALARM_TYPE_RIDE_TIME;
        case 2: return ALARM_TYPE_RIDE_DISTANCE;
        case 3: return ALARM_TYPE_HRM;
        case 4: return ALARM_TYPE_CAD;
        case 5: return ALARM_TYPE_PWR;
        case 6: return ALARM_TYPE_CALORIE;
        case 7: return ALARM_TYPE_SPEED;
        case 8: return ALARM_TYPE_WATER;
        case 9: return ALARM_TYPE_FOOD;
        case 10: return ALARM_TYPE_CORE_TEMP;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ALARM_TYPE)
  }

  /**
   * Protobuf enum {@code ALARM_SELECT}
   */
  public enum ALARM_SELECT
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>ALARM_SELECT_INVALID = 0;</code>
     */
    ALARM_SELECT_INVALID(0),
    /**
     * <code>ALARM_SELECT_RIDE_TIME = 1;</code>
     */
    ALARM_SELECT_RIDE_TIME(1),
    /**
     * <code>ALARM_SELECT_DISTANCE = 2;</code>
     */
    ALARM_SELECT_DISTANCE(2),
    /**
     * <code>ALARM_SELECT_CALORIE = 3;</code>
     */
    ALARM_SELECT_CALORIE(3),
    ;

    /**
     * <code>ALARM_SELECT_INVALID = 0;</code>
     */
    public static final int ALARM_SELECT_INVALID_VALUE = 0;
    /**
     * <code>ALARM_SELECT_RIDE_TIME = 1;</code>
     */
    public static final int ALARM_SELECT_RIDE_TIME_VALUE = 1;
    /**
     * <code>ALARM_SELECT_DISTANCE = 2;</code>
     */
    public static final int ALARM_SELECT_DISTANCE_VALUE = 2;
    /**
     * <code>ALARM_SELECT_CALORIE = 3;</code>
     */
    public static final int ALARM_SELECT_CALORIE_VALUE = 3;


    @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 ALARM_SELECT valueOf(int value) {
      return forNumber(value);
    }

    public static ALARM_SELECT forNumber(int value) {
      switch (value) {
        case 0: return ALARM_SELECT_INVALID;
        case 1: return ALARM_SELECT_RIDE_TIME;
        case 2: return ALARM_SELECT_DISTANCE;
        case 3: return ALARM_SELECT_CALORIE;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:ALARM_SELECT)
  }

  /**
   * Protobuf enum {@code LAP_TYPE}
   */
  public enum LAP_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>LAP_TYPE_INVALID = 0;</code>
     */
    LAP_TYPE_INVALID(0),
    /**
     * <code>LAP_TYPE_LOCATION = 1;</code>
     */
    LAP_TYPE_LOCATION(1),
    /**
     * <code>LAP_TYPE_TIME = 2;</code>
     */
    LAP_TYPE_TIME(2),
    /**
     * <code>LAP_TYPE_DISTANCE = 3;</code>
     */
    LAP_TYPE_DISTANCE(3),
    ;

    /**
     * <code>LAP_TYPE_INVALID = 0;</code>
     */
    public static final int LAP_TYPE_INVALID_VALUE = 0;
    /**
     * <code>LAP_TYPE_LOCATION = 1;</code>
     */
    public static final int LAP_TYPE_LOCATION_VALUE = 1;
    /**
     * <code>LAP_TYPE_TIME = 2;</code>
     */
    public static final int LAP_TYPE_TIME_VALUE = 2;
    /**
     * <code>LAP_TYPE_DISTANCE = 3;</code>
     */
    public static final int LAP_TYPE_DISTANCE_VALUE = 3;


    @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 LAP_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static LAP_TYPE forNumber(int value) {
      switch (value) {
        case 0: return LAP_TYPE_INVALID;
        case 1: return LAP_TYPE_LOCATION;
        case 2: return LAP_TYPE_TIME;
        case 3: return LAP_TYPE_DISTANCE;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:LAP_TYPE)
  }

  /**
   * Protobuf enum {@code UNIT_TYPE}
   */
  public enum UNIT_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_UNIT_TYPE_INVALID = 0;</code>
     */
    enum_UNIT_TYPE_INVALID(0),
    /**
     * <code>enum_UNIT_TYPE_METRIC = 1;</code>
     */
    enum_UNIT_TYPE_METRIC(1),
    /**
     * <code>enum_UNIT_TYPE_INCH = 2;</code>
     */
    enum_UNIT_TYPE_INCH(2),
    ;

    /**
     * <code>enum_UNIT_TYPE_INVALID = 0;</code>
     */
    public static final int enum_UNIT_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_UNIT_TYPE_METRIC = 1;</code>
     */
    public static final int enum_UNIT_TYPE_METRIC_VALUE = 1;
    /**
     * <code>enum_UNIT_TYPE_INCH = 2;</code>
     */
    public static final int enum_UNIT_TYPE_INCH_VALUE = 2;


    @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 UNIT_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static UNIT_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_UNIT_TYPE_INVALID;
        case 1: return enum_UNIT_TYPE_METRIC;
        case 2: return enum_UNIT_TYPE_INCH;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:UNIT_TYPE)
  }

  /**
   * Protobuf enum {@code UNIT_ITEM}
   */
  public enum UNIT_ITEM
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_UNIT_ITEM_INVALID = 0;</code>
     */
    enum_UNIT_ITEM_INVALID(0),
    /**
     * <code>enum_UNIT_ITEM_DISTANCE = 1;</code>
     */
    enum_UNIT_ITEM_DISTANCE(1),
    /**
     * <code>enum_UNIT_ITEM_ELEVATION = 2;</code>
     */
    enum_UNIT_ITEM_ELEVATION(2),
    /**
     * <code>enum_UNIT_ITEM_WEIGHT = 3;</code>
     */
    enum_UNIT_ITEM_WEIGHT(3),
    /**
     * <code>enum_UNIT_ITEM_TEMPERATURE = 4;</code>
     */
    enum_UNIT_ITEM_TEMPERATURE(4),
    ;

    /**
     * <code>enum_UNIT_ITEM_INVALID = 0;</code>
     */
    public static final int enum_UNIT_ITEM_INVALID_VALUE = 0;
    /**
     * <code>enum_UNIT_ITEM_DISTANCE = 1;</code>
     */
    public static final int enum_UNIT_ITEM_DISTANCE_VALUE = 1;
    /**
     * <code>enum_UNIT_ITEM_ELEVATION = 2;</code>
     */
    public static final int enum_UNIT_ITEM_ELEVATION_VALUE = 2;
    /**
     * <code>enum_UNIT_ITEM_WEIGHT = 3;</code>
     */
    public static final int enum_UNIT_ITEM_WEIGHT_VALUE = 3;
    /**
     * <code>enum_UNIT_ITEM_TEMPERATURE = 4;</code>
     */
    public static final int enum_UNIT_ITEM_TEMPERATURE_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 UNIT_ITEM valueOf(int value) {
      return forNumber(value);
    }

    public static UNIT_ITEM forNumber(int value) {
      switch (value) {
        case 0: return enum_UNIT_ITEM_INVALID;
        case 1: return enum_UNIT_ITEM_DISTANCE;
        case 2: return enum_UNIT_ITEM_ELEVATION;
        case 3: return enum_UNIT_ITEM_WEIGHT;
        case 4: return enum_UNIT_ITEM_TEMPERATURE;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:UNIT_ITEM)
  }

  /**
   * Protobuf enum {@code PAGE_TYPE}
   */
  public enum PAGE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_PAGE_TYPE_INVALID = 0;</code>
     */
    enum_PAGE_TYPE_INVALID(0),
    /**
     * <code>enum_PAGE_TYPE_DATA = 1;</code>
     */
    enum_PAGE_TYPE_DATA(1),
    /**
     * <code>enum_PAGE_TYPE_ELEVATION = 2;</code>
     */
    enum_PAGE_TYPE_ELEVATION(2),
    /**
     * <code>enum_PAGE_TYPE_MAP = 3;</code>
     */
    enum_PAGE_TYPE_MAP(3),
    /**
     * <code>enum_PAGE_TYPE_AREA = 4;</code>
     */
    enum_PAGE_TYPE_AREA(4),
    /**
     * <code>enum_PAGE_TYPE_TRAINING_COURSE = 5;</code>
     */
    enum_PAGE_TYPE_TRAINING_COURSE(5),
    /**
     * <code>enum_PAGE_TYPE_TRAINING_FEC = 6;</code>
     */
    enum_PAGE_TYPE_TRAINING_FEC(6),
    /**
     * <code>enum_PAGE_TYPE_COMPASS = 7;</code>
     */
    enum_PAGE_TYPE_COMPASS(7),
    /**
     * <code>enum_PAGE_TYPE_LAP = 8;</code>
     */
    enum_PAGE_TYPE_LAP(8),
    /**
     * <code>enum_PAGE_TYPE_ROADBOOK = 9;</code>
     */
    enum_PAGE_TYPE_ROADBOOK(9),
    /**
     * <code>enum_PAGE_TYPE_CLIMB = 10;</code>
     */
    enum_PAGE_TYPE_CLIMB(10),
    /**
     * <code>enum_PAGE_TYPE_AIPARTNER = 11;</code>
     */
    enum_PAGE_TYPE_AIPARTNER(11),
    /**
     * <code>enum_PAGE_TYPE_SEGMENT = 12;</code>
     */
    enum_PAGE_TYPE_SEGMENT(12),
    /**
     * <code>enum_PAGE_TYPE_FITNESS = 13;</code>
     */
    enum_PAGE_TYPE_FITNESS(13),
    /**
     * <code>enum_PAGE_TYPE_CLIMB_MAP = 14;</code>
     */
    enum_PAGE_TYPE_CLIMB_MAP(14),
    /**
     * <code>enum_PAGE_TYPE_GROUP_RIDE_INFOR = 15;</code>
     */
    enum_PAGE_TYPE_GROUP_RIDE_INFOR(15),
    /**
     * <code>enum_PAGE_TYPE_MUSIC = 16;</code>
     */
    enum_PAGE_TYPE_MUSIC(16),
    /**
     * <code>enum_PAGE_TYPE_CAMERA = 17;</code>
     */
    enum_PAGE_TYPE_CAMERA(17),
    ;

    /**
     * <code>enum_PAGE_TYPE_INVALID = 0;</code>
     */
    public static final int enum_PAGE_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_PAGE_TYPE_DATA = 1;</code>
     */
    public static final int enum_PAGE_TYPE_DATA_VALUE = 1;
    /**
     * <code>enum_PAGE_TYPE_ELEVATION = 2;</code>
     */
    public static final int enum_PAGE_TYPE_ELEVATION_VALUE = 2;
    /**
     * <code>enum_PAGE_TYPE_MAP = 3;</code>
     */
    public static final int enum_PAGE_TYPE_MAP_VALUE = 3;
    /**
     * <code>enum_PAGE_TYPE_AREA = 4;</code>
     */
    public static final int enum_PAGE_TYPE_AREA_VALUE = 4;
    /**
     * <code>enum_PAGE_TYPE_TRAINING_COURSE = 5;</code>
     */
    public static final int enum_PAGE_TYPE_TRAINING_COURSE_VALUE = 5;
    /**
     * <code>enum_PAGE_TYPE_TRAINING_FEC = 6;</code>
     */
    public static final int enum_PAGE_TYPE_TRAINING_FEC_VALUE = 6;
    /**
     * <code>enum_PAGE_TYPE_COMPASS = 7;</code>
     */
    public static final int enum_PAGE_TYPE_COMPASS_VALUE = 7;
    /**
     * <code>enum_PAGE_TYPE_LAP = 8;</code>
     */
    public static final int enum_PAGE_TYPE_LAP_VALUE = 8;
    /**
     * <code>enum_PAGE_TYPE_ROADBOOK = 9;</code>
     */
    public static final int enum_PAGE_TYPE_ROADBOOK_VALUE = 9;
    /**
     * <code>enum_PAGE_TYPE_CLIMB = 10;</code>
     */
    public static final int enum_PAGE_TYPE_CLIMB_VALUE = 10;
    /**
     * <code>enum_PAGE_TYPE_AIPARTNER = 11;</code>
     */
    public static final int enum_PAGE_TYPE_AIPARTNER_VALUE = 11;
    /**
     * <code>enum_PAGE_TYPE_SEGMENT = 12;</code>
     */
    public static final int enum_PAGE_TYPE_SEGMENT_VALUE = 12;
    /**
     * <code>enum_PAGE_TYPE_FITNESS = 13;</code>
     */
    public static final int enum_PAGE_TYPE_FITNESS_VALUE = 13;
    /**
     * <code>enum_PAGE_TYPE_CLIMB_MAP = 14;</code>
     */
    public static final int enum_PAGE_TYPE_CLIMB_MAP_VALUE = 14;
    /**
     * <code>enum_PAGE_TYPE_GROUP_RIDE_INFOR = 15;</code>
     */
    public static final int enum_PAGE_TYPE_GROUP_RIDE_INFOR_VALUE = 15;
    /**
     * <code>enum_PAGE_TYPE_MUSIC = 16;</code>
     */
    public static final int enum_PAGE_TYPE_MUSIC_VALUE = 16;
    /**
     * <code>enum_PAGE_TYPE_CAMERA = 17;</code>
     */
    public static final int enum_PAGE_TYPE_CAMERA_VALUE = 17;


    @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 PAGE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static PAGE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_PAGE_TYPE_INVALID;
        case 1: return enum_PAGE_TYPE_DATA;
        case 2: return enum_PAGE_TYPE_ELEVATION;
        case 3: return enum_PAGE_TYPE_MAP;
        case 4: return enum_PAGE_TYPE_AREA;
        case 5: return enum_PAGE_TYPE_TRAINING_COURSE;
        case 6: return enum_PAGE_TYPE_TRAINING_FEC;
        case 7: return enum_PAGE_TYPE_COMPASS;
        case 8: return enum_PAGE_TYPE_LAP;
        case 9: return enum_PAGE_TYPE_ROADBOOK;
        case 10: return enum_PAGE_TYPE_CLIMB;
        case 11: return enum_PAGE_TYPE_AIPARTNER;
        case 12: return enum_PAGE_TYPE_SEGMENT;
        case 13: return enum_PAGE_TYPE_FITNESS;
        case 14: return enum_PAGE_TYPE_CLIMB_MAP;
        case 15: return enum_PAGE_TYPE_GROUP_RIDE_INFOR;
        case 16: return enum_PAGE_TYPE_MUSIC;
        case 17: return enum_PAGE_TYPE_CAMERA;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:PAGE_TYPE)
  }

  /**
   * Protobuf enum {@code LCD_TYPE}
   */
  public enum LCD_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>INVALID = 0;</code>
     */
    INVALID(0),
    /**
     * <code>PIXEL_LCD = 1;</code>
     */
    PIXEL_LCD(1),
    /**
     * <code>SECTION_LCD = 2;</code>
     */
    SECTION_LCD(2),
    ;

    /**
     * <code>INVALID = 0;</code>
     */
    public static final int INVALID_VALUE = 0;
    /**
     * <code>PIXEL_LCD = 1;</code>
     */
    public static final int PIXEL_LCD_VALUE = 1;
    /**
     * <code>SECTION_LCD = 2;</code>
     */
    public static final int SECTION_LCD_VALUE = 2;


    @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 LCD_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static LCD_TYPE forNumber(int value) {
      switch (value) {
        case 0: return INVALID;
        case 1: return PIXEL_LCD;
        case 2: return SECTION_LCD;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:LCD_TYPE)
  }

  /**
   * Protobuf enum {@code LANGUAGE_TYPE}
   */
  public enum LANGUAGE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_LANGUAGE_TYPE_INVALID = 0;</code>
     */
    enum_LANGUAGE_TYPE_INVALID(0),
    /**
     * <code>enum_LANGUAGE_TYPE_ENGLISH = 1;</code>
     */
    enum_LANGUAGE_TYPE_ENGLISH(1),
    /**
     * <code>enum_LANGUAGE_TYPE_SPANISH = 2;</code>
     */
    enum_LANGUAGE_TYPE_SPANISH(2),
    /**
     * <code>enum_LANGUAGE_TYPE_FRENCH = 3;</code>
     */
    enum_LANGUAGE_TYPE_FRENCH(3),
    /**
     * <code>enum_LANGUAGE_TYPE_GERMAN = 4;</code>
     */
    enum_LANGUAGE_TYPE_GERMAN(4),
    /**
     * <code>enum_LANGUAGE_TYPE_JAPANESE = 5;</code>
     */
    enum_LANGUAGE_TYPE_JAPANESE(5),
    /**
     * <code>enum_LANGUAGE_TYPE_ITALIAN = 6;</code>
     */
    enum_LANGUAGE_TYPE_ITALIAN(6),
    /**
     * <code>enum_LANGUAGE_TYPE_PORTUGUESE = 7;</code>
     */
    enum_LANGUAGE_TYPE_PORTUGUESE(7),
    /**
     * <code>enum_LANGUAGE_TYPE_KOREAN = 8;</code>
     */
    enum_LANGUAGE_TYPE_KOREAN(8),
    /**
     * <code>enum_LANGUAGE_TYPE_CHINESE = 9;</code>
     */
    enum_LANGUAGE_TYPE_CHINESE(9),
    /**
     * <code>enum_LANGUAGE_TYPE_TAIWANESE = 10;</code>
     */
    enum_LANGUAGE_TYPE_TAIWANESE(10),
    /**
     * <code>enum_LANGUAGE_TYPE_POLISH = 11;</code>
     */
    enum_LANGUAGE_TYPE_POLISH(11),
    /**
     * <code>enum_LANGUAGE_TYPE_CROATIAN = 12;</code>
     */
    enum_LANGUAGE_TYPE_CROATIAN(12),
    /**
     * <code>enum_LANGUAGE_TYPE_CZECH = 13;</code>
     */
    enum_LANGUAGE_TYPE_CZECH(13),
    /**
     * <code>enum_LANGUAGE_TYPE_DANISH = 14;</code>
     */
    enum_LANGUAGE_TYPE_DANISH(14),
    /**
     * <code>enum_LANGUAGE_TYPE_DUTCH = 15;</code>
     */
    enum_LANGUAGE_TYPE_DUTCH(15),
    /**
     * <code>enum_LANGUAGE_TYPE_FINNISH = 16;</code>
     */
    enum_LANGUAGE_TYPE_FINNISH(16),
    /**
     * <code>enum_LANGUAGE_TYPE_GREEK = 17;</code>
     */
    enum_LANGUAGE_TYPE_GREEK(17),
    /**
     * <code>enum_LANGUAGE_TYPE_HUNGARIAN = 18;</code>
     */
    enum_LANGUAGE_TYPE_HUNGARIAN(18),
    /**
     * <code>enum_LANGUAGE_TYPE_NORWEGIAN = 19;</code>
     */
    enum_LANGUAGE_TYPE_NORWEGIAN(19),
    /**
     * <code>enum_LANGUAGE_TYPE_SLOVAKIAN = 20;</code>
     */
    enum_LANGUAGE_TYPE_SLOVAKIAN(20),
    /**
     * <code>enum_LANGUAGE_TYPE_SLOVENIAN = 21;</code>
     */
    enum_LANGUAGE_TYPE_SLOVENIAN(21),
    /**
     * <code>enum_LANGUAGE_TYPE_SWEDISH = 22;</code>
     */
    enum_LANGUAGE_TYPE_SWEDISH(22),
    /**
     * <code>enum_LANGUAGE_TYPE_RUSSIAN = 23;</code>
     */
    enum_LANGUAGE_TYPE_RUSSIAN(23),
    /**
     * <code>enum_LANGUAGE_TYPE_TURKISH = 24;</code>
     */
    enum_LANGUAGE_TYPE_TURKISH(24),
    /**
     * <code>enum_LANGUAGE_TYPE_LATVIAN = 25;</code>
     */
    enum_LANGUAGE_TYPE_LATVIAN(25),
    /**
     * <code>enum_LANGUAGE_TYPE_UKRAINIAN = 26;</code>
     */
    enum_LANGUAGE_TYPE_UKRAINIAN(26),
    /**
     * <code>enum_LANGUAGE_TYPE_ARABIC = 27;</code>
     */
    enum_LANGUAGE_TYPE_ARABIC(27),
    /**
     * <code>enum_LANGUAGE_TYPE_FARSI = 28;</code>
     */
    enum_LANGUAGE_TYPE_FARSI(28),
    /**
     * <code>enum_LANGUAGE_TYPE_BULGARIAN = 29;</code>
     */
    enum_LANGUAGE_TYPE_BULGARIAN(29),
    /**
     * <code>enum_LANGUAGE_TYPE_ROMANIAN = 30;</code>
     */
    enum_LANGUAGE_TYPE_ROMANIAN(30),
    /**
     * <code>enum_LANGUAGE_TYPE_THAI = 31;</code>
     */
    enum_LANGUAGE_TYPE_THAI(31),
    /**
     * <code>enum_LANGUAGE_TYPE_HEBREW = 32;</code>
     */
    enum_LANGUAGE_TYPE_HEBREW(32),
    /**
     * <code>enum_LANGUAGE_TYPE_BRAZILIAN_PORTUGUESE = 33;</code>
     */
    enum_LANGUAGE_TYPE_BRAZILIAN_PORTUGUESE(33),
    /**
     * <code>enum_LANGUAGE_TYPE_INDONESIAN = 34;</code>
     */
    enum_LANGUAGE_TYPE_INDONESIAN(34),
    /**
     * <code>enum_LANGUAGE_TYPE_MALAYSIAN = 35;</code>
     */
    enum_LANGUAGE_TYPE_MALAYSIAN(35),
    /**
     * <code>enum_LANGUAGE_TYPE_VIETNAMESE = 36;</code>
     */
    enum_LANGUAGE_TYPE_VIETNAMESE(36),
    /**
     * <code>enum_LANGUAGE_TYPE_BURMESE = 37;</code>
     */
    enum_LANGUAGE_TYPE_BURMESE(37),
    /**
     * <code>enum_LANGUAGE_TYPE_MONGOLIAN = 38;</code>
     */
    enum_LANGUAGE_TYPE_MONGOLIAN(38),
    /**
     * <code>enum_LANGUAGE_TYPE_ALL = 100;</code>
     */
    enum_LANGUAGE_TYPE_ALL(100),
    /**
     * <code>enum_LANGUAGE_TYPE_CUSTOM = 254;</code>
     */
    enum_LANGUAGE_TYPE_CUSTOM(254),
    ;

    /**
     * <code>enum_LANGUAGE_TYPE_INVALID = 0;</code>
     */
    public static final int enum_LANGUAGE_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_LANGUAGE_TYPE_ENGLISH = 1;</code>
     */
    public static final int enum_LANGUAGE_TYPE_ENGLISH_VALUE = 1;
    /**
     * <code>enum_LANGUAGE_TYPE_SPANISH = 2;</code>
     */
    public static final int enum_LANGUAGE_TYPE_SPANISH_VALUE = 2;
    /**
     * <code>enum_LANGUAGE_TYPE_FRENCH = 3;</code>
     */
    public static final int enum_LANGUAGE_TYPE_FRENCH_VALUE = 3;
    /**
     * <code>enum_LANGUAGE_TYPE_GERMAN = 4;</code>
     */
    public static final int enum_LANGUAGE_TYPE_GERMAN_VALUE = 4;
    /**
     * <code>enum_LANGUAGE_TYPE_JAPANESE = 5;</code>
     */
    public static final int enum_LANGUAGE_TYPE_JAPANESE_VALUE = 5;
    /**
     * <code>enum_LANGUAGE_TYPE_ITALIAN = 6;</code>
     */
    public static final int enum_LANGUAGE_TYPE_ITALIAN_VALUE = 6;
    /**
     * <code>enum_LANGUAGE_TYPE_PORTUGUESE = 7;</code>
     */
    public static final int enum_LANGUAGE_TYPE_PORTUGUESE_VALUE = 7;
    /**
     * <code>enum_LANGUAGE_TYPE_KOREAN = 8;</code>
     */
    public static final int enum_LANGUAGE_TYPE_KOREAN_VALUE = 8;
    /**
     * <code>enum_LANGUAGE_TYPE_CHINESE = 9;</code>
     */
    public static final int enum_LANGUAGE_TYPE_CHINESE_VALUE = 9;
    /**
     * <code>enum_LANGUAGE_TYPE_TAIWANESE = 10;</code>
     */
    public static final int enum_LANGUAGE_TYPE_TAIWANESE_VALUE = 10;
    /**
     * <code>enum_LANGUAGE_TYPE_POLISH = 11;</code>
     */
    public static final int enum_LANGUAGE_TYPE_POLISH_VALUE = 11;
    /**
     * <code>enum_LANGUAGE_TYPE_CROATIAN = 12;</code>
     */
    public static final int enum_LANGUAGE_TYPE_CROATIAN_VALUE = 12;
    /**
     * <code>enum_LANGUAGE_TYPE_CZECH = 13;</code>
     */
    public static final int enum_LANGUAGE_TYPE_CZECH_VALUE = 13;
    /**
     * <code>enum_LANGUAGE_TYPE_DANISH = 14;</code>
     */
    public static final int enum_LANGUAGE_TYPE_DANISH_VALUE = 14;
    /**
     * <code>enum_LANGUAGE_TYPE_DUTCH = 15;</code>
     */
    public static final int enum_LANGUAGE_TYPE_DUTCH_VALUE = 15;
    /**
     * <code>enum_LANGUAGE_TYPE_FINNISH = 16;</code>
     */
    public static final int enum_LANGUAGE_TYPE_FINNISH_VALUE = 16;
    /**
     * <code>enum_LANGUAGE_TYPE_GREEK = 17;</code>
     */
    public static final int enum_LANGUAGE_TYPE_GREEK_VALUE = 17;
    /**
     * <code>enum_LANGUAGE_TYPE_HUNGARIAN = 18;</code>
     */
    public static final int enum_LANGUAGE_TYPE_HUNGARIAN_VALUE = 18;
    /**
     * <code>enum_LANGUAGE_TYPE_NORWEGIAN = 19;</code>
     */
    public static final int enum_LANGUAGE_TYPE_NORWEGIAN_VALUE = 19;
    /**
     * <code>enum_LANGUAGE_TYPE_SLOVAKIAN = 20;</code>
     */
    public static final int enum_LANGUAGE_TYPE_SLOVAKIAN_VALUE = 20;
    /**
     * <code>enum_LANGUAGE_TYPE_SLOVENIAN = 21;</code>
     */
    public static final int enum_LANGUAGE_TYPE_SLOVENIAN_VALUE = 21;
    /**
     * <code>enum_LANGUAGE_TYPE_SWEDISH = 22;</code>
     */
    public static final int enum_LANGUAGE_TYPE_SWEDISH_VALUE = 22;
    /**
     * <code>enum_LANGUAGE_TYPE_RUSSIAN = 23;</code>
     */
    public static final int enum_LANGUAGE_TYPE_RUSSIAN_VALUE = 23;
    /**
     * <code>enum_LANGUAGE_TYPE_TURKISH = 24;</code>
     */
    public static final int enum_LANGUAGE_TYPE_TURKISH_VALUE = 24;
    /**
     * <code>enum_LANGUAGE_TYPE_LATVIAN = 25;</code>
     */
    public static final int enum_LANGUAGE_TYPE_LATVIAN_VALUE = 25;
    /**
     * <code>enum_LANGUAGE_TYPE_UKRAINIAN = 26;</code>
     */
    public static final int enum_LANGUAGE_TYPE_UKRAINIAN_VALUE = 26;
    /**
     * <code>enum_LANGUAGE_TYPE_ARABIC = 27;</code>
     */
    public static final int enum_LANGUAGE_TYPE_ARABIC_VALUE = 27;
    /**
     * <code>enum_LANGUAGE_TYPE_FARSI = 28;</code>
     */
    public static final int enum_LANGUAGE_TYPE_FARSI_VALUE = 28;
    /**
     * <code>enum_LANGUAGE_TYPE_BULGARIAN = 29;</code>
     */
    public static final int enum_LANGUAGE_TYPE_BULGARIAN_VALUE = 29;
    /**
     * <code>enum_LANGUAGE_TYPE_ROMANIAN = 30;</code>
     */
    public static final int enum_LANGUAGE_TYPE_ROMANIAN_VALUE = 30;
    /**
     * <code>enum_LANGUAGE_TYPE_THAI = 31;</code>
     */
    public static final int enum_LANGUAGE_TYPE_THAI_VALUE = 31;
    /**
     * <code>enum_LANGUAGE_TYPE_HEBREW = 32;</code>
     */
    public static final int enum_LANGUAGE_TYPE_HEBREW_VALUE = 32;
    /**
     * <code>enum_LANGUAGE_TYPE_BRAZILIAN_PORTUGUESE = 33;</code>
     */
    public static final int enum_LANGUAGE_TYPE_BRAZILIAN_PORTUGUESE_VALUE = 33;
    /**
     * <code>enum_LANGUAGE_TYPE_INDONESIAN = 34;</code>
     */
    public static final int enum_LANGUAGE_TYPE_INDONESIAN_VALUE = 34;
    /**
     * <code>enum_LANGUAGE_TYPE_MALAYSIAN = 35;</code>
     */
    public static final int enum_LANGUAGE_TYPE_MALAYSIAN_VALUE = 35;
    /**
     * <code>enum_LANGUAGE_TYPE_VIETNAMESE = 36;</code>
     */
    public static final int enum_LANGUAGE_TYPE_VIETNAMESE_VALUE = 36;
    /**
     * <code>enum_LANGUAGE_TYPE_BURMESE = 37;</code>
     */
    public static final int enum_LANGUAGE_TYPE_BURMESE_VALUE = 37;
    /**
     * <code>enum_LANGUAGE_TYPE_MONGOLIAN = 38;</code>
     */
    public static final int enum_LANGUAGE_TYPE_MONGOLIAN_VALUE = 38;
    /**
     * <code>enum_LANGUAGE_TYPE_ALL = 100;</code>
     */
    public static final int enum_LANGUAGE_TYPE_ALL_VALUE = 100;
    /**
     * <code>enum_LANGUAGE_TYPE_CUSTOM = 254;</code>
     */
    public static final int enum_LANGUAGE_TYPE_CUSTOM_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 LANGUAGE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static LANGUAGE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_LANGUAGE_TYPE_INVALID;
        case 1: return enum_LANGUAGE_TYPE_ENGLISH;
        case 2: return enum_LANGUAGE_TYPE_SPANISH;
        case 3: return enum_LANGUAGE_TYPE_FRENCH;
        case 4: return enum_LANGUAGE_TYPE_GERMAN;
        case 5: return enum_LANGUAGE_TYPE_JAPANESE;
        case 6: return enum_LANGUAGE_TYPE_ITALIAN;
        case 7: return enum_LANGUAGE_TYPE_PORTUGUESE;
        case 8: return enum_LANGUAGE_TYPE_KOREAN;
        case 9: return enum_LANGUAGE_TYPE_CHINESE;
        case 10: return enum_LANGUAGE_TYPE_TAIWANESE;
        case 11: return enum_LANGUAGE_TYPE_POLISH;
        case 12: return enum_LANGUAGE_TYPE_CROATIAN;
        case 13: return enum_LANGUAGE_TYPE_CZECH;
        case 14: return enum_LANGUAGE_TYPE_DANISH;
        case 15: return enum_LANGUAGE_TYPE_DUTCH;
        case 16: return enum_LANGUAGE_TYPE_FINNISH;
        case 17: return enum_LANGUAGE_TYPE_GREEK;
        case 18: return enum_LANGUAGE_TYPE_HUNGARIAN;
        case 19: return enum_LANGUAGE_TYPE_NORWEGIAN;
        case 20: return enum_LANGUAGE_TYPE_SLOVAKIAN;
        case 21: return enum_LANGUAGE_TYPE_SLOVENIAN;
        case 22: return enum_LANGUAGE_TYPE_SWEDISH;
        case 23: return enum_LANGUAGE_TYPE_RUSSIAN;
        case 24: return enum_LANGUAGE_TYPE_TURKISH;
        case 25: return enum_LANGUAGE_TYPE_LATVIAN;
        case 26: return enum_LANGUAGE_TYPE_UKRAINIAN;
        case 27: return enum_LANGUAGE_TYPE_ARABIC;
        case 28: return enum_LANGUAGE_TYPE_FARSI;
        case 29: return enum_LANGUAGE_TYPE_BULGARIAN;
        case 30: return enum_LANGUAGE_TYPE_ROMANIAN;
        case 31: return enum_LANGUAGE_TYPE_THAI;
        case 32: return enum_LANGUAGE_TYPE_HEBREW;
        case 33: return enum_LANGUAGE_TYPE_BRAZILIAN_PORTUGUESE;
        case 34: return enum_LANGUAGE_TYPE_INDONESIAN;
        case 35: return enum_LANGUAGE_TYPE_MALAYSIAN;
        case 36: return enum_LANGUAGE_TYPE_VIETNAMESE;
        case 37: return enum_LANGUAGE_TYPE_BURMESE;
        case 38: return enum_LANGUAGE_TYPE_MONGOLIAN;
        case 100: return enum_LANGUAGE_TYPE_ALL;
        case 254: return enum_LANGUAGE_TYPE_CUSTOM;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:LANGUAGE_TYPE)
  }

  /**
   * Protobuf enum {@code DATA_TYPE}
   */
  public enum DATA_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_DATA_TYPE_INVALID = 0;</code>
     */
    enum_DATA_TYPE_INVALID(0),
    /**
     * <code>enum_DATA_TYPE_PWR_WITH_ZERO = 1;</code>
     */
    enum_DATA_TYPE_PWR_WITH_ZERO(1),
    /**
     * <code>enum_DATA_TYPE_CAD_WITH_ZERO = 2;</code>
     */
    enum_DATA_TYPE_CAD_WITH_ZERO(2),
    ;

    /**
     * <code>enum_DATA_TYPE_INVALID = 0;</code>
     */
    public static final int enum_DATA_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_DATA_TYPE_PWR_WITH_ZERO = 1;</code>
     */
    public static final int enum_DATA_TYPE_PWR_WITH_ZERO_VALUE = 1;
    /**
     * <code>enum_DATA_TYPE_CAD_WITH_ZERO = 2;</code>
     */
    public static final int enum_DATA_TYPE_CAD_WITH_ZERO_VALUE = 2;


    @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 DATA_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static DATA_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_DATA_TYPE_INVALID;
        case 1: return enum_DATA_TYPE_PWR_WITH_ZERO;
        case 2: return enum_DATA_TYPE_CAD_WITH_ZERO;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:DATA_TYPE)
  }

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

    /**
     * <code>optional uint32 sound_type = 1;</code>
     * @return Whether the soundType field is set.
     */
    boolean hasSoundType();
    /**
     * <code>optional uint32 sound_type = 1;</code>
     * @return The soundType.
     */
    int getSoundType();

    /**
     * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
     * @return Whether the soundScene field is set.
     */
    boolean hasSoundScene();
    /**
     * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
     * @return The soundScene.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE getSoundScene();

    /**
     * <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 sound_set_msg}
   */
  public  static final class sound_set_msg extends
      com.google.protobuf.GeneratedMessageLite<
          sound_set_msg, sound_set_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:sound_set_msg)
      sound_set_msgOrBuilder {
    private sound_set_msg() {
    }
    private int bitField0_;
    public static final int SOUND_TYPE_FIELD_NUMBER = 1;
    private int soundType_;
    /**
     * <code>optional uint32 sound_type = 1;</code>
     * @return Whether the soundType field is set.
     */
    @java.lang.Override
    public boolean hasSoundType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 sound_type = 1;</code>
     * @return The soundType.
     */
    @java.lang.Override
    public int getSoundType() {
      return soundType_;
    }
    /**
     * <code>optional uint32 sound_type = 1;</code>
     * @param value The soundType to set.
     */
    private void setSoundType(int value) {
      bitField0_ |= 0x00000001;
      soundType_ = value;
    }
    /**
     * <code>optional uint32 sound_type = 1;</code>
     */
    private void clearSoundType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      soundType_ = 0;
    }

    public static final int SOUND_SCENE_FIELD_NUMBER = 2;
    private int soundScene_;
    /**
     * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
     * @return Whether the soundScene field is set.
     */
    @java.lang.Override
    public boolean hasSoundScene() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
     * @return The soundScene.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE getSoundScene() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE.forNumber(soundScene_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE.enum_SOUND_SCENE_TYPE_INVALID : result;
    }
    /**
     * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
     * @param value The soundScene to set.
     */
    private void setSoundScene(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE value) {
      soundScene_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
     */
    private void clearSoundScene() {
      bitField0_ = (bitField0_ & ~0x00000002);
      soundScene_ = 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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_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.Config.sound_set_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.Config.sound_set_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.Config.sound_set_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional uint32 sound_type = 1;</code>
       * @return Whether the soundType field is set.
       */
      @java.lang.Override
      public boolean hasSoundType() {
        return instance.hasSoundType();
      }
      /**
       * <code>optional uint32 sound_type = 1;</code>
       * @return The soundType.
       */
      @java.lang.Override
      public int getSoundType() {
        return instance.getSoundType();
      }
      /**
       * <code>optional uint32 sound_type = 1;</code>
       * @param value The soundType to set.
       * @return This builder for chaining.
       */
      public Builder setSoundType(int value) {
        copyOnWrite();
        instance.setSoundType(value);
        return this;
      }
      /**
       * <code>optional uint32 sound_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSoundType() {
        copyOnWrite();
        instance.clearSoundType();
        return this;
      }

      /**
       * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
       * @return Whether the soundScene field is set.
       */
      @java.lang.Override
      public boolean hasSoundScene() {
        return instance.hasSoundScene();
      }
      /**
       * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
       * @return The soundScene.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE getSoundScene() {
        return instance.getSoundScene();
      }
      /**
       * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
       * @param value The enum numeric value on the wire for soundScene to set.
       * @return This builder for chaining.
       */
      public Builder setSoundScene(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE value) {
        copyOnWrite();
        instance.setSoundScene(value);
        return this;
      }
      /**
       * <code>optional .SOUND_SCENE_TYPE sound_scene = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSoundScene() {
        copyOnWrite();
        instance.clearSoundScene();
        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:sound_set_msg)
    }
    @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.Config.sound_set_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "soundType_",
              "soundScene_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.SOUND_SCENE_TYPE.internalGetVerifier(),
              "status_",
            };
            java.lang.String info =
                "\u0001\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100c\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.Config.sound_set_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg>(
                        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:sound_set_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg DEFAULT_INSTANCE;
    static {
      sound_set_msg defaultInstance = new sound_set_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        sound_set_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional .KEY_TYPE key_type = 1;</code>
     * @return Whether the keyType field is set.
     */
    boolean hasKeyType();
    /**
     * <code>optional .KEY_TYPE key_type = 1;</code>
     * @return The keyType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE getKeyType();

    /**
     * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
     * @return Whether the keyFunctionType field is set.
     */
    boolean hasKeyFunctionType();
    /**
     * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
     * @return The keyFunctionType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE getKeyFunctionType();
  }
  /**
   * Protobuf type {@code key_set_msg}
   */
  public  static final class key_set_msg extends
      com.google.protobuf.GeneratedMessageLite<
          key_set_msg, key_set_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:key_set_msg)
      key_set_msgOrBuilder {
    private key_set_msg() {
    }
    private int bitField0_;
    public static final int KEY_TYPE_FIELD_NUMBER = 1;
    private int keyType_;
    /**
     * <code>optional .KEY_TYPE key_type = 1;</code>
     * @return Whether the keyType field is set.
     */
    @java.lang.Override
    public boolean hasKeyType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .KEY_TYPE key_type = 1;</code>
     * @return The keyType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE getKeyType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE.forNumber(keyType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE.enum_KEY_TYPE_INVALID : result;
    }
    /**
     * <code>optional .KEY_TYPE key_type = 1;</code>
     * @param value The keyType to set.
     */
    private void setKeyType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE value) {
      keyType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .KEY_TYPE key_type = 1;</code>
     */
    private void clearKeyType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      keyType_ = 0;
    }

    public static final int KEY_FUNCTION_TYPE_FIELD_NUMBER = 2;
    private int keyFunctionType_;
    /**
     * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
     * @return Whether the keyFunctionType field is set.
     */
    @java.lang.Override
    public boolean hasKeyFunctionType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
     * @return The keyFunctionType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE getKeyFunctionType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE.forNumber(keyFunctionType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE.enum_KEY_FUNCTION_TYPE_INVALID : result;
    }
    /**
     * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
     * @param value The keyFunctionType to set.
     */
    private void setKeyFunctionType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE value) {
      keyFunctionType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
     */
    private void clearKeyFunctionType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      keyFunctionType_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_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.Config.key_set_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.Config.key_set_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.Config.key_set_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.Config.key_set_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.Config.key_set_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.Config.key_set_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.Config.key_set_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.Config.key_set_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_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.Config.key_set_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.Config.key_set_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.Config.key_set_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional .KEY_TYPE key_type = 1;</code>
       * @return Whether the keyType field is set.
       */
      @java.lang.Override
      public boolean hasKeyType() {
        return instance.hasKeyType();
      }
      /**
       * <code>optional .KEY_TYPE key_type = 1;</code>
       * @return The keyType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE getKeyType() {
        return instance.getKeyType();
      }
      /**
       * <code>optional .KEY_TYPE key_type = 1;</code>
       * @param value The enum numeric value on the wire for keyType to set.
       * @return This builder for chaining.
       */
      public Builder setKeyType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE value) {
        copyOnWrite();
        instance.setKeyType(value);
        return this;
      }
      /**
       * <code>optional .KEY_TYPE key_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeyType() {
        copyOnWrite();
        instance.clearKeyType();
        return this;
      }

      /**
       * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
       * @return Whether the keyFunctionType field is set.
       */
      @java.lang.Override
      public boolean hasKeyFunctionType() {
        return instance.hasKeyFunctionType();
      }
      /**
       * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
       * @return The keyFunctionType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE getKeyFunctionType() {
        return instance.getKeyFunctionType();
      }
      /**
       * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
       * @param value The enum numeric value on the wire for keyFunctionType to set.
       * @return This builder for chaining.
       */
      public Builder setKeyFunctionType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE value) {
        copyOnWrite();
        instance.setKeyFunctionType(value);
        return this;
      }
      /**
       * <code>optional .KEY_FUNCTION_TYPE key_function_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeyFunctionType() {
        copyOnWrite();
        instance.clearKeyFunctionType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:key_set_msg)
    }
    @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.Config.key_set_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "keyType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_TYPE.internalGetVerifier(),
              "keyFunctionType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.KEY_FUNCTION_TYPE.internalGetVerifier(),
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100c\u0000\u0002" +
                "\u100c\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.Config.key_set_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg>(
                        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:key_set_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg DEFAULT_INSTANCE;
    static {
      key_set_msg defaultInstance = new key_set_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        key_set_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional .AUTO_TYPE auto_type = 1;</code>
     * @return Whether the autoType field is set.
     */
    boolean hasAutoType();
    /**
     * <code>optional .AUTO_TYPE auto_type = 1;</code>
     * @return The autoType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE getAutoType();

    /**
     * <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();

    /**
     * <code>optional uint32 param1 = 3;</code>
     * @return Whether the param1 field is set.
     */
    boolean hasParam1();
    /**
     * <code>optional uint32 param1 = 3;</code>
     * @return The param1.
     */
    int getParam1();
  }
  /**
   * Protobuf type {@code auto_set_msg}
   */
  public  static final class auto_set_msg extends
      com.google.protobuf.GeneratedMessageLite<
          auto_set_msg, auto_set_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:auto_set_msg)
      auto_set_msgOrBuilder {
    private auto_set_msg() {
    }
    private int bitField0_;
    public static final int AUTO_TYPE_FIELD_NUMBER = 1;
    private int autoType_;
    /**
     * <code>optional .AUTO_TYPE auto_type = 1;</code>
     * @return Whether the autoType field is set.
     */
    @java.lang.Override
    public boolean hasAutoType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .AUTO_TYPE auto_type = 1;</code>
     * @return The autoType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE getAutoType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE.forNumber(autoType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE.enum_AUTO_TYPE_INVALID : result;
    }
    /**
     * <code>optional .AUTO_TYPE auto_type = 1;</code>
     * @param value The autoType to set.
     */
    private void setAutoType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE value) {
      autoType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .AUTO_TYPE auto_type = 1;</code>
     */
    private void clearAutoType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      autoType_ = 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 final int PARAM1_FIELD_NUMBER = 3;
    private int param1_;
    /**
     * <code>optional uint32 param1 = 3;</code>
     * @return Whether the param1 field is set.
     */
    @java.lang.Override
    public boolean hasParam1() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 param1 = 3;</code>
     * @return The param1.
     */
    @java.lang.Override
    public int getParam1() {
      return param1_;
    }
    /**
     * <code>optional uint32 param1 = 3;</code>
     * @param value The param1 to set.
     */
    private void setParam1(int value) {
      bitField0_ |= 0x00000004;
      param1_ = value;
    }
    /**
     * <code>optional uint32 param1 = 3;</code>
     */
    private void clearParam1() {
      bitField0_ = (bitField0_ & ~0x00000004);
      param1_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_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.Config.auto_set_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.Config.auto_set_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.Config.auto_set_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.Config.auto_set_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.Config.auto_set_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.Config.auto_set_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.Config.auto_set_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.Config.auto_set_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_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.Config.auto_set_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.Config.auto_set_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.Config.auto_set_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional .AUTO_TYPE auto_type = 1;</code>
       * @return Whether the autoType field is set.
       */
      @java.lang.Override
      public boolean hasAutoType() {
        return instance.hasAutoType();
      }
      /**
       * <code>optional .AUTO_TYPE auto_type = 1;</code>
       * @return The autoType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE getAutoType() {
        return instance.getAutoType();
      }
      /**
       * <code>optional .AUTO_TYPE auto_type = 1;</code>
       * @param value The enum numeric value on the wire for autoType to set.
       * @return This builder for chaining.
       */
      public Builder setAutoType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE value) {
        copyOnWrite();
        instance.setAutoType(value);
        return this;
      }
      /**
       * <code>optional .AUTO_TYPE auto_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoType() {
        copyOnWrite();
        instance.clearAutoType();
        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;
      }

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

      // @@protoc_insertion_point(builder_scope:auto_set_msg)
    }
    @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.Config.auto_set_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "autoType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.AUTO_TYPE.internalGetVerifier(),
              "status_",
              "param1_",
            };
            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.Config.auto_set_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg>(
                        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:auto_set_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg DEFAULT_INSTANCE;
    static {
      auto_set_msg defaultInstance = new auto_set_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        auto_set_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional .ALARM_SELECT select_type = 1;</code>
     * @return Whether the selectType field is set.
     */
    boolean hasSelectType();
    /**
     * <code>optional .ALARM_SELECT select_type = 1;</code>
     * @return The selectType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT getSelectType();

    /**
     * <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 alarm_select_info}
   */
  public  static final class alarm_select_info extends
      com.google.protobuf.GeneratedMessageLite<
          alarm_select_info, alarm_select_info.Builder> implements
      // @@protoc_insertion_point(message_implements:alarm_select_info)
      alarm_select_infoOrBuilder {
    private alarm_select_info() {
    }
    private int bitField0_;
    public static final int SELECT_TYPE_FIELD_NUMBER = 1;
    private int selectType_;
    /**
     * <code>optional .ALARM_SELECT select_type = 1;</code>
     * @return Whether the selectType field is set.
     */
    @java.lang.Override
    public boolean hasSelectType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .ALARM_SELECT select_type = 1;</code>
     * @return The selectType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT getSelectType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT.forNumber(selectType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT.ALARM_SELECT_INVALID : result;
    }
    /**
     * <code>optional .ALARM_SELECT select_type = 1;</code>
     * @param value The selectType to set.
     */
    private void setSelectType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT value) {
      selectType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .ALARM_SELECT select_type = 1;</code>
     */
    private void clearSelectType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      selectType_ = 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.Config.alarm_select_info 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.Config.alarm_select_info 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.Config.alarm_select_info 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.Config.alarm_select_info 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.Config.alarm_select_info parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info 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.Config.alarm_select_info 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.Config.alarm_select_info 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.Config.alarm_select_info parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info 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.Config.alarm_select_info 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.Config.alarm_select_info 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.Config.alarm_select_info prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional .ALARM_SELECT select_type = 1;</code>
       * @return Whether the selectType field is set.
       */
      @java.lang.Override
      public boolean hasSelectType() {
        return instance.hasSelectType();
      }
      /**
       * <code>optional .ALARM_SELECT select_type = 1;</code>
       * @return The selectType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT getSelectType() {
        return instance.getSelectType();
      }
      /**
       * <code>optional .ALARM_SELECT select_type = 1;</code>
       * @param value The enum numeric value on the wire for selectType to set.
       * @return This builder for chaining.
       */
      public Builder setSelectType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT value) {
        copyOnWrite();
        instance.setSelectType(value);
        return this;
      }
      /**
       * <code>optional .ALARM_SELECT select_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSelectType() {
        copyOnWrite();
        instance.clearSelectType();
        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:alarm_select_info)
    }
    @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.Config.alarm_select_info();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "selectType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT.internalGetVerifier(),
              "value_",
            };
            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.Config.alarm_select_info> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info>(
                        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:alarm_select_info)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info DEFAULT_INSTANCE;
    static {
      alarm_select_info defaultInstance = new alarm_select_info();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        alarm_select_info.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>required .ALARM_TYPE alarm_type = 1;</code>
     * @return Whether the alarmType field is set.
     */
    boolean hasAlarmType();
    /**
     * <code>required .ALARM_TYPE alarm_type = 1;</code>
     * @return The alarmType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE getAlarmType();

    /**
     * <code>optional uint32 value_max = 2;</code>
     * @return Whether the valueMax field is set.
     */
    boolean hasValueMax();
    /**
     * <code>optional uint32 value_max = 2;</code>
     * @return The valueMax.
     */
    int getValueMax();

    /**
     * <code>optional uint32 value_min = 3;</code>
     * @return Whether the valueMin field is set.
     */
    boolean hasValueMin();
    /**
     * <code>optional uint32 value_min = 3;</code>
     * @return The valueMin.
     */
    int getValueMin();

    /**
     * <code>required uint32 status = 4;</code>
     * @return Whether the status field is set.
     */
    boolean hasStatus();
    /**
     * <code>required uint32 status = 4;</code>
     * @return The status.
     */
    int getStatus();

    /**
     * <code>optional .ALARM_SELECT select_type = 5;</code>
     * @return Whether the selectType field is set.
     */
    boolean hasSelectType();
    /**
     * <code>optional .ALARM_SELECT select_type = 5;</code>
     * @return The selectType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT getSelectType();

    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info> 
        getSelectInfoList();
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info getSelectInfo(int index);
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    int getSelectInfoCount();
  }
  /**
   * Protobuf type {@code alarm_params_set_msg}
   */
  public  static final class alarm_params_set_msg extends
      com.google.protobuf.GeneratedMessageLite<
          alarm_params_set_msg, alarm_params_set_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:alarm_params_set_msg)
      alarm_params_set_msgOrBuilder {
    private alarm_params_set_msg() {
      selectInfo_ = emptyProtobufList();
    }
    private int bitField0_;
    public static final int ALARM_TYPE_FIELD_NUMBER = 1;
    private int alarmType_;
    /**
     * <code>required .ALARM_TYPE alarm_type = 1;</code>
     * @return Whether the alarmType field is set.
     */
    @java.lang.Override
    public boolean hasAlarmType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .ALARM_TYPE alarm_type = 1;</code>
     * @return The alarmType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE getAlarmType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE.forNumber(alarmType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE.ALARM_TYPE_INVALID : result;
    }
    /**
     * <code>required .ALARM_TYPE alarm_type = 1;</code>
     * @param value The alarmType to set.
     */
    private void setAlarmType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE value) {
      alarmType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>required .ALARM_TYPE alarm_type = 1;</code>
     */
    private void clearAlarmType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      alarmType_ = 0;
    }

    public static final int VALUE_MAX_FIELD_NUMBER = 2;
    private int valueMax_;
    /**
     * <code>optional uint32 value_max = 2;</code>
     * @return Whether the valueMax field is set.
     */
    @java.lang.Override
    public boolean hasValueMax() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 value_max = 2;</code>
     * @return The valueMax.
     */
    @java.lang.Override
    public int getValueMax() {
      return valueMax_;
    }
    /**
     * <code>optional uint32 value_max = 2;</code>
     * @param value The valueMax to set.
     */
    private void setValueMax(int value) {
      bitField0_ |= 0x00000002;
      valueMax_ = value;
    }
    /**
     * <code>optional uint32 value_max = 2;</code>
     */
    private void clearValueMax() {
      bitField0_ = (bitField0_ & ~0x00000002);
      valueMax_ = 0;
    }

    public static final int VALUE_MIN_FIELD_NUMBER = 3;
    private int valueMin_;
    /**
     * <code>optional uint32 value_min = 3;</code>
     * @return Whether the valueMin field is set.
     */
    @java.lang.Override
    public boolean hasValueMin() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 value_min = 3;</code>
     * @return The valueMin.
     */
    @java.lang.Override
    public int getValueMin() {
      return valueMin_;
    }
    /**
     * <code>optional uint32 value_min = 3;</code>
     * @param value The valueMin to set.
     */
    private void setValueMin(int value) {
      bitField0_ |= 0x00000004;
      valueMin_ = value;
    }
    /**
     * <code>optional uint32 value_min = 3;</code>
     */
    private void clearValueMin() {
      bitField0_ = (bitField0_ & ~0x00000004);
      valueMin_ = 0;
    }

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

    public static final int SELECT_TYPE_FIELD_NUMBER = 5;
    private int selectType_;
    /**
     * <code>optional .ALARM_SELECT select_type = 5;</code>
     * @return Whether the selectType field is set.
     */
    @java.lang.Override
    public boolean hasSelectType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .ALARM_SELECT select_type = 5;</code>
     * @return The selectType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT getSelectType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT.forNumber(selectType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT.ALARM_SELECT_INVALID : result;
    }
    /**
     * <code>optional .ALARM_SELECT select_type = 5;</code>
     * @param value The selectType to set.
     */
    private void setSelectType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT value) {
      selectType_ = value.getNumber();
      bitField0_ |= 0x00000010;
    }
    /**
     * <code>optional .ALARM_SELECT select_type = 5;</code>
     */
    private void clearSelectType() {
      bitField0_ = (bitField0_ & ~0x00000010);
      selectType_ = 0;
    }

    public static final int SELECT_INFO_FIELD_NUMBER = 6;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info> selectInfo_;
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info> getSelectInfoList() {
      return selectInfo_;
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_infoOrBuilder> 
        getSelectInfoOrBuilderList() {
      return selectInfo_;
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    @java.lang.Override
    public int getSelectInfoCount() {
      return selectInfo_.size();
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info getSelectInfo(int index) {
      return selectInfo_.get(index);
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_infoOrBuilder getSelectInfoOrBuilder(
        int index) {
      return selectInfo_.get(index);
    }
    private void ensureSelectInfoIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info> tmp = selectInfo_;
      if (!tmp.isModifiable()) {
        selectInfo_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    private void setSelectInfo(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info value) {
      value.getClass();
  ensureSelectInfoIsMutable();
      selectInfo_.set(index, value);
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    private void addSelectInfo(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info value) {
      value.getClass();
  ensureSelectInfoIsMutable();
      selectInfo_.add(value);
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    private void addSelectInfo(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info value) {
      value.getClass();
  ensureSelectInfoIsMutable();
      selectInfo_.add(index, value);
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    private void addAllSelectInfo(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info> values) {
      ensureSelectInfoIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, selectInfo_);
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    private void clearSelectInfo() {
      selectInfo_ = emptyProtobufList();
    }
    /**
     * <code>repeated .alarm_select_info select_info = 6;</code>
     */
    private void removeSelectInfo(int index) {
      ensureSelectInfoIsMutable();
      selectInfo_.remove(index);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_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.Config.alarm_params_set_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>required .ALARM_TYPE alarm_type = 1;</code>
       * @return Whether the alarmType field is set.
       */
      @java.lang.Override
      public boolean hasAlarmType() {
        return instance.hasAlarmType();
      }
      /**
       * <code>required .ALARM_TYPE alarm_type = 1;</code>
       * @return The alarmType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE getAlarmType() {
        return instance.getAlarmType();
      }
      /**
       * <code>required .ALARM_TYPE alarm_type = 1;</code>
       * @param value The enum numeric value on the wire for alarmType to set.
       * @return This builder for chaining.
       */
      public Builder setAlarmType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE value) {
        copyOnWrite();
        instance.setAlarmType(value);
        return this;
      }
      /**
       * <code>required .ALARM_TYPE alarm_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmType() {
        copyOnWrite();
        instance.clearAlarmType();
        return this;
      }

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

      /**
       * <code>optional uint32 value_min = 3;</code>
       * @return Whether the valueMin field is set.
       */
      @java.lang.Override
      public boolean hasValueMin() {
        return instance.hasValueMin();
      }
      /**
       * <code>optional uint32 value_min = 3;</code>
       * @return The valueMin.
       */
      @java.lang.Override
      public int getValueMin() {
        return instance.getValueMin();
      }
      /**
       * <code>optional uint32 value_min = 3;</code>
       * @param value The valueMin to set.
       * @return This builder for chaining.
       */
      public Builder setValueMin(int value) {
        copyOnWrite();
        instance.setValueMin(value);
        return this;
      }
      /**
       * <code>optional uint32 value_min = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueMin() {
        copyOnWrite();
        instance.clearValueMin();
        return this;
      }

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

      /**
       * <code>optional .ALARM_SELECT select_type = 5;</code>
       * @return Whether the selectType field is set.
       */
      @java.lang.Override
      public boolean hasSelectType() {
        return instance.hasSelectType();
      }
      /**
       * <code>optional .ALARM_SELECT select_type = 5;</code>
       * @return The selectType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT getSelectType() {
        return instance.getSelectType();
      }
      /**
       * <code>optional .ALARM_SELECT select_type = 5;</code>
       * @param value The enum numeric value on the wire for selectType to set.
       * @return This builder for chaining.
       */
      public Builder setSelectType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT value) {
        copyOnWrite();
        instance.setSelectType(value);
        return this;
      }
      /**
       * <code>optional .ALARM_SELECT select_type = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSelectType() {
        copyOnWrite();
        instance.clearSelectType();
        return this;
      }

      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info> getSelectInfoList() {
        return java.util.Collections.unmodifiableList(
            instance.getSelectInfoList());
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      @java.lang.Override
      public int getSelectInfoCount() {
        return instance.getSelectInfoCount();
      }/**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info getSelectInfo(int index) {
        return instance.getSelectInfo(index);
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder setSelectInfo(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info value) {
        copyOnWrite();
        instance.setSelectInfo(index, value);
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder setSelectInfo(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info.Builder builderForValue) {
        copyOnWrite();
        instance.setSelectInfo(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder addSelectInfo(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info value) {
        copyOnWrite();
        instance.addSelectInfo(value);
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder addSelectInfo(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info value) {
        copyOnWrite();
        instance.addSelectInfo(index, value);
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder addSelectInfo(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info.Builder builderForValue) {
        copyOnWrite();
        instance.addSelectInfo(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder addSelectInfo(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info.Builder builderForValue) {
        copyOnWrite();
        instance.addSelectInfo(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder addAllSelectInfo(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info> values) {
        copyOnWrite();
        instance.addAllSelectInfo(values);
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder clearSelectInfo() {
        copyOnWrite();
        instance.clearSelectInfo();
        return this;
      }
      /**
       * <code>repeated .alarm_select_info select_info = 6;</code>
       */
      public Builder removeSelectInfo(int index) {
        copyOnWrite();
        instance.removeSelectInfo(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:alarm_params_set_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.Config.alarm_params_set_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "alarmType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_TYPE.internalGetVerifier(),
              "valueMax_",
              "valueMin_",
              "status_",
              "selectType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.ALARM_SELECT.internalGetVerifier(),
              "selectInfo_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_select_info.class,
            };
            java.lang.String info =
                "\u0001\u0006\u0000\u0001\u0001\u0006\u0006\u0000\u0001\u0002\u0001\u150c\u0000\u0002" +
                "\u100b\u0001\u0003\u100b\u0002\u0004\u150b\u0003\u0005\u100c\u0004\u0006\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.Config.alarm_params_set_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_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:alarm_params_set_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg DEFAULT_INSTANCE;
    static {
      alarm_params_set_msg defaultInstance = new alarm_params_set_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        alarm_params_set_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg> 
        getSetMsgList();
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg getSetMsg(int index);
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    int getSetMsgCount();

    /**
     * <code>optional uint32 alarm_interval_time = 2;</code>
     * @return Whether the alarmIntervalTime field is set.
     */
    boolean hasAlarmIntervalTime();
    /**
     * <code>optional uint32 alarm_interval_time = 2;</code>
     * @return The alarmIntervalTime.
     */
    int getAlarmIntervalTime();
  }
  /**
   * Protobuf type {@code alarm_msg}
   */
  public  static final class alarm_msg extends
      com.google.protobuf.GeneratedMessageLite<
          alarm_msg, alarm_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:alarm_msg)
      alarm_msgOrBuilder {
    private alarm_msg() {
      setMsg_ = emptyProtobufList();
    }
    private int bitField0_;
    public static final int SET_MSG_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg> setMsg_;
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg> getSetMsgList() {
      return setMsg_;
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msgOrBuilder> 
        getSetMsgOrBuilderList() {
      return setMsg_;
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    @java.lang.Override
    public int getSetMsgCount() {
      return setMsg_.size();
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg getSetMsg(int index) {
      return setMsg_.get(index);
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msgOrBuilder getSetMsgOrBuilder(
        int index) {
      return setMsg_.get(index);
    }
    private void ensureSetMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg> tmp = setMsg_;
      if (!tmp.isModifiable()) {
        setMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    private void setSetMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg value) {
      value.getClass();
  ensureSetMsgIsMutable();
      setMsg_.set(index, value);
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    private void addSetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg value) {
      value.getClass();
  ensureSetMsgIsMutable();
      setMsg_.add(value);
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    private void addSetMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg value) {
      value.getClass();
  ensureSetMsgIsMutable();
      setMsg_.add(index, value);
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    private void addAllSetMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg> values) {
      ensureSetMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, setMsg_);
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    private void clearSetMsg() {
      setMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
     */
    private void removeSetMsg(int index) {
      ensureSetMsgIsMutable();
      setMsg_.remove(index);
    }

    public static final int ALARM_INTERVAL_TIME_FIELD_NUMBER = 2;
    private int alarmIntervalTime_;
    /**
     * <code>optional uint32 alarm_interval_time = 2;</code>
     * @return Whether the alarmIntervalTime field is set.
     */
    @java.lang.Override
    public boolean hasAlarmIntervalTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 alarm_interval_time = 2;</code>
     * @return The alarmIntervalTime.
     */
    @java.lang.Override
    public int getAlarmIntervalTime() {
      return alarmIntervalTime_;
    }
    /**
     * <code>optional uint32 alarm_interval_time = 2;</code>
     * @param value The alarmIntervalTime to set.
     */
    private void setAlarmIntervalTime(int value) {
      bitField0_ |= 0x00000001;
      alarmIntervalTime_ = value;
    }
    /**
     * <code>optional uint32 alarm_interval_time = 2;</code>
     */
    private void clearAlarmIntervalTime() {
      bitField0_ = (bitField0_ & ~0x00000001);
      alarmIntervalTime_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_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.Config.alarm_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.Config.alarm_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.Config.alarm_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.Config.alarm_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.Config.alarm_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.Config.alarm_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.Config.alarm_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.Config.alarm_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_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.Config.alarm_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.Config.alarm_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.Config.alarm_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg> getSetMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getSetMsgList());
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      @java.lang.Override
      public int getSetMsgCount() {
        return instance.getSetMsgCount();
      }/**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg getSetMsg(int index) {
        return instance.getSetMsg(index);
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder setSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg value) {
        copyOnWrite();
        instance.setSetMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder setSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setSetMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder addSetMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg value) {
        copyOnWrite();
        instance.addSetMsg(value);
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder addSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg value) {
        copyOnWrite();
        instance.addSetMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder addSetMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addSetMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder addSetMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addSetMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder addAllSetMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg> values) {
        copyOnWrite();
        instance.addAllSetMsg(values);
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder clearSetMsg() {
        copyOnWrite();
        instance.clearSetMsg();
        return this;
      }
      /**
       * <code>repeated .alarm_params_set_msg set_msg = 1;</code>
       */
      public Builder removeSetMsg(int index) {
        copyOnWrite();
        instance.removeSetMsg(index);
        return this;
      }

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

      // @@protoc_insertion_point(builder_scope:alarm_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.Config.alarm_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "setMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_params_set_msg.class,
              "alarmIntervalTime_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0001\u0001\u0001\u041b\u0002\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.Config.alarm_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_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:alarm_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg DEFAULT_INSTANCE;
    static {
      alarm_msg defaultInstance = new alarm_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        alarm_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>required .LAP_TYPE lap_type = 1;</code>
     * @return Whether the lapType field is set.
     */
    boolean hasLapType();
    /**
     * <code>required .LAP_TYPE lap_type = 1;</code>
     * @return The lapType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE getLapType();

    /**
     * <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();

    /**
     * <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 lap_msg}
   */
  public  static final class lap_msg extends
      com.google.protobuf.GeneratedMessageLite<
          lap_msg, lap_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:lap_msg)
      lap_msgOrBuilder {
    private lap_msg() {
    }
    private int bitField0_;
    public static final int LAP_TYPE_FIELD_NUMBER = 1;
    private int lapType_;
    /**
     * <code>required .LAP_TYPE lap_type = 1;</code>
     * @return Whether the lapType field is set.
     */
    @java.lang.Override
    public boolean hasLapType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .LAP_TYPE lap_type = 1;</code>
     * @return The lapType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE getLapType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE.forNumber(lapType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE.LAP_TYPE_INVALID : result;
    }
    /**
     * <code>required .LAP_TYPE lap_type = 1;</code>
     * @param value The lapType to set.
     */
    private void setLapType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE value) {
      lapType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>required .LAP_TYPE lap_type = 1;</code>
     */
    private void clearLapType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      lapType_ = 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 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.Config.lap_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.Config.lap_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.Config.lap_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.Config.lap_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.Config.lap_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.Config.lap_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.Config.lap_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.Config.lap_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.Config.lap_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_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.Config.lap_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.Config.lap_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.Config.lap_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>required .LAP_TYPE lap_type = 1;</code>
       * @return Whether the lapType field is set.
       */
      @java.lang.Override
      public boolean hasLapType() {
        return instance.hasLapType();
      }
      /**
       * <code>required .LAP_TYPE lap_type = 1;</code>
       * @return The lapType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE getLapType() {
        return instance.getLapType();
      }
      /**
       * <code>required .LAP_TYPE lap_type = 1;</code>
       * @param value The enum numeric value on the wire for lapType to set.
       * @return This builder for chaining.
       */
      public Builder setLapType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE value) {
        copyOnWrite();
        instance.setLapType(value);
        return this;
      }
      /**
       * <code>required .LAP_TYPE lap_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLapType() {
        copyOnWrite();
        instance.clearLapType();
        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;
      }

      /**
       * <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:lap_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.Config.lap_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "lapType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LAP_TYPE.internalGetVerifier(),
              "value_",
              "status_",
            };
            java.lang.String info =
                "\u0001\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0001\u0001\u150c\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.Config.lap_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_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:lap_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg DEFAULT_INSTANCE;
    static {
      lap_msg defaultInstance = new lap_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        lap_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional .UNIT_ITEM unit_item = 1;</code>
     * @return Whether the unitItem field is set.
     */
    boolean hasUnitItem();
    /**
     * <code>optional .UNIT_ITEM unit_item = 1;</code>
     * @return The unitItem.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM getUnitItem();

    /**
     * <code>optional .UNIT_TYPE unit_type = 2;</code>
     * @return Whether the unitType field is set.
     */
    boolean hasUnitType();
    /**
     * <code>optional .UNIT_TYPE unit_type = 2;</code>
     * @return The unitType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE getUnitType();
  }
  /**
   * Protobuf type {@code unit_msg}
   */
  public  static final class unit_msg extends
      com.google.protobuf.GeneratedMessageLite<
          unit_msg, unit_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:unit_msg)
      unit_msgOrBuilder {
    private unit_msg() {
    }
    private int bitField0_;
    public static final int UNIT_ITEM_FIELD_NUMBER = 1;
    private int unitItem_;
    /**
     * <code>optional .UNIT_ITEM unit_item = 1;</code>
     * @return Whether the unitItem field is set.
     */
    @java.lang.Override
    public boolean hasUnitItem() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .UNIT_ITEM unit_item = 1;</code>
     * @return The unitItem.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM getUnitItem() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM.forNumber(unitItem_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM.enum_UNIT_ITEM_INVALID : result;
    }
    /**
     * <code>optional .UNIT_ITEM unit_item = 1;</code>
     * @param value The unitItem to set.
     */
    private void setUnitItem(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM value) {
      unitItem_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .UNIT_ITEM unit_item = 1;</code>
     */
    private void clearUnitItem() {
      bitField0_ = (bitField0_ & ~0x00000001);
      unitItem_ = 0;
    }

    public static final int UNIT_TYPE_FIELD_NUMBER = 2;
    private int unitType_;
    /**
     * <code>optional .UNIT_TYPE unit_type = 2;</code>
     * @return Whether the unitType field is set.
     */
    @java.lang.Override
    public boolean hasUnitType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .UNIT_TYPE unit_type = 2;</code>
     * @return The unitType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE getUnitType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE.forNumber(unitType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE.enum_UNIT_TYPE_INVALID : result;
    }
    /**
     * <code>optional .UNIT_TYPE unit_type = 2;</code>
     * @param value The unitType to set.
     */
    private void setUnitType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE value) {
      unitType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>optional .UNIT_TYPE unit_type = 2;</code>
     */
    private void clearUnitType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      unitType_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_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.Config.unit_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.Config.unit_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.Config.unit_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.Config.unit_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.Config.unit_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.Config.unit_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.Config.unit_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.Config.unit_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_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.Config.unit_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.Config.unit_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.Config.unit_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional .UNIT_ITEM unit_item = 1;</code>
       * @return Whether the unitItem field is set.
       */
      @java.lang.Override
      public boolean hasUnitItem() {
        return instance.hasUnitItem();
      }
      /**
       * <code>optional .UNIT_ITEM unit_item = 1;</code>
       * @return The unitItem.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM getUnitItem() {
        return instance.getUnitItem();
      }
      /**
       * <code>optional .UNIT_ITEM unit_item = 1;</code>
       * @param value The enum numeric value on the wire for unitItem to set.
       * @return This builder for chaining.
       */
      public Builder setUnitItem(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM value) {
        copyOnWrite();
        instance.setUnitItem(value);
        return this;
      }
      /**
       * <code>optional .UNIT_ITEM unit_item = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearUnitItem() {
        copyOnWrite();
        instance.clearUnitItem();
        return this;
      }

      /**
       * <code>optional .UNIT_TYPE unit_type = 2;</code>
       * @return Whether the unitType field is set.
       */
      @java.lang.Override
      public boolean hasUnitType() {
        return instance.hasUnitType();
      }
      /**
       * <code>optional .UNIT_TYPE unit_type = 2;</code>
       * @return The unitType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE getUnitType() {
        return instance.getUnitType();
      }
      /**
       * <code>optional .UNIT_TYPE unit_type = 2;</code>
       * @param value The enum numeric value on the wire for unitType to set.
       * @return This builder for chaining.
       */
      public Builder setUnitType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE value) {
        copyOnWrite();
        instance.setUnitType(value);
        return this;
      }
      /**
       * <code>optional .UNIT_TYPE unit_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUnitType() {
        copyOnWrite();
        instance.clearUnitType();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:unit_msg)
    }
    @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.Config.unit_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "unitItem_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_ITEM.internalGetVerifier(),
              "unitType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.UNIT_TYPE.internalGetVerifier(),
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100c\u0000\u0002" +
                "\u100c\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.Config.unit_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg>(
                        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:unit_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg DEFAULT_INSTANCE;
    static {
      unit_msg defaultInstance = new unit_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        unit_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @return A list containing the hrm.
     */
    java.util.List<java.lang.Integer> getHrmList();
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @return The count of hrm.
     */
    int getHrmCount();
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @param index The index of the element to return.
     * @return The hrm at the given index.
     */
    int getHrm(int index);

    /**
     * <code>repeated uint32 cad = 2;</code>
     * @return A list containing the cad.
     */
    java.util.List<java.lang.Integer> getCadList();
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @return The count of cad.
     */
    int getCadCount();
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @param index The index of the element to return.
     * @return The cad at the given index.
     */
    int getCad(int index);

    /**
     * <code>repeated uint32 spd = 3;</code>
     * @return A list containing the spd.
     */
    java.util.List<java.lang.Integer> getSpdList();
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @return The count of spd.
     */
    int getSpdCount();
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @param index The index of the element to return.
     * @return The spd at the given index.
     */
    int getSpd(int index);

    /**
     * <code>optional uint32 FTP = 10;</code>
     * @return Whether the fTP field is set.
     */
    boolean hasFTP();
    /**
     * <code>optional uint32 FTP = 10;</code>
     * @return The fTP.
     */
    int getFTP();

    /**
     * <code>repeated uint32 power = 11;</code>
     * @return A list containing the power.
     */
    java.util.List<java.lang.Integer> getPowerList();
    /**
     * <code>repeated uint32 power = 11;</code>
     * @return The count of power.
     */
    int getPowerCount();
    /**
     * <code>repeated uint32 power = 11;</code>
     * @param index The index of the element to return.
     * @return The power at the given index.
     */
    int getPower(int index);
  }
  /**
   * Protobuf type {@code section_data_msg}
   */
  public  static final class section_data_msg extends
      com.google.protobuf.GeneratedMessageLite<
          section_data_msg, section_data_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:section_data_msg)
      section_data_msgOrBuilder {
    private section_data_msg() {
      hrm_ = emptyIntList();
      cad_ = emptyIntList();
      spd_ = emptyIntList();
      power_ = emptyIntList();
    }
    private int bitField0_;
    public static final int HRM_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.IntList hrm_;
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @return A list containing the hrm.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getHrmList() {
      return hrm_;
    }
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @return The count of hrm.
     */
    @java.lang.Override
    public int getHrmCount() {
      return hrm_.size();
    }
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @param index The index of the element to return.
     * @return The hrm at the given index.
     */
    @java.lang.Override
    public int getHrm(int index) {
      return hrm_.getInt(index);
    }
    private void ensureHrmIsMutable() {
      com.google.protobuf.Internal.IntList tmp = hrm_;
      if (!tmp.isModifiable()) {
        hrm_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @param index The index to set the value at.
     * @param value The hrm to set.
     */
    private void setHrm(
        int index, int value) {
      ensureHrmIsMutable();
      hrm_.setInt(index, value);
    }
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @param value The hrm to add.
     */
    private void addHrm(int value) {
      ensureHrmIsMutable();
      hrm_.addInt(value);
    }
    /**
     * <code>repeated uint32 hrm = 1;</code>
     * @param values The hrm to add.
     */
    private void addAllHrm(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensureHrmIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, hrm_);
    }
    /**
     * <code>repeated uint32 hrm = 1;</code>
     */
    private void clearHrm() {
      hrm_ = emptyIntList();
    }

    public static final int CAD_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.IntList cad_;
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @return A list containing the cad.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getCadList() {
      return cad_;
    }
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @return The count of cad.
     */
    @java.lang.Override
    public int getCadCount() {
      return cad_.size();
    }
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @param index The index of the element to return.
     * @return The cad at the given index.
     */
    @java.lang.Override
    public int getCad(int index) {
      return cad_.getInt(index);
    }
    private void ensureCadIsMutable() {
      com.google.protobuf.Internal.IntList tmp = cad_;
      if (!tmp.isModifiable()) {
        cad_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @param index The index to set the value at.
     * @param value The cad to set.
     */
    private void setCad(
        int index, int value) {
      ensureCadIsMutable();
      cad_.setInt(index, value);
    }
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @param value The cad to add.
     */
    private void addCad(int value) {
      ensureCadIsMutable();
      cad_.addInt(value);
    }
    /**
     * <code>repeated uint32 cad = 2;</code>
     * @param values The cad to add.
     */
    private void addAllCad(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensureCadIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, cad_);
    }
    /**
     * <code>repeated uint32 cad = 2;</code>
     */
    private void clearCad() {
      cad_ = emptyIntList();
    }

    public static final int SPD_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.IntList spd_;
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @return A list containing the spd.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getSpdList() {
      return spd_;
    }
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @return The count of spd.
     */
    @java.lang.Override
    public int getSpdCount() {
      return spd_.size();
    }
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @param index The index of the element to return.
     * @return The spd at the given index.
     */
    @java.lang.Override
    public int getSpd(int index) {
      return spd_.getInt(index);
    }
    private void ensureSpdIsMutable() {
      com.google.protobuf.Internal.IntList tmp = spd_;
      if (!tmp.isModifiable()) {
        spd_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @param index The index to set the value at.
     * @param value The spd to set.
     */
    private void setSpd(
        int index, int value) {
      ensureSpdIsMutable();
      spd_.setInt(index, value);
    }
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @param value The spd to add.
     */
    private void addSpd(int value) {
      ensureSpdIsMutable();
      spd_.addInt(value);
    }
    /**
     * <code>repeated uint32 spd = 3;</code>
     * @param values The spd to add.
     */
    private void addAllSpd(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensureSpdIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, spd_);
    }
    /**
     * <code>repeated uint32 spd = 3;</code>
     */
    private void clearSpd() {
      spd_ = emptyIntList();
    }

    public static final int FTP_FIELD_NUMBER = 10;
    private int fTP_;
    /**
     * <code>optional uint32 FTP = 10;</code>
     * @return Whether the fTP field is set.
     */
    @java.lang.Override
    public boolean hasFTP() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 FTP = 10;</code>
     * @return The fTP.
     */
    @java.lang.Override
    public int getFTP() {
      return fTP_;
    }
    /**
     * <code>optional uint32 FTP = 10;</code>
     * @param value The fTP to set.
     */
    private void setFTP(int value) {
      bitField0_ |= 0x00000001;
      fTP_ = value;
    }
    /**
     * <code>optional uint32 FTP = 10;</code>
     */
    private void clearFTP() {
      bitField0_ = (bitField0_ & ~0x00000001);
      fTP_ = 0;
    }

    public static final int POWER_FIELD_NUMBER = 11;
    private com.google.protobuf.Internal.IntList power_;
    /**
     * <code>repeated uint32 power = 11;</code>
     * @return A list containing the power.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getPowerList() {
      return power_;
    }
    /**
     * <code>repeated uint32 power = 11;</code>
     * @return The count of power.
     */
    @java.lang.Override
    public int getPowerCount() {
      return power_.size();
    }
    /**
     * <code>repeated uint32 power = 11;</code>
     * @param index The index of the element to return.
     * @return The power at the given index.
     */
    @java.lang.Override
    public int getPower(int index) {
      return power_.getInt(index);
    }
    private void ensurePowerIsMutable() {
      com.google.protobuf.Internal.IntList tmp = power_;
      if (!tmp.isModifiable()) {
        power_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated uint32 power = 11;</code>
     * @param index The index to set the value at.
     * @param value The power to set.
     */
    private void setPower(
        int index, int value) {
      ensurePowerIsMutable();
      power_.setInt(index, value);
    }
    /**
     * <code>repeated uint32 power = 11;</code>
     * @param value The power to add.
     */
    private void addPower(int value) {
      ensurePowerIsMutable();
      power_.addInt(value);
    }
    /**
     * <code>repeated uint32 power = 11;</code>
     * @param values The power to add.
     */
    private void addAllPower(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensurePowerIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, power_);
    }
    /**
     * <code>repeated uint32 power = 11;</code>
     */
    private void clearPower() {
      power_ = emptyIntList();
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_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.Config.section_data_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.Config.section_data_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.Config.section_data_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.Config.section_data_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.Config.section_data_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.Config.section_data_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.Config.section_data_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.Config.section_data_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_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.Config.section_data_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.Config.section_data_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.Config.section_data_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>repeated uint32 hrm = 1;</code>
       * @return A list containing the hrm.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getHrmList() {
        return java.util.Collections.unmodifiableList(
            instance.getHrmList());
      }
      /**
       * <code>repeated uint32 hrm = 1;</code>
       * @return The count of hrm.
       */
      @java.lang.Override
      public int getHrmCount() {
        return instance.getHrmCount();
      }
      /**
       * <code>repeated uint32 hrm = 1;</code>
       * @param index The index of the element to return.
       * @return The hrm at the given index.
       */
      @java.lang.Override
      public int getHrm(int index) {
        return instance.getHrm(index);
      }
      /**
       * <code>repeated uint32 hrm = 1;</code>
       * @param value The hrm to set.
       * @return This builder for chaining.
       */
      public Builder setHrm(
          int index, int value) {
        copyOnWrite();
        instance.setHrm(index, value);
        return this;
      }
      /**
       * <code>repeated uint32 hrm = 1;</code>
       * @param value The hrm to add.
       * @return This builder for chaining.
       */
      public Builder addHrm(int value) {
        copyOnWrite();
        instance.addHrm(value);
        return this;
      }
      /**
       * <code>repeated uint32 hrm = 1;</code>
       * @param values The hrm to add.
       * @return This builder for chaining.
       */
      public Builder addAllHrm(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllHrm(values);
        return this;
      }
      /**
       * <code>repeated uint32 hrm = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHrm() {
        copyOnWrite();
        instance.clearHrm();
        return this;
      }

      /**
       * <code>repeated uint32 cad = 2;</code>
       * @return A list containing the cad.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getCadList() {
        return java.util.Collections.unmodifiableList(
            instance.getCadList());
      }
      /**
       * <code>repeated uint32 cad = 2;</code>
       * @return The count of cad.
       */
      @java.lang.Override
      public int getCadCount() {
        return instance.getCadCount();
      }
      /**
       * <code>repeated uint32 cad = 2;</code>
       * @param index The index of the element to return.
       * @return The cad at the given index.
       */
      @java.lang.Override
      public int getCad(int index) {
        return instance.getCad(index);
      }
      /**
       * <code>repeated uint32 cad = 2;</code>
       * @param value The cad to set.
       * @return This builder for chaining.
       */
      public Builder setCad(
          int index, int value) {
        copyOnWrite();
        instance.setCad(index, value);
        return this;
      }
      /**
       * <code>repeated uint32 cad = 2;</code>
       * @param value The cad to add.
       * @return This builder for chaining.
       */
      public Builder addCad(int value) {
        copyOnWrite();
        instance.addCad(value);
        return this;
      }
      /**
       * <code>repeated uint32 cad = 2;</code>
       * @param values The cad to add.
       * @return This builder for chaining.
       */
      public Builder addAllCad(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllCad(values);
        return this;
      }
      /**
       * <code>repeated uint32 cad = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCad() {
        copyOnWrite();
        instance.clearCad();
        return this;
      }

      /**
       * <code>repeated uint32 spd = 3;</code>
       * @return A list containing the spd.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getSpdList() {
        return java.util.Collections.unmodifiableList(
            instance.getSpdList());
      }
      /**
       * <code>repeated uint32 spd = 3;</code>
       * @return The count of spd.
       */
      @java.lang.Override
      public int getSpdCount() {
        return instance.getSpdCount();
      }
      /**
       * <code>repeated uint32 spd = 3;</code>
       * @param index The index of the element to return.
       * @return The spd at the given index.
       */
      @java.lang.Override
      public int getSpd(int index) {
        return instance.getSpd(index);
      }
      /**
       * <code>repeated uint32 spd = 3;</code>
       * @param value The spd to set.
       * @return This builder for chaining.
       */
      public Builder setSpd(
          int index, int value) {
        copyOnWrite();
        instance.setSpd(index, value);
        return this;
      }
      /**
       * <code>repeated uint32 spd = 3;</code>
       * @param value The spd to add.
       * @return This builder for chaining.
       */
      public Builder addSpd(int value) {
        copyOnWrite();
        instance.addSpd(value);
        return this;
      }
      /**
       * <code>repeated uint32 spd = 3;</code>
       * @param values The spd to add.
       * @return This builder for chaining.
       */
      public Builder addAllSpd(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllSpd(values);
        return this;
      }
      /**
       * <code>repeated uint32 spd = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpd() {
        copyOnWrite();
        instance.clearSpd();
        return this;
      }

      /**
       * <code>optional uint32 FTP = 10;</code>
       * @return Whether the fTP field is set.
       */
      @java.lang.Override
      public boolean hasFTP() {
        return instance.hasFTP();
      }
      /**
       * <code>optional uint32 FTP = 10;</code>
       * @return The fTP.
       */
      @java.lang.Override
      public int getFTP() {
        return instance.getFTP();
      }
      /**
       * <code>optional uint32 FTP = 10;</code>
       * @param value The fTP to set.
       * @return This builder for chaining.
       */
      public Builder setFTP(int value) {
        copyOnWrite();
        instance.setFTP(value);
        return this;
      }
      /**
       * <code>optional uint32 FTP = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearFTP() {
        copyOnWrite();
        instance.clearFTP();
        return this;
      }

      /**
       * <code>repeated uint32 power = 11;</code>
       * @return A list containing the power.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getPowerList() {
        return java.util.Collections.unmodifiableList(
            instance.getPowerList());
      }
      /**
       * <code>repeated uint32 power = 11;</code>
       * @return The count of power.
       */
      @java.lang.Override
      public int getPowerCount() {
        return instance.getPowerCount();
      }
      /**
       * <code>repeated uint32 power = 11;</code>
       * @param index The index of the element to return.
       * @return The power at the given index.
       */
      @java.lang.Override
      public int getPower(int index) {
        return instance.getPower(index);
      }
      /**
       * <code>repeated uint32 power = 11;</code>
       * @param value The power to set.
       * @return This builder for chaining.
       */
      public Builder setPower(
          int index, int value) {
        copyOnWrite();
        instance.setPower(index, value);
        return this;
      }
      /**
       * <code>repeated uint32 power = 11;</code>
       * @param value The power to add.
       * @return This builder for chaining.
       */
      public Builder addPower(int value) {
        copyOnWrite();
        instance.addPower(value);
        return this;
      }
      /**
       * <code>repeated uint32 power = 11;</code>
       * @param values The power to add.
       * @return This builder for chaining.
       */
      public Builder addAllPower(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllPower(values);
        return this;
      }
      /**
       * <code>repeated uint32 power = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearPower() {
        copyOnWrite();
        instance.clearPower();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:section_data_msg)
    }
    @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.Config.section_data_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "hrm_",
              "cad_",
              "spd_",
              "fTP_",
              "power_",
            };
            java.lang.String info =
                "\u0001\u0005\u0000\u0001\u0001\u000b\u0005\u0000\u0004\u0000\u0001\u001d\u0002\u001d" +
                "\u0003\u001d\n\u100b\u0000\u000b\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.Config.section_data_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg>(
                        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:section_data_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg DEFAULT_INSTANCE;
    static {
      section_data_msg defaultInstance = new section_data_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        section_data_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional uint32 sex = 1;</code>
     * @return Whether the sex field is set.
     */
    boolean hasSex();
    /**
     * <code>optional uint32 sex = 1;</code>
     * @return The sex.
     */
    int getSex();

    /**
     * <code>optional uint32 weight = 2;</code>
     * @return Whether the weight field is set.
     */
    boolean hasWeight();
    /**
     * <code>optional uint32 weight = 2;</code>
     * @return The weight.
     */
    int getWeight();

    /**
     * <code>optional uint32 age = 3;</code>
     * @return Whether the age field is set.
     */
    boolean hasAge();
    /**
     * <code>optional uint32 age = 3;</code>
     * @return The age.
     */
    int getAge();

    /**
     * <code>optional uint32 height = 4;</code>
     * @return Whether the height field is set.
     */
    boolean hasHeight();
    /**
     * <code>optional uint32 height = 4;</code>
     * @return The height.
     */
    int getHeight();

    /**
     * <code>optional int32 time_zone = 7;</code>
     * @return Whether the timeZone field is set.
     */
    boolean hasTimeZone();
    /**
     * <code>optional int32 time_zone = 7;</code>
     * @return The timeZone.
     */
    int getTimeZone();

    /**
     * <code>optional string member_id = 8;</code>
     * @return Whether the memberId field is set.
     */
    boolean hasMemberId();
    /**
     * <code>optional string member_id = 8;</code>
     * @return The memberId.
     */
    java.lang.String getMemberId();
    /**
     * <code>optional string member_id = 8;</code>
     * @return The bytes for memberId.
     */
    com.google.protobuf.ByteString
        getMemberIdBytes();

    /**
     * <code>optional uint32 update_status = 9;</code>
     * @return Whether the updateStatus field is set.
     */
    boolean hasUpdateStatus();
    /**
     * <code>optional uint32 update_status = 9;</code>
     * @return The updateStatus.
     */
    int getUpdateStatus();

    /**
     * <code>optional .section_data_msg section_data = 20;</code>
     * @return Whether the sectionData field is set.
     */
    boolean hasSectionData();
    /**
     * <code>optional .section_data_msg section_data = 20;</code>
     * @return The sectionData.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg getSectionData();

    /**
     * <code>optional uint32 Personal_infor_change_time = 21;</code>
     * @return Whether the personalInforChangeTime field is set.
     */
    boolean hasPersonalInforChangeTime();
    /**
     * <code>optional uint32 Personal_infor_change_time = 21;</code>
     * @return The personalInforChangeTime.
     */
    int getPersonalInforChangeTime();
  }
  /**
   * Protobuf type {@code user_data_msg}
   */
  public  static final class user_data_msg extends
      com.google.protobuf.GeneratedMessageLite<
          user_data_msg, user_data_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:user_data_msg)
      user_data_msgOrBuilder {
    private user_data_msg() {
      memberId_ = "";
    }
    private int bitField0_;
    public static final int SEX_FIELD_NUMBER = 1;
    private int sex_;
    /**
     * <code>optional uint32 sex = 1;</code>
     * @return Whether the sex field is set.
     */
    @java.lang.Override
    public boolean hasSex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 sex = 1;</code>
     * @return The sex.
     */
    @java.lang.Override
    public int getSex() {
      return sex_;
    }
    /**
     * <code>optional uint32 sex = 1;</code>
     * @param value The sex to set.
     */
    private void setSex(int value) {
      bitField0_ |= 0x00000001;
      sex_ = value;
    }
    /**
     * <code>optional uint32 sex = 1;</code>
     */
    private void clearSex() {
      bitField0_ = (bitField0_ & ~0x00000001);
      sex_ = 0;
    }

    public static final int WEIGHT_FIELD_NUMBER = 2;
    private int weight_;
    /**
     * <code>optional uint32 weight = 2;</code>
     * @return Whether the weight field is set.
     */
    @java.lang.Override
    public boolean hasWeight() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 weight = 2;</code>
     * @return The weight.
     */
    @java.lang.Override
    public int getWeight() {
      return weight_;
    }
    /**
     * <code>optional uint32 weight = 2;</code>
     * @param value The weight to set.
     */
    private void setWeight(int value) {
      bitField0_ |= 0x00000002;
      weight_ = value;
    }
    /**
     * <code>optional uint32 weight = 2;</code>
     */
    private void clearWeight() {
      bitField0_ = (bitField0_ & ~0x00000002);
      weight_ = 0;
    }

    public static final int AGE_FIELD_NUMBER = 3;
    private int age_;
    /**
     * <code>optional uint32 age = 3;</code>
     * @return Whether the age field is set.
     */
    @java.lang.Override
    public boolean hasAge() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 age = 3;</code>
     * @return The age.
     */
    @java.lang.Override
    public int getAge() {
      return age_;
    }
    /**
     * <code>optional uint32 age = 3;</code>
     * @param value The age to set.
     */
    private void setAge(int value) {
      bitField0_ |= 0x00000004;
      age_ = value;
    }
    /**
     * <code>optional uint32 age = 3;</code>
     */
    private void clearAge() {
      bitField0_ = (bitField0_ & ~0x00000004);
      age_ = 0;
    }

    public static final int HEIGHT_FIELD_NUMBER = 4;
    private int height_;
    /**
     * <code>optional uint32 height = 4;</code>
     * @return Whether the height field is set.
     */
    @java.lang.Override
    public boolean hasHeight() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional uint32 height = 4;</code>
     * @return The height.
     */
    @java.lang.Override
    public int getHeight() {
      return height_;
    }
    /**
     * <code>optional uint32 height = 4;</code>
     * @param value The height to set.
     */
    private void setHeight(int value) {
      bitField0_ |= 0x00000008;
      height_ = value;
    }
    /**
     * <code>optional uint32 height = 4;</code>
     */
    private void clearHeight() {
      bitField0_ = (bitField0_ & ~0x00000008);
      height_ = 0;
    }

    public static final int TIME_ZONE_FIELD_NUMBER = 7;
    private int timeZone_;
    /**
     * <code>optional int32 time_zone = 7;</code>
     * @return Whether the timeZone field is set.
     */
    @java.lang.Override
    public boolean hasTimeZone() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int32 time_zone = 7;</code>
     * @return The timeZone.
     */
    @java.lang.Override
    public int getTimeZone() {
      return timeZone_;
    }
    /**
     * <code>optional int32 time_zone = 7;</code>
     * @param value The timeZone to set.
     */
    private void setTimeZone(int value) {
      bitField0_ |= 0x00000010;
      timeZone_ = value;
    }
    /**
     * <code>optional int32 time_zone = 7;</code>
     */
    private void clearTimeZone() {
      bitField0_ = (bitField0_ & ~0x00000010);
      timeZone_ = 0;
    }

    public static final int MEMBER_ID_FIELD_NUMBER = 8;
    private java.lang.String memberId_;
    /**
     * <code>optional string member_id = 8;</code>
     * @return Whether the memberId field is set.
     */
    @java.lang.Override
    public boolean hasMemberId() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string member_id = 8;</code>
     * @return The memberId.
     */
    @java.lang.Override
    public java.lang.String getMemberId() {
      return memberId_;
    }
    /**
     * <code>optional string member_id = 8;</code>
     * @return The bytes for memberId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMemberIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(memberId_);
    }
    /**
     * <code>optional string member_id = 8;</code>
     * @param value The memberId to set.
     */
    private void setMemberId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000020;
      memberId_ = value;
    }
    /**
     * <code>optional string member_id = 8;</code>
     */
    private void clearMemberId() {
      bitField0_ = (bitField0_ & ~0x00000020);
      memberId_ = getDefaultInstance().getMemberId();
    }
    /**
     * <code>optional string member_id = 8;</code>
     * @param value The bytes for memberId to set.
     */
    private void setMemberIdBytes(
        com.google.protobuf.ByteString value) {
      memberId_ = value.toStringUtf8();
      bitField0_ |= 0x00000020;
    }

    public static final int UPDATE_STATUS_FIELD_NUMBER = 9;
    private int updateStatus_;
    /**
     * <code>optional uint32 update_status = 9;</code>
     * @return Whether the updateStatus field is set.
     */
    @java.lang.Override
    public boolean hasUpdateStatus() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional uint32 update_status = 9;</code>
     * @return The updateStatus.
     */
    @java.lang.Override
    public int getUpdateStatus() {
      return updateStatus_;
    }
    /**
     * <code>optional uint32 update_status = 9;</code>
     * @param value The updateStatus to set.
     */
    private void setUpdateStatus(int value) {
      bitField0_ |= 0x00000040;
      updateStatus_ = value;
    }
    /**
     * <code>optional uint32 update_status = 9;</code>
     */
    private void clearUpdateStatus() {
      bitField0_ = (bitField0_ & ~0x00000040);
      updateStatus_ = 0;
    }

    public static final int SECTION_DATA_FIELD_NUMBER = 20;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg sectionData_;
    /**
     * <code>optional .section_data_msg section_data = 20;</code>
     */
    @java.lang.Override
    public boolean hasSectionData() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .section_data_msg section_data = 20;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg getSectionData() {
      return sectionData_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg.getDefaultInstance() : sectionData_;
    }
    /**
     * <code>optional .section_data_msg section_data = 20;</code>
     */
    private void setSectionData(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg value) {
      value.getClass();
  sectionData_ = value;
      bitField0_ |= 0x00000080;
      }
    /**
     * <code>optional .section_data_msg section_data = 20;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionData(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg value) {
      value.getClass();
  if (sectionData_ != null &&
          sectionData_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg.getDefaultInstance()) {
        sectionData_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg.newBuilder(sectionData_).mergeFrom(value).buildPartial();
      } else {
        sectionData_ = value;
      }
      bitField0_ |= 0x00000080;
    }
    /**
     * <code>optional .section_data_msg section_data = 20;</code>
     */
    private void clearSectionData() {  sectionData_ = null;
      bitField0_ = (bitField0_ & ~0x00000080);
    }

    public static final int PERSONAL_INFOR_CHANGE_TIME_FIELD_NUMBER = 21;
    private int personalInforChangeTime_;
    /**
     * <code>optional uint32 Personal_infor_change_time = 21;</code>
     * @return Whether the personalInforChangeTime field is set.
     */
    @java.lang.Override
    public boolean hasPersonalInforChangeTime() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional uint32 Personal_infor_change_time = 21;</code>
     * @return The personalInforChangeTime.
     */
    @java.lang.Override
    public int getPersonalInforChangeTime() {
      return personalInforChangeTime_;
    }
    /**
     * <code>optional uint32 Personal_infor_change_time = 21;</code>
     * @param value The personalInforChangeTime to set.
     */
    private void setPersonalInforChangeTime(int value) {
      bitField0_ |= 0x00000100;
      personalInforChangeTime_ = value;
    }
    /**
     * <code>optional uint32 Personal_infor_change_time = 21;</code>
     */
    private void clearPersonalInforChangeTime() {
      bitField0_ = (bitField0_ & ~0x00000100);
      personalInforChangeTime_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_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.Config.user_data_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.Config.user_data_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.Config.user_data_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.Config.user_data_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.Config.user_data_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.Config.user_data_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.Config.user_data_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.Config.user_data_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_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.Config.user_data_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.Config.user_data_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.Config.user_data_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


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

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

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

      /**
       * <code>optional uint32 height = 4;</code>
       * @return Whether the height field is set.
       */
      @java.lang.Override
      public boolean hasHeight() {
        return instance.hasHeight();
      }
      /**
       * <code>optional uint32 height = 4;</code>
       * @return The height.
       */
      @java.lang.Override
      public int getHeight() {
        return instance.getHeight();
      }
      /**
       * <code>optional uint32 height = 4;</code>
       * @param value The height to set.
       * @return This builder for chaining.
       */
      public Builder setHeight(int value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
      }
      /**
       * <code>optional uint32 height = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHeight() {
        copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <code>optional int32 time_zone = 7;</code>
       * @return Whether the timeZone field is set.
       */
      @java.lang.Override
      public boolean hasTimeZone() {
        return instance.hasTimeZone();
      }
      /**
       * <code>optional int32 time_zone = 7;</code>
       * @return The timeZone.
       */
      @java.lang.Override
      public int getTimeZone() {
        return instance.getTimeZone();
      }
      /**
       * <code>optional int32 time_zone = 7;</code>
       * @param value The timeZone to set.
       * @return This builder for chaining.
       */
      public Builder setTimeZone(int value) {
        copyOnWrite();
        instance.setTimeZone(value);
        return this;
      }
      /**
       * <code>optional int32 time_zone = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeZone() {
        copyOnWrite();
        instance.clearTimeZone();
        return this;
      }

      /**
       * <code>optional string member_id = 8;</code>
       * @return Whether the memberId field is set.
       */
      @java.lang.Override
      public boolean hasMemberId() {
        return instance.hasMemberId();
      }
      /**
       * <code>optional string member_id = 8;</code>
       * @return The memberId.
       */
      @java.lang.Override
      public java.lang.String getMemberId() {
        return instance.getMemberId();
      }
      /**
       * <code>optional string member_id = 8;</code>
       * @return The bytes for memberId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMemberIdBytes() {
        return instance.getMemberIdBytes();
      }
      /**
       * <code>optional string member_id = 8;</code>
       * @param value The memberId to set.
       * @return This builder for chaining.
       */
      public Builder setMemberId(
          java.lang.String value) {
        copyOnWrite();
        instance.setMemberId(value);
        return this;
      }
      /**
       * <code>optional string member_id = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMemberId() {
        copyOnWrite();
        instance.clearMemberId();
        return this;
      }
      /**
       * <code>optional string member_id = 8;</code>
       * @param value The bytes for memberId to set.
       * @return This builder for chaining.
       */
      public Builder setMemberIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMemberIdBytes(value);
        return this;
      }

      /**
       * <code>optional uint32 update_status = 9;</code>
       * @return Whether the updateStatus field is set.
       */
      @java.lang.Override
      public boolean hasUpdateStatus() {
        return instance.hasUpdateStatus();
      }
      /**
       * <code>optional uint32 update_status = 9;</code>
       * @return The updateStatus.
       */
      @java.lang.Override
      public int getUpdateStatus() {
        return instance.getUpdateStatus();
      }
      /**
       * <code>optional uint32 update_status = 9;</code>
       * @param value The updateStatus to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateStatus(int value) {
        copyOnWrite();
        instance.setUpdateStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 update_status = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearUpdateStatus() {
        copyOnWrite();
        instance.clearUpdateStatus();
        return this;
      }

      /**
       * <code>optional .section_data_msg section_data = 20;</code>
       */
      @java.lang.Override
      public boolean hasSectionData() {
        return instance.hasSectionData();
      }
      /**
       * <code>optional .section_data_msg section_data = 20;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg getSectionData() {
        return instance.getSectionData();
      }
      /**
       * <code>optional .section_data_msg section_data = 20;</code>
       */
      public Builder setSectionData(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg value) {
        copyOnWrite();
        instance.setSectionData(value);
        return this;
        }
      /**
       * <code>optional .section_data_msg section_data = 20;</code>
       */
      public Builder setSectionData(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionData(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .section_data_msg section_data = 20;</code>
       */
      public Builder mergeSectionData(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.section_data_msg value) {
        copyOnWrite();
        instance.mergeSectionData(value);
        return this;
      }
      /**
       * <code>optional .section_data_msg section_data = 20;</code>
       */
      public Builder clearSectionData() {  copyOnWrite();
        instance.clearSectionData();
        return this;
      }

      /**
       * <code>optional uint32 Personal_infor_change_time = 21;</code>
       * @return Whether the personalInforChangeTime field is set.
       */
      @java.lang.Override
      public boolean hasPersonalInforChangeTime() {
        return instance.hasPersonalInforChangeTime();
      }
      /**
       * <code>optional uint32 Personal_infor_change_time = 21;</code>
       * @return The personalInforChangeTime.
       */
      @java.lang.Override
      public int getPersonalInforChangeTime() {
        return instance.getPersonalInforChangeTime();
      }
      /**
       * <code>optional uint32 Personal_infor_change_time = 21;</code>
       * @param value The personalInforChangeTime to set.
       * @return This builder for chaining.
       */
      public Builder setPersonalInforChangeTime(int value) {
        copyOnWrite();
        instance.setPersonalInforChangeTime(value);
        return this;
      }
      /**
       * <code>optional uint32 Personal_infor_change_time = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearPersonalInforChangeTime() {
        copyOnWrite();
        instance.clearPersonalInforChangeTime();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:user_data_msg)
    }
    @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.Config.user_data_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "sex_",
              "weight_",
              "age_",
              "height_",
              "timeZone_",
              "memberId_",
              "updateStatus_",
              "sectionData_",
              "personalInforChangeTime_",
            };
            java.lang.String info =
                "\u0001\t\u0000\u0001\u0001\u0015\t\u0000\u0000\u0000\u0001\u100b\u0000\u0002\u100b" +
                "\u0001\u0003\u100b\u0002\u0004\u100b\u0003\u0007\u1004\u0004\b\u1008\u0005\t\u100b" +
                "\u0006\u0014\u1009\u0007\u0015\u100b\b";
            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.Config.user_data_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg>(
                        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:user_data_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg DEFAULT_INSTANCE;
    static {
      user_data_msg defaultInstance = new user_data_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        user_data_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional uint32 mode_index = 1;</code>
     * @return Whether the modeIndex field is set.
     */
    boolean hasModeIndex();
    /**
     * <code>optional uint32 mode_index = 1;</code>
     * @return The modeIndex.
     */
    int getModeIndex();

    /**
     * <code>optional uint32 mode_color = 2;</code>
     * @return Whether the modeColor field is set.
     */
    boolean hasModeColor();
    /**
     * <code>optional uint32 mode_color = 2;</code>
     * @return The modeColor.
     */
    int getModeColor();

    /**
     * <code>optional uint32 valid = 3;</code>
     * @return Whether the valid field is set.
     */
    boolean hasValid();
    /**
     * <code>optional uint32 valid = 3;</code>
     * @return The valid.
     */
    int getValid();

    /**
     * <code>optional uint32 inuse = 4;</code>
     * @return Whether the inuse field is set.
     */
    boolean hasInuse();
    /**
     * <code>optional uint32 inuse = 4;</code>
     * @return The inuse.
     */
    int getInuse();

    /**
     * <code>optional uint32 template_index = 5;</code>
     * @return Whether the templateIndex field is set.
     */
    boolean hasTemplateIndex();
    /**
     * <code>optional uint32 template_index = 5;</code>
     * @return The templateIndex.
     */
    int getTemplateIndex();

    /**
     * <code>optional string mode_name = 6;</code>
     * @return Whether the modeName field is set.
     */
    boolean hasModeName();
    /**
     * <code>optional string mode_name = 6;</code>
     * @return The modeName.
     */
    java.lang.String getModeName();
    /**
     * <code>optional string mode_name = 6;</code>
     * @return The bytes for modeName.
     */
    com.google.protobuf.ByteString
        getModeNameBytes();
  }
  /**
   * Protobuf type {@code mode_msg}
   */
  public  static final class mode_msg extends
      com.google.protobuf.GeneratedMessageLite<
          mode_msg, mode_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:mode_msg)
      mode_msgOrBuilder {
    private mode_msg() {
      modeName_ = "";
    }
    private int bitField0_;
    public static final int MODE_INDEX_FIELD_NUMBER = 1;
    private int modeIndex_;
    /**
     * <code>optional uint32 mode_index = 1;</code>
     * @return Whether the modeIndex field is set.
     */
    @java.lang.Override
    public boolean hasModeIndex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 mode_index = 1;</code>
     * @return The modeIndex.
     */
    @java.lang.Override
    public int getModeIndex() {
      return modeIndex_;
    }
    /**
     * <code>optional uint32 mode_index = 1;</code>
     * @param value The modeIndex to set.
     */
    private void setModeIndex(int value) {
      bitField0_ |= 0x00000001;
      modeIndex_ = value;
    }
    /**
     * <code>optional uint32 mode_index = 1;</code>
     */
    private void clearModeIndex() {
      bitField0_ = (bitField0_ & ~0x00000001);
      modeIndex_ = 0;
    }

    public static final int MODE_COLOR_FIELD_NUMBER = 2;
    private int modeColor_;
    /**
     * <code>optional uint32 mode_color = 2;</code>
     * @return Whether the modeColor field is set.
     */
    @java.lang.Override
    public boolean hasModeColor() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 mode_color = 2;</code>
     * @return The modeColor.
     */
    @java.lang.Override
    public int getModeColor() {
      return modeColor_;
    }
    /**
     * <code>optional uint32 mode_color = 2;</code>
     * @param value The modeColor to set.
     */
    private void setModeColor(int value) {
      bitField0_ |= 0x00000002;
      modeColor_ = value;
    }
    /**
     * <code>optional uint32 mode_color = 2;</code>
     */
    private void clearModeColor() {
      bitField0_ = (bitField0_ & ~0x00000002);
      modeColor_ = 0;
    }

    public static final int VALID_FIELD_NUMBER = 3;
    private int valid_;
    /**
     * <code>optional uint32 valid = 3;</code>
     * @return Whether the valid field is set.
     */
    @java.lang.Override
    public boolean hasValid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 valid = 3;</code>
     * @return The valid.
     */
    @java.lang.Override
    public int getValid() {
      return valid_;
    }
    /**
     * <code>optional uint32 valid = 3;</code>
     * @param value The valid to set.
     */
    private void setValid(int value) {
      bitField0_ |= 0x00000004;
      valid_ = value;
    }
    /**
     * <code>optional uint32 valid = 3;</code>
     */
    private void clearValid() {
      bitField0_ = (bitField0_ & ~0x00000004);
      valid_ = 0;
    }

    public static final int INUSE_FIELD_NUMBER = 4;
    private int inuse_;
    /**
     * <code>optional uint32 inuse = 4;</code>
     * @return Whether the inuse field is set.
     */
    @java.lang.Override
    public boolean hasInuse() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional uint32 inuse = 4;</code>
     * @return The inuse.
     */
    @java.lang.Override
    public int getInuse() {
      return inuse_;
    }
    /**
     * <code>optional uint32 inuse = 4;</code>
     * @param value The inuse to set.
     */
    private void setInuse(int value) {
      bitField0_ |= 0x00000008;
      inuse_ = value;
    }
    /**
     * <code>optional uint32 inuse = 4;</code>
     */
    private void clearInuse() {
      bitField0_ = (bitField0_ & ~0x00000008);
      inuse_ = 0;
    }

    public static final int TEMPLATE_INDEX_FIELD_NUMBER = 5;
    private int templateIndex_;
    /**
     * <code>optional uint32 template_index = 5;</code>
     * @return Whether the templateIndex field is set.
     */
    @java.lang.Override
    public boolean hasTemplateIndex() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional uint32 template_index = 5;</code>
     * @return The templateIndex.
     */
    @java.lang.Override
    public int getTemplateIndex() {
      return templateIndex_;
    }
    /**
     * <code>optional uint32 template_index = 5;</code>
     * @param value The templateIndex to set.
     */
    private void setTemplateIndex(int value) {
      bitField0_ |= 0x00000010;
      templateIndex_ = value;
    }
    /**
     * <code>optional uint32 template_index = 5;</code>
     */
    private void clearTemplateIndex() {
      bitField0_ = (bitField0_ & ~0x00000010);
      templateIndex_ = 0;
    }

    public static final int MODE_NAME_FIELD_NUMBER = 6;
    private java.lang.String modeName_;
    /**
     * <code>optional string mode_name = 6;</code>
     * @return Whether the modeName field is set.
     */
    @java.lang.Override
    public boolean hasModeName() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string mode_name = 6;</code>
     * @return The modeName.
     */
    @java.lang.Override
    public java.lang.String getModeName() {
      return modeName_;
    }
    /**
     * <code>optional string mode_name = 6;</code>
     * @return The bytes for modeName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModeNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(modeName_);
    }
    /**
     * <code>optional string mode_name = 6;</code>
     * @param value The modeName to set.
     */
    private void setModeName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000020;
      modeName_ = value;
    }
    /**
     * <code>optional string mode_name = 6;</code>
     */
    private void clearModeName() {
      bitField0_ = (bitField0_ & ~0x00000020);
      modeName_ = getDefaultInstance().getModeName();
    }
    /**
     * <code>optional string mode_name = 6;</code>
     * @param value The bytes for modeName to set.
     */
    private void setModeNameBytes(
        com.google.protobuf.ByteString value) {
      modeName_ = value.toStringUtf8();
      bitField0_ |= 0x00000020;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_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.Config.mode_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.Config.mode_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.Config.mode_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.Config.mode_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.Config.mode_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.Config.mode_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.Config.mode_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.Config.mode_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_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.Config.mode_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.Config.mode_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.Config.mode_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional uint32 mode_index = 1;</code>
       * @return Whether the modeIndex field is set.
       */
      @java.lang.Override
      public boolean hasModeIndex() {
        return instance.hasModeIndex();
      }
      /**
       * <code>optional uint32 mode_index = 1;</code>
       * @return The modeIndex.
       */
      @java.lang.Override
      public int getModeIndex() {
        return instance.getModeIndex();
      }
      /**
       * <code>optional uint32 mode_index = 1;</code>
       * @param value The modeIndex to set.
       * @return This builder for chaining.
       */
      public Builder setModeIndex(int value) {
        copyOnWrite();
        instance.setModeIndex(value);
        return this;
      }
      /**
       * <code>optional uint32 mode_index = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearModeIndex() {
        copyOnWrite();
        instance.clearModeIndex();
        return this;
      }

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

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

      /**
       * <code>optional uint32 inuse = 4;</code>
       * @return Whether the inuse field is set.
       */
      @java.lang.Override
      public boolean hasInuse() {
        return instance.hasInuse();
      }
      /**
       * <code>optional uint32 inuse = 4;</code>
       * @return The inuse.
       */
      @java.lang.Override
      public int getInuse() {
        return instance.getInuse();
      }
      /**
       * <code>optional uint32 inuse = 4;</code>
       * @param value The inuse to set.
       * @return This builder for chaining.
       */
      public Builder setInuse(int value) {
        copyOnWrite();
        instance.setInuse(value);
        return this;
      }
      /**
       * <code>optional uint32 inuse = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearInuse() {
        copyOnWrite();
        instance.clearInuse();
        return this;
      }

      /**
       * <code>optional uint32 template_index = 5;</code>
       * @return Whether the templateIndex field is set.
       */
      @java.lang.Override
      public boolean hasTemplateIndex() {
        return instance.hasTemplateIndex();
      }
      /**
       * <code>optional uint32 template_index = 5;</code>
       * @return The templateIndex.
       */
      @java.lang.Override
      public int getTemplateIndex() {
        return instance.getTemplateIndex();
      }
      /**
       * <code>optional uint32 template_index = 5;</code>
       * @param value The templateIndex to set.
       * @return This builder for chaining.
       */
      public Builder setTemplateIndex(int value) {
        copyOnWrite();
        instance.setTemplateIndex(value);
        return this;
      }
      /**
       * <code>optional uint32 template_index = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemplateIndex() {
        copyOnWrite();
        instance.clearTemplateIndex();
        return this;
      }

      /**
       * <code>optional string mode_name = 6;</code>
       * @return Whether the modeName field is set.
       */
      @java.lang.Override
      public boolean hasModeName() {
        return instance.hasModeName();
      }
      /**
       * <code>optional string mode_name = 6;</code>
       * @return The modeName.
       */
      @java.lang.Override
      public java.lang.String getModeName() {
        return instance.getModeName();
      }
      /**
       * <code>optional string mode_name = 6;</code>
       * @return The bytes for modeName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getModeNameBytes() {
        return instance.getModeNameBytes();
      }
      /**
       * <code>optional string mode_name = 6;</code>
       * @param value The modeName to set.
       * @return This builder for chaining.
       */
      public Builder setModeName(
          java.lang.String value) {
        copyOnWrite();
        instance.setModeName(value);
        return this;
      }
      /**
       * <code>optional string mode_name = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearModeName() {
        copyOnWrite();
        instance.clearModeName();
        return this;
      }
      /**
       * <code>optional string mode_name = 6;</code>
       * @param value The bytes for modeName to set.
       * @return This builder for chaining.
       */
      public Builder setModeNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setModeNameBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:mode_msg)
    }
    @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.Config.mode_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "modeIndex_",
              "modeColor_",
              "valid_",
              "inuse_",
              "templateIndex_",
              "modeName_",
            };
            java.lang.String info =
                "\u0001\u0006\u0000\u0001\u0001\u0006\u0006\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001\u0003\u100b\u0002\u0004\u100b\u0003\u0005\u100b\u0004\u0006\u1008\u0005" +
                "";
            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.Config.mode_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg>(
                        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:mode_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg DEFAULT_INSTANCE;
    static {
      mode_msg defaultInstance = new mode_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        mode_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional uint32 page_index = 1;</code>
     * @return Whether the pageIndex field is set.
     */
    boolean hasPageIndex();
    /**
     * <code>optional uint32 page_index = 1;</code>
     * @return The pageIndex.
     */
    int getPageIndex();

    /**
     * <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();

    /**
     * <code>repeated uint32 data = 3;</code>
     * @return A list containing the data.
     */
    java.util.List<java.lang.Integer> getDataList();
    /**
     * <code>repeated uint32 data = 3;</code>
     * @return The count of data.
     */
    int getDataCount();
    /**
     * <code>repeated uint32 data = 3;</code>
     * @param index The index of the element to return.
     * @return The data at the given index.
     */
    int getData(int index);

    /**
     * <code>optional uint32 data_site = 4;</code>
     * @return Whether the dataSite field is set.
     */
    boolean hasDataSite();
    /**
     * <code>optional uint32 data_site = 4;</code>
     * @return The dataSite.
     */
    int getDataSite();

    /**
     * <code>optional string page_name = 5;</code>
     * @return Whether the pageName field is set.
     */
    boolean hasPageName();
    /**
     * <code>optional string page_name = 5;</code>
     * @return The pageName.
     */
    java.lang.String getPageName();
    /**
     * <code>optional string page_name = 5;</code>
     * @return The bytes for pageName.
     */
    com.google.protobuf.ByteString
        getPageNameBytes();

    /**
     * <code>optional .PAGE_TYPE page_type = 6;</code>
     * @return Whether the pageType field is set.
     */
    boolean hasPageType();
    /**
     * <code>optional .PAGE_TYPE page_type = 6;</code>
     * @return The pageType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE getPageType();

    /**
     * <code>optional uint32 page_mode = 7;</code>
     * @return Whether the pageMode field is set.
     */
    boolean hasPageMode();
    /**
     * <code>optional uint32 page_mode = 7;</code>
     * @return The pageMode.
     */
    int getPageMode();

    /**
     * <code>optional uint32 main_page_status = 8;</code>
     * @return Whether the mainPageStatus field is set.
     */
    boolean hasMainPageStatus();
    /**
     * <code>optional uint32 main_page_status = 8;</code>
     * @return The mainPageStatus.
     */
    int getMainPageStatus();

    /**
     * <code>optional uint32 line_width = 9;</code>
     * @return Whether the lineWidth field is set.
     */
    boolean hasLineWidth();
    /**
     * <code>optional uint32 line_width = 9;</code>
     * @return The lineWidth.
     */
    int getLineWidth();

    /**
     * <code>optional uint32 graphic_display = 10;</code>
     * @return Whether the graphicDisplay field is set.
     */
    boolean hasGraphicDisplay();
    /**
     * <code>optional uint32 graphic_display = 10;</code>
     * @return The graphicDisplay.
     */
    int getGraphicDisplay();
  }
  /**
   * Protobuf type {@code page_msg}
   */
  public  static final class page_msg extends
      com.google.protobuf.GeneratedMessageLite<
          page_msg, page_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:page_msg)
      page_msgOrBuilder {
    private page_msg() {
      data_ = emptyIntList();
      pageName_ = "";
    }
    private int bitField0_;
    public static final int PAGE_INDEX_FIELD_NUMBER = 1;
    private int pageIndex_;
    /**
     * <code>optional uint32 page_index = 1;</code>
     * @return Whether the pageIndex field is set.
     */
    @java.lang.Override
    public boolean hasPageIndex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 page_index = 1;</code>
     * @return The pageIndex.
     */
    @java.lang.Override
    public int getPageIndex() {
      return pageIndex_;
    }
    /**
     * <code>optional uint32 page_index = 1;</code>
     * @param value The pageIndex to set.
     */
    private void setPageIndex(int value) {
      bitField0_ |= 0x00000001;
      pageIndex_ = value;
    }
    /**
     * <code>optional uint32 page_index = 1;</code>
     */
    private void clearPageIndex() {
      bitField0_ = (bitField0_ & ~0x00000001);
      pageIndex_ = 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 final int DATA_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.IntList data_;
    /**
     * <code>repeated uint32 data = 3;</code>
     * @return A list containing the data.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getDataList() {
      return data_;
    }
    /**
     * <code>repeated uint32 data = 3;</code>
     * @return The count of data.
     */
    @java.lang.Override
    public int getDataCount() {
      return data_.size();
    }
    /**
     * <code>repeated uint32 data = 3;</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 = 3;</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 = 3;</code>
     * @param value The data to add.
     */
    private void addData(int value) {
      ensureDataIsMutable();
      data_.addInt(value);
    }
    /**
     * <code>repeated uint32 data = 3;</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 = 3;</code>
     */
    private void clearData() {
      data_ = emptyIntList();
    }

    public static final int DATA_SITE_FIELD_NUMBER = 4;
    private int dataSite_;
    /**
     * <code>optional uint32 data_site = 4;</code>
     * @return Whether the dataSite field is set.
     */
    @java.lang.Override
    public boolean hasDataSite() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 data_site = 4;</code>
     * @return The dataSite.
     */
    @java.lang.Override
    public int getDataSite() {
      return dataSite_;
    }
    /**
     * <code>optional uint32 data_site = 4;</code>
     * @param value The dataSite to set.
     */
    private void setDataSite(int value) {
      bitField0_ |= 0x00000004;
      dataSite_ = value;
    }
    /**
     * <code>optional uint32 data_site = 4;</code>
     */
    private void clearDataSite() {
      bitField0_ = (bitField0_ & ~0x00000004);
      dataSite_ = 0;
    }

    public static final int PAGE_NAME_FIELD_NUMBER = 5;
    private java.lang.String pageName_;
    /**
     * <code>optional string page_name = 5;</code>
     * @return Whether the pageName field is set.
     */
    @java.lang.Override
    public boolean hasPageName() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string page_name = 5;</code>
     * @return The pageName.
     */
    @java.lang.Override
    public java.lang.String getPageName() {
      return pageName_;
    }
    /**
     * <code>optional string page_name = 5;</code>
     * @return The bytes for pageName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPageNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(pageName_);
    }
    /**
     * <code>optional string page_name = 5;</code>
     * @param value The pageName to set.
     */
    private void setPageName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000008;
      pageName_ = value;
    }
    /**
     * <code>optional string page_name = 5;</code>
     */
    private void clearPageName() {
      bitField0_ = (bitField0_ & ~0x00000008);
      pageName_ = getDefaultInstance().getPageName();
    }
    /**
     * <code>optional string page_name = 5;</code>
     * @param value The bytes for pageName to set.
     */
    private void setPageNameBytes(
        com.google.protobuf.ByteString value) {
      pageName_ = value.toStringUtf8();
      bitField0_ |= 0x00000008;
    }

    public static final int PAGE_TYPE_FIELD_NUMBER = 6;
    private int pageType_;
    /**
     * <code>optional .PAGE_TYPE page_type = 6;</code>
     * @return Whether the pageType field is set.
     */
    @java.lang.Override
    public boolean hasPageType() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .PAGE_TYPE page_type = 6;</code>
     * @return The pageType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE getPageType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE.forNumber(pageType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE.enum_PAGE_TYPE_INVALID : result;
    }
    /**
     * <code>optional .PAGE_TYPE page_type = 6;</code>
     * @param value The pageType to set.
     */
    private void setPageType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE value) {
      pageType_ = value.getNumber();
      bitField0_ |= 0x00000010;
    }
    /**
     * <code>optional .PAGE_TYPE page_type = 6;</code>
     */
    private void clearPageType() {
      bitField0_ = (bitField0_ & ~0x00000010);
      pageType_ = 0;
    }

    public static final int PAGE_MODE_FIELD_NUMBER = 7;
    private int pageMode_;
    /**
     * <code>optional uint32 page_mode = 7;</code>
     * @return Whether the pageMode field is set.
     */
    @java.lang.Override
    public boolean hasPageMode() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional uint32 page_mode = 7;</code>
     * @return The pageMode.
     */
    @java.lang.Override
    public int getPageMode() {
      return pageMode_;
    }
    /**
     * <code>optional uint32 page_mode = 7;</code>
     * @param value The pageMode to set.
     */
    private void setPageMode(int value) {
      bitField0_ |= 0x00000020;
      pageMode_ = value;
    }
    /**
     * <code>optional uint32 page_mode = 7;</code>
     */
    private void clearPageMode() {
      bitField0_ = (bitField0_ & ~0x00000020);
      pageMode_ = 0;
    }

    public static final int MAIN_PAGE_STATUS_FIELD_NUMBER = 8;
    private int mainPageStatus_;
    /**
     * <code>optional uint32 main_page_status = 8;</code>
     * @return Whether the mainPageStatus field is set.
     */
    @java.lang.Override
    public boolean hasMainPageStatus() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional uint32 main_page_status = 8;</code>
     * @return The mainPageStatus.
     */
    @java.lang.Override
    public int getMainPageStatus() {
      return mainPageStatus_;
    }
    /**
     * <code>optional uint32 main_page_status = 8;</code>
     * @param value The mainPageStatus to set.
     */
    private void setMainPageStatus(int value) {
      bitField0_ |= 0x00000040;
      mainPageStatus_ = value;
    }
    /**
     * <code>optional uint32 main_page_status = 8;</code>
     */
    private void clearMainPageStatus() {
      bitField0_ = (bitField0_ & ~0x00000040);
      mainPageStatus_ = 0;
    }

    public static final int LINE_WIDTH_FIELD_NUMBER = 9;
    private int lineWidth_;
    /**
     * <code>optional uint32 line_width = 9;</code>
     * @return Whether the lineWidth field is set.
     */
    @java.lang.Override
    public boolean hasLineWidth() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional uint32 line_width = 9;</code>
     * @return The lineWidth.
     */
    @java.lang.Override
    public int getLineWidth() {
      return lineWidth_;
    }
    /**
     * <code>optional uint32 line_width = 9;</code>
     * @param value The lineWidth to set.
     */
    private void setLineWidth(int value) {
      bitField0_ |= 0x00000080;
      lineWidth_ = value;
    }
    /**
     * <code>optional uint32 line_width = 9;</code>
     */
    private void clearLineWidth() {
      bitField0_ = (bitField0_ & ~0x00000080);
      lineWidth_ = 0;
    }

    public static final int GRAPHIC_DISPLAY_FIELD_NUMBER = 10;
    private int graphicDisplay_;
    /**
     * <code>optional uint32 graphic_display = 10;</code>
     * @return Whether the graphicDisplay field is set.
     */
    @java.lang.Override
    public boolean hasGraphicDisplay() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional uint32 graphic_display = 10;</code>
     * @return The graphicDisplay.
     */
    @java.lang.Override
    public int getGraphicDisplay() {
      return graphicDisplay_;
    }
    /**
     * <code>optional uint32 graphic_display = 10;</code>
     * @param value The graphicDisplay to set.
     */
    private void setGraphicDisplay(int value) {
      bitField0_ |= 0x00000100;
      graphicDisplay_ = value;
    }
    /**
     * <code>optional uint32 graphic_display = 10;</code>
     */
    private void clearGraphicDisplay() {
      bitField0_ = (bitField0_ & ~0x00000100);
      graphicDisplay_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_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.Config.page_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.Config.page_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.Config.page_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.Config.page_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.Config.page_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.Config.page_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.Config.page_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.Config.page_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_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.Config.page_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.Config.page_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.Config.page_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional uint32 page_index = 1;</code>
       * @return Whether the pageIndex field is set.
       */
      @java.lang.Override
      public boolean hasPageIndex() {
        return instance.hasPageIndex();
      }
      /**
       * <code>optional uint32 page_index = 1;</code>
       * @return The pageIndex.
       */
      @java.lang.Override
      public int getPageIndex() {
        return instance.getPageIndex();
      }
      /**
       * <code>optional uint32 page_index = 1;</code>
       * @param value The pageIndex to set.
       * @return This builder for chaining.
       */
      public Builder setPageIndex(int value) {
        copyOnWrite();
        instance.setPageIndex(value);
        return this;
      }
      /**
       * <code>optional uint32 page_index = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageIndex() {
        copyOnWrite();
        instance.clearPageIndex();
        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;
      }

      /**
       * <code>repeated uint32 data = 3;</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 = 3;</code>
       * @return The count of data.
       */
      @java.lang.Override
      public int getDataCount() {
        return instance.getDataCount();
      }
      /**
       * <code>repeated uint32 data = 3;</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 = 3;</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 = 3;</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 = 3;</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 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        copyOnWrite();
        instance.clearData();
        return this;
      }

      /**
       * <code>optional uint32 data_site = 4;</code>
       * @return Whether the dataSite field is set.
       */
      @java.lang.Override
      public boolean hasDataSite() {
        return instance.hasDataSite();
      }
      /**
       * <code>optional uint32 data_site = 4;</code>
       * @return The dataSite.
       */
      @java.lang.Override
      public int getDataSite() {
        return instance.getDataSite();
      }
      /**
       * <code>optional uint32 data_site = 4;</code>
       * @param value The dataSite to set.
       * @return This builder for chaining.
       */
      public Builder setDataSite(int value) {
        copyOnWrite();
        instance.setDataSite(value);
        return this;
      }
      /**
       * <code>optional uint32 data_site = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataSite() {
        copyOnWrite();
        instance.clearDataSite();
        return this;
      }

      /**
       * <code>optional string page_name = 5;</code>
       * @return Whether the pageName field is set.
       */
      @java.lang.Override
      public boolean hasPageName() {
        return instance.hasPageName();
      }
      /**
       * <code>optional string page_name = 5;</code>
       * @return The pageName.
       */
      @java.lang.Override
      public java.lang.String getPageName() {
        return instance.getPageName();
      }
      /**
       * <code>optional string page_name = 5;</code>
       * @return The bytes for pageName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPageNameBytes() {
        return instance.getPageNameBytes();
      }
      /**
       * <code>optional string page_name = 5;</code>
       * @param value The pageName to set.
       * @return This builder for chaining.
       */
      public Builder setPageName(
          java.lang.String value) {
        copyOnWrite();
        instance.setPageName(value);
        return this;
      }
      /**
       * <code>optional string page_name = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageName() {
        copyOnWrite();
        instance.clearPageName();
        return this;
      }
      /**
       * <code>optional string page_name = 5;</code>
       * @param value The bytes for pageName to set.
       * @return This builder for chaining.
       */
      public Builder setPageNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPageNameBytes(value);
        return this;
      }

      /**
       * <code>optional .PAGE_TYPE page_type = 6;</code>
       * @return Whether the pageType field is set.
       */
      @java.lang.Override
      public boolean hasPageType() {
        return instance.hasPageType();
      }
      /**
       * <code>optional .PAGE_TYPE page_type = 6;</code>
       * @return The pageType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE getPageType() {
        return instance.getPageType();
      }
      /**
       * <code>optional .PAGE_TYPE page_type = 6;</code>
       * @param value The enum numeric value on the wire for pageType to set.
       * @return This builder for chaining.
       */
      public Builder setPageType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE value) {
        copyOnWrite();
        instance.setPageType(value);
        return this;
      }
      /**
       * <code>optional .PAGE_TYPE page_type = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageType() {
        copyOnWrite();
        instance.clearPageType();
        return this;
      }

      /**
       * <code>optional uint32 page_mode = 7;</code>
       * @return Whether the pageMode field is set.
       */
      @java.lang.Override
      public boolean hasPageMode() {
        return instance.hasPageMode();
      }
      /**
       * <code>optional uint32 page_mode = 7;</code>
       * @return The pageMode.
       */
      @java.lang.Override
      public int getPageMode() {
        return instance.getPageMode();
      }
      /**
       * <code>optional uint32 page_mode = 7;</code>
       * @param value The pageMode to set.
       * @return This builder for chaining.
       */
      public Builder setPageMode(int value) {
        copyOnWrite();
        instance.setPageMode(value);
        return this;
      }
      /**
       * <code>optional uint32 page_mode = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageMode() {
        copyOnWrite();
        instance.clearPageMode();
        return this;
      }

      /**
       * <code>optional uint32 main_page_status = 8;</code>
       * @return Whether the mainPageStatus field is set.
       */
      @java.lang.Override
      public boolean hasMainPageStatus() {
        return instance.hasMainPageStatus();
      }
      /**
       * <code>optional uint32 main_page_status = 8;</code>
       * @return The mainPageStatus.
       */
      @java.lang.Override
      public int getMainPageStatus() {
        return instance.getMainPageStatus();
      }
      /**
       * <code>optional uint32 main_page_status = 8;</code>
       * @param value The mainPageStatus to set.
       * @return This builder for chaining.
       */
      public Builder setMainPageStatus(int value) {
        copyOnWrite();
        instance.setMainPageStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 main_page_status = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMainPageStatus() {
        copyOnWrite();
        instance.clearMainPageStatus();
        return this;
      }

      /**
       * <code>optional uint32 line_width = 9;</code>
       * @return Whether the lineWidth field is set.
       */
      @java.lang.Override
      public boolean hasLineWidth() {
        return instance.hasLineWidth();
      }
      /**
       * <code>optional uint32 line_width = 9;</code>
       * @return The lineWidth.
       */
      @java.lang.Override
      public int getLineWidth() {
        return instance.getLineWidth();
      }
      /**
       * <code>optional uint32 line_width = 9;</code>
       * @param value The lineWidth to set.
       * @return This builder for chaining.
       */
      public Builder setLineWidth(int value) {
        copyOnWrite();
        instance.setLineWidth(value);
        return this;
      }
      /**
       * <code>optional uint32 line_width = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearLineWidth() {
        copyOnWrite();
        instance.clearLineWidth();
        return this;
      }

      /**
       * <code>optional uint32 graphic_display = 10;</code>
       * @return Whether the graphicDisplay field is set.
       */
      @java.lang.Override
      public boolean hasGraphicDisplay() {
        return instance.hasGraphicDisplay();
      }
      /**
       * <code>optional uint32 graphic_display = 10;</code>
       * @return The graphicDisplay.
       */
      @java.lang.Override
      public int getGraphicDisplay() {
        return instance.getGraphicDisplay();
      }
      /**
       * <code>optional uint32 graphic_display = 10;</code>
       * @param value The graphicDisplay to set.
       * @return This builder for chaining.
       */
      public Builder setGraphicDisplay(int value) {
        copyOnWrite();
        instance.setGraphicDisplay(value);
        return this;
      }
      /**
       * <code>optional uint32 graphic_display = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearGraphicDisplay() {
        copyOnWrite();
        instance.clearGraphicDisplay();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:page_msg)
    }
    @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.Config.page_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "pageIndex_",
              "status_",
              "data_",
              "dataSite_",
              "pageName_",
              "pageType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.PAGE_TYPE.internalGetVerifier(),
              "pageMode_",
              "mainPageStatus_",
              "lineWidth_",
              "graphicDisplay_",
            };
            java.lang.String info =
                "\u0001\n\u0000\u0001\u0001\n\n\u0000\u0001\u0000\u0001\u100b\u0000\u0002\u100b\u0001" +
                "\u0003\u001d\u0004\u100b\u0002\u0005\u1008\u0003\u0006\u100c\u0004\u0007\u100b\u0005" +
                "\b\u100b\u0006\t\u100b\u0007\n\u100b\b";
            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.Config.page_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg>(
                        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:page_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg DEFAULT_INSTANCE;
    static {
      page_msg defaultInstance = new page_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        page_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional uint32 page_line_num_max = 1;</code>
     * @return Whether the pageLineNumMax field is set.
     */
    boolean hasPageLineNumMax();
    /**
     * <code>optional uint32 page_line_num_max = 1;</code>
     * @return The pageLineNumMax.
     */
    int getPageLineNumMax();

    /**
     * <code>optional uint32 page_line_data_max = 2;</code>
     * @return Whether the pageLineDataMax field is set.
     */
    boolean hasPageLineDataMax();
    /**
     * <code>optional uint32 page_line_data_max = 2;</code>
     * @return The pageLineDataMax.
     */
    int getPageLineDataMax();

    /**
     * <code>optional uint32 data_page_num_max = 3;</code>
     * @return Whether the dataPageNumMax field is set.
     */
    boolean hasDataPageNumMax();
    /**
     * <code>optional uint32 data_page_num_max = 3;</code>
     * @return The dataPageNumMax.
     */
    int getDataPageNumMax();

    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @return A list containing the unsupportData.
     */
    java.util.List<java.lang.Integer> getUnsupportDataList();
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @return The count of unsupportData.
     */
    int getUnsupportDataCount();
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @param index The index of the element to return.
     * @return The unsupportData at the given index.
     */
    int getUnsupportData(int index);

    /**
     * <code>optional .LCD_TYPE lcd_type = 5;</code>
     * @return Whether the lcdType field is set.
     */
    boolean hasLcdType();
    /**
     * <code>optional .LCD_TYPE lcd_type = 5;</code>
     * @return The lcdType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE getLcdType();

    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @return A list containing the supportPageLayout.
     */
    java.util.List<java.lang.Integer> getSupportPageLayoutList();
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @return The count of supportPageLayout.
     */
    int getSupportPageLayoutCount();
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @param index The index of the element to return.
     * @return The supportPageLayout at the given index.
     */
    int getSupportPageLayout(int index);

    /**
     * <code>optional uint32 main_page_open = 11;</code>
     * @return Whether the mainPageOpen field is set.
     */
    boolean hasMainPageOpen();
    /**
     * <code>optional uint32 main_page_open = 11;</code>
     * @return The mainPageOpen.
     */
    int getMainPageOpen();
  }
  /**
   * Protobuf type {@code cur_page_status_msg}
   */
  public  static final class cur_page_status_msg extends
      com.google.protobuf.GeneratedMessageLite<
          cur_page_status_msg, cur_page_status_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:cur_page_status_msg)
      cur_page_status_msgOrBuilder {
    private cur_page_status_msg() {
      unsupportData_ = emptyIntList();
      supportPageLayout_ = emptyIntList();
    }
    private int bitField0_;
    public static final int PAGE_LINE_NUM_MAX_FIELD_NUMBER = 1;
    private int pageLineNumMax_;
    /**
     * <code>optional uint32 page_line_num_max = 1;</code>
     * @return Whether the pageLineNumMax field is set.
     */
    @java.lang.Override
    public boolean hasPageLineNumMax() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 page_line_num_max = 1;</code>
     * @return The pageLineNumMax.
     */
    @java.lang.Override
    public int getPageLineNumMax() {
      return pageLineNumMax_;
    }
    /**
     * <code>optional uint32 page_line_num_max = 1;</code>
     * @param value The pageLineNumMax to set.
     */
    private void setPageLineNumMax(int value) {
      bitField0_ |= 0x00000001;
      pageLineNumMax_ = value;
    }
    /**
     * <code>optional uint32 page_line_num_max = 1;</code>
     */
    private void clearPageLineNumMax() {
      bitField0_ = (bitField0_ & ~0x00000001);
      pageLineNumMax_ = 0;
    }

    public static final int PAGE_LINE_DATA_MAX_FIELD_NUMBER = 2;
    private int pageLineDataMax_;
    /**
     * <code>optional uint32 page_line_data_max = 2;</code>
     * @return Whether the pageLineDataMax field is set.
     */
    @java.lang.Override
    public boolean hasPageLineDataMax() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 page_line_data_max = 2;</code>
     * @return The pageLineDataMax.
     */
    @java.lang.Override
    public int getPageLineDataMax() {
      return pageLineDataMax_;
    }
    /**
     * <code>optional uint32 page_line_data_max = 2;</code>
     * @param value The pageLineDataMax to set.
     */
    private void setPageLineDataMax(int value) {
      bitField0_ |= 0x00000002;
      pageLineDataMax_ = value;
    }
    /**
     * <code>optional uint32 page_line_data_max = 2;</code>
     */
    private void clearPageLineDataMax() {
      bitField0_ = (bitField0_ & ~0x00000002);
      pageLineDataMax_ = 0;
    }

    public static final int DATA_PAGE_NUM_MAX_FIELD_NUMBER = 3;
    private int dataPageNumMax_;
    /**
     * <code>optional uint32 data_page_num_max = 3;</code>
     * @return Whether the dataPageNumMax field is set.
     */
    @java.lang.Override
    public boolean hasDataPageNumMax() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 data_page_num_max = 3;</code>
     * @return The dataPageNumMax.
     */
    @java.lang.Override
    public int getDataPageNumMax() {
      return dataPageNumMax_;
    }
    /**
     * <code>optional uint32 data_page_num_max = 3;</code>
     * @param value The dataPageNumMax to set.
     */
    private void setDataPageNumMax(int value) {
      bitField0_ |= 0x00000004;
      dataPageNumMax_ = value;
    }
    /**
     * <code>optional uint32 data_page_num_max = 3;</code>
     */
    private void clearDataPageNumMax() {
      bitField0_ = (bitField0_ & ~0x00000004);
      dataPageNumMax_ = 0;
    }

    public static final int UNSUPPORT_DATA_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.IntList unsupportData_;
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @return A list containing the unsupportData.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getUnsupportDataList() {
      return unsupportData_;
    }
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @return The count of unsupportData.
     */
    @java.lang.Override
    public int getUnsupportDataCount() {
      return unsupportData_.size();
    }
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @param index The index of the element to return.
     * @return The unsupportData at the given index.
     */
    @java.lang.Override
    public int getUnsupportData(int index) {
      return unsupportData_.getInt(index);
    }
    private void ensureUnsupportDataIsMutable() {
      com.google.protobuf.Internal.IntList tmp = unsupportData_;
      if (!tmp.isModifiable()) {
        unsupportData_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @param index The index to set the value at.
     * @param value The unsupportData to set.
     */
    private void setUnsupportData(
        int index, int value) {
      ensureUnsupportDataIsMutable();
      unsupportData_.setInt(index, value);
    }
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @param value The unsupportData to add.
     */
    private void addUnsupportData(int value) {
      ensureUnsupportDataIsMutable();
      unsupportData_.addInt(value);
    }
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     * @param values The unsupportData to add.
     */
    private void addAllUnsupportData(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensureUnsupportDataIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, unsupportData_);
    }
    /**
     * <code>repeated uint32 unsupport_data = 4;</code>
     */
    private void clearUnsupportData() {
      unsupportData_ = emptyIntList();
    }

    public static final int LCD_TYPE_FIELD_NUMBER = 5;
    private int lcdType_;
    /**
     * <code>optional .LCD_TYPE lcd_type = 5;</code>
     * @return Whether the lcdType field is set.
     */
    @java.lang.Override
    public boolean hasLcdType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .LCD_TYPE lcd_type = 5;</code>
     * @return The lcdType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE getLcdType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE.forNumber(lcdType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE.INVALID : result;
    }
    /**
     * <code>optional .LCD_TYPE lcd_type = 5;</code>
     * @param value The lcdType to set.
     */
    private void setLcdType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE value) {
      lcdType_ = value.getNumber();
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .LCD_TYPE lcd_type = 5;</code>
     */
    private void clearLcdType() {
      bitField0_ = (bitField0_ & ~0x00000008);
      lcdType_ = 0;
    }

    public static final int SUPPORT_PAGE_LAYOUT_FIELD_NUMBER = 6;
    private com.google.protobuf.Internal.IntList supportPageLayout_;
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @return A list containing the supportPageLayout.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getSupportPageLayoutList() {
      return supportPageLayout_;
    }
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @return The count of supportPageLayout.
     */
    @java.lang.Override
    public int getSupportPageLayoutCount() {
      return supportPageLayout_.size();
    }
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @param index The index of the element to return.
     * @return The supportPageLayout at the given index.
     */
    @java.lang.Override
    public int getSupportPageLayout(int index) {
      return supportPageLayout_.getInt(index);
    }
    private void ensureSupportPageLayoutIsMutable() {
      com.google.protobuf.Internal.IntList tmp = supportPageLayout_;
      if (!tmp.isModifiable()) {
        supportPageLayout_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @param index The index to set the value at.
     * @param value The supportPageLayout to set.
     */
    private void setSupportPageLayout(
        int index, int value) {
      ensureSupportPageLayoutIsMutable();
      supportPageLayout_.setInt(index, value);
    }
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @param value The supportPageLayout to add.
     */
    private void addSupportPageLayout(int value) {
      ensureSupportPageLayoutIsMutable();
      supportPageLayout_.addInt(value);
    }
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     * @param values The supportPageLayout to add.
     */
    private void addAllSupportPageLayout(
        java.lang.Iterable<? extends java.lang.Integer> values) {
      ensureSupportPageLayoutIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, supportPageLayout_);
    }
    /**
     * <code>repeated uint32 support_page_layout = 6;</code>
     */
    private void clearSupportPageLayout() {
      supportPageLayout_ = emptyIntList();
    }

    public static final int MAIN_PAGE_OPEN_FIELD_NUMBER = 11;
    private int mainPageOpen_;
    /**
     * <code>optional uint32 main_page_open = 11;</code>
     * @return Whether the mainPageOpen field is set.
     */
    @java.lang.Override
    public boolean hasMainPageOpen() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional uint32 main_page_open = 11;</code>
     * @return The mainPageOpen.
     */
    @java.lang.Override
    public int getMainPageOpen() {
      return mainPageOpen_;
    }
    /**
     * <code>optional uint32 main_page_open = 11;</code>
     * @param value The mainPageOpen to set.
     */
    private void setMainPageOpen(int value) {
      bitField0_ |= 0x00000010;
      mainPageOpen_ = value;
    }
    /**
     * <code>optional uint32 main_page_open = 11;</code>
     */
    private void clearMainPageOpen() {
      bitField0_ = (bitField0_ & ~0x00000010);
      mainPageOpen_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_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.Config.cur_page_status_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional uint32 page_line_num_max = 1;</code>
       * @return Whether the pageLineNumMax field is set.
       */
      @java.lang.Override
      public boolean hasPageLineNumMax() {
        return instance.hasPageLineNumMax();
      }
      /**
       * <code>optional uint32 page_line_num_max = 1;</code>
       * @return The pageLineNumMax.
       */
      @java.lang.Override
      public int getPageLineNumMax() {
        return instance.getPageLineNumMax();
      }
      /**
       * <code>optional uint32 page_line_num_max = 1;</code>
       * @param value The pageLineNumMax to set.
       * @return This builder for chaining.
       */
      public Builder setPageLineNumMax(int value) {
        copyOnWrite();
        instance.setPageLineNumMax(value);
        return this;
      }
      /**
       * <code>optional uint32 page_line_num_max = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPageLineNumMax() {
        copyOnWrite();
        instance.clearPageLineNumMax();
        return this;
      }

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

      /**
       * <code>optional uint32 data_page_num_max = 3;</code>
       * @return Whether the dataPageNumMax field is set.
       */
      @java.lang.Override
      public boolean hasDataPageNumMax() {
        return instance.hasDataPageNumMax();
      }
      /**
       * <code>optional uint32 data_page_num_max = 3;</code>
       * @return The dataPageNumMax.
       */
      @java.lang.Override
      public int getDataPageNumMax() {
        return instance.getDataPageNumMax();
      }
      /**
       * <code>optional uint32 data_page_num_max = 3;</code>
       * @param value The dataPageNumMax to set.
       * @return This builder for chaining.
       */
      public Builder setDataPageNumMax(int value) {
        copyOnWrite();
        instance.setDataPageNumMax(value);
        return this;
      }
      /**
       * <code>optional uint32 data_page_num_max = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataPageNumMax() {
        copyOnWrite();
        instance.clearDataPageNumMax();
        return this;
      }

      /**
       * <code>repeated uint32 unsupport_data = 4;</code>
       * @return A list containing the unsupportData.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getUnsupportDataList() {
        return java.util.Collections.unmodifiableList(
            instance.getUnsupportDataList());
      }
      /**
       * <code>repeated uint32 unsupport_data = 4;</code>
       * @return The count of unsupportData.
       */
      @java.lang.Override
      public int getUnsupportDataCount() {
        return instance.getUnsupportDataCount();
      }
      /**
       * <code>repeated uint32 unsupport_data = 4;</code>
       * @param index The index of the element to return.
       * @return The unsupportData at the given index.
       */
      @java.lang.Override
      public int getUnsupportData(int index) {
        return instance.getUnsupportData(index);
      }
      /**
       * <code>repeated uint32 unsupport_data = 4;</code>
       * @param value The unsupportData to set.
       * @return This builder for chaining.
       */
      public Builder setUnsupportData(
          int index, int value) {
        copyOnWrite();
        instance.setUnsupportData(index, value);
        return this;
      }
      /**
       * <code>repeated uint32 unsupport_data = 4;</code>
       * @param value The unsupportData to add.
       * @return This builder for chaining.
       */
      public Builder addUnsupportData(int value) {
        copyOnWrite();
        instance.addUnsupportData(value);
        return this;
      }
      /**
       * <code>repeated uint32 unsupport_data = 4;</code>
       * @param values The unsupportData to add.
       * @return This builder for chaining.
       */
      public Builder addAllUnsupportData(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllUnsupportData(values);
        return this;
      }
      /**
       * <code>repeated uint32 unsupport_data = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearUnsupportData() {
        copyOnWrite();
        instance.clearUnsupportData();
        return this;
      }

      /**
       * <code>optional .LCD_TYPE lcd_type = 5;</code>
       * @return Whether the lcdType field is set.
       */
      @java.lang.Override
      public boolean hasLcdType() {
        return instance.hasLcdType();
      }
      /**
       * <code>optional .LCD_TYPE lcd_type = 5;</code>
       * @return The lcdType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE getLcdType() {
        return instance.getLcdType();
      }
      /**
       * <code>optional .LCD_TYPE lcd_type = 5;</code>
       * @param value The enum numeric value on the wire for lcdType to set.
       * @return This builder for chaining.
       */
      public Builder setLcdType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE value) {
        copyOnWrite();
        instance.setLcdType(value);
        return this;
      }
      /**
       * <code>optional .LCD_TYPE lcd_type = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLcdType() {
        copyOnWrite();
        instance.clearLcdType();
        return this;
      }

      /**
       * <code>repeated uint32 support_page_layout = 6;</code>
       * @return A list containing the supportPageLayout.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getSupportPageLayoutList() {
        return java.util.Collections.unmodifiableList(
            instance.getSupportPageLayoutList());
      }
      /**
       * <code>repeated uint32 support_page_layout = 6;</code>
       * @return The count of supportPageLayout.
       */
      @java.lang.Override
      public int getSupportPageLayoutCount() {
        return instance.getSupportPageLayoutCount();
      }
      /**
       * <code>repeated uint32 support_page_layout = 6;</code>
       * @param index The index of the element to return.
       * @return The supportPageLayout at the given index.
       */
      @java.lang.Override
      public int getSupportPageLayout(int index) {
        return instance.getSupportPageLayout(index);
      }
      /**
       * <code>repeated uint32 support_page_layout = 6;</code>
       * @param value The supportPageLayout to set.
       * @return This builder for chaining.
       */
      public Builder setSupportPageLayout(
          int index, int value) {
        copyOnWrite();
        instance.setSupportPageLayout(index, value);
        return this;
      }
      /**
       * <code>repeated uint32 support_page_layout = 6;</code>
       * @param value The supportPageLayout to add.
       * @return This builder for chaining.
       */
      public Builder addSupportPageLayout(int value) {
        copyOnWrite();
        instance.addSupportPageLayout(value);
        return this;
      }
      /**
       * <code>repeated uint32 support_page_layout = 6;</code>
       * @param values The supportPageLayout to add.
       * @return This builder for chaining.
       */
      public Builder addAllSupportPageLayout(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        copyOnWrite();
        instance.addAllSupportPageLayout(values);
        return this;
      }
      /**
       * <code>repeated uint32 support_page_layout = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearSupportPageLayout() {
        copyOnWrite();
        instance.clearSupportPageLayout();
        return this;
      }

      /**
       * <code>optional uint32 main_page_open = 11;</code>
       * @return Whether the mainPageOpen field is set.
       */
      @java.lang.Override
      public boolean hasMainPageOpen() {
        return instance.hasMainPageOpen();
      }
      /**
       * <code>optional uint32 main_page_open = 11;</code>
       * @return The mainPageOpen.
       */
      @java.lang.Override
      public int getMainPageOpen() {
        return instance.getMainPageOpen();
      }
      /**
       * <code>optional uint32 main_page_open = 11;</code>
       * @param value The mainPageOpen to set.
       * @return This builder for chaining.
       */
      public Builder setMainPageOpen(int value) {
        copyOnWrite();
        instance.setMainPageOpen(value);
        return this;
      }
      /**
       * <code>optional uint32 main_page_open = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearMainPageOpen() {
        copyOnWrite();
        instance.clearMainPageOpen();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:cur_page_status_msg)
    }
    @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.Config.cur_page_status_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "pageLineNumMax_",
              "pageLineDataMax_",
              "dataPageNumMax_",
              "unsupportData_",
              "lcdType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LCD_TYPE.internalGetVerifier(),
              "supportPageLayout_",
              "mainPageOpen_",
            };
            java.lang.String info =
                "\u0001\u0007\u0000\u0001\u0001\u000b\u0007\u0000\u0002\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001\u0003\u100b\u0002\u0004\u001d\u0005\u100c\u0003\u0006\u001d\u000b\u100b" +
                "\u0004";
            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.Config.cur_page_status_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg>(
                        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:cur_page_status_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg DEFAULT_INSTANCE;
    static {
      cur_page_status_msg defaultInstance = new cur_page_status_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        cur_page_status_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional uint32 bike_index = 1;</code>
     * @return Whether the bikeIndex field is set.
     */
    boolean hasBikeIndex();
    /**
     * <code>optional uint32 bike_index = 1;</code>
     * @return The bikeIndex.
     */
    int getBikeIndex();

    /**
     * <code>optional string bike_name = 2;</code>
     * @return Whether the bikeName field is set.
     */
    boolean hasBikeName();
    /**
     * <code>optional string bike_name = 2;</code>
     * @return The bikeName.
     */
    java.lang.String getBikeName();
    /**
     * <code>optional string bike_name = 2;</code>
     * @return The bytes for bikeName.
     */
    com.google.protobuf.ByteString
        getBikeNameBytes();

    /**
     * <code>optional uint32 bike_weigth = 3;</code>
     * @return Whether the bikeWeigth field is set.
     */
    boolean hasBikeWeigth();
    /**
     * <code>optional uint32 bike_weigth = 3;</code>
     * @return The bikeWeigth.
     */
    int getBikeWeigth();

    /**
     * <code>optional uint32 wheel_dia = 4;</code>
     * @return Whether the wheelDia field is set.
     */
    boolean hasWheelDia();
    /**
     * <code>optional uint32 wheel_dia = 4;</code>
     * @return The wheelDia.
     */
    int getWheelDia();

    /**
     * <code>optional uint64 odometer = 5;</code>
     * @return Whether the odometer field is set.
     */
    boolean hasOdometer();
    /**
     * <code>optional uint64 odometer = 5;</code>
     * @return The odometer.
     */
    long getOdometer();

    /**
     * <code>optional uint32 auto_dia = 6;</code>
     * @return Whether the autoDia field is set.
     */
    boolean hasAutoDia();
    /**
     * <code>optional uint32 auto_dia = 6;</code>
     * @return The autoDia.
     */
    int getAutoDia();

    /**
     * <code>optional uint32 bike_status = 7;</code>
     * @return Whether the bikeStatus field is set.
     */
    boolean hasBikeStatus();
    /**
     * <code>optional uint32 bike_status = 7;</code>
     * @return The bikeStatus.
     */
    int getBikeStatus();
  }
  /**
   * Protobuf type {@code bike_msg}
   */
  public  static final class bike_msg extends
      com.google.protobuf.GeneratedMessageLite<
          bike_msg, bike_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:bike_msg)
      bike_msgOrBuilder {
    private bike_msg() {
      bikeName_ = "";
    }
    private int bitField0_;
    public static final int BIKE_INDEX_FIELD_NUMBER = 1;
    private int bikeIndex_;
    /**
     * <code>optional uint32 bike_index = 1;</code>
     * @return Whether the bikeIndex field is set.
     */
    @java.lang.Override
    public boolean hasBikeIndex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 bike_index = 1;</code>
     * @return The bikeIndex.
     */
    @java.lang.Override
    public int getBikeIndex() {
      return bikeIndex_;
    }
    /**
     * <code>optional uint32 bike_index = 1;</code>
     * @param value The bikeIndex to set.
     */
    private void setBikeIndex(int value) {
      bitField0_ |= 0x00000001;
      bikeIndex_ = value;
    }
    /**
     * <code>optional uint32 bike_index = 1;</code>
     */
    private void clearBikeIndex() {
      bitField0_ = (bitField0_ & ~0x00000001);
      bikeIndex_ = 0;
    }

    public static final int BIKE_NAME_FIELD_NUMBER = 2;
    private java.lang.String bikeName_;
    /**
     * <code>optional string bike_name = 2;</code>
     * @return Whether the bikeName field is set.
     */
    @java.lang.Override
    public boolean hasBikeName() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string bike_name = 2;</code>
     * @return The bikeName.
     */
    @java.lang.Override
    public java.lang.String getBikeName() {
      return bikeName_;
    }
    /**
     * <code>optional string bike_name = 2;</code>
     * @return The bytes for bikeName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBikeNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(bikeName_);
    }
    /**
     * <code>optional string bike_name = 2;</code>
     * @param value The bikeName to set.
     */
    private void setBikeName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000002;
      bikeName_ = value;
    }
    /**
     * <code>optional string bike_name = 2;</code>
     */
    private void clearBikeName() {
      bitField0_ = (bitField0_ & ~0x00000002);
      bikeName_ = getDefaultInstance().getBikeName();
    }
    /**
     * <code>optional string bike_name = 2;</code>
     * @param value The bytes for bikeName to set.
     */
    private void setBikeNameBytes(
        com.google.protobuf.ByteString value) {
      bikeName_ = value.toStringUtf8();
      bitField0_ |= 0x00000002;
    }

    public static final int BIKE_WEIGTH_FIELD_NUMBER = 3;
    private int bikeWeigth_;
    /**
     * <code>optional uint32 bike_weigth = 3;</code>
     * @return Whether the bikeWeigth field is set.
     */
    @java.lang.Override
    public boolean hasBikeWeigth() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 bike_weigth = 3;</code>
     * @return The bikeWeigth.
     */
    @java.lang.Override
    public int getBikeWeigth() {
      return bikeWeigth_;
    }
    /**
     * <code>optional uint32 bike_weigth = 3;</code>
     * @param value The bikeWeigth to set.
     */
    private void setBikeWeigth(int value) {
      bitField0_ |= 0x00000004;
      bikeWeigth_ = value;
    }
    /**
     * <code>optional uint32 bike_weigth = 3;</code>
     */
    private void clearBikeWeigth() {
      bitField0_ = (bitField0_ & ~0x00000004);
      bikeWeigth_ = 0;
    }

    public static final int WHEEL_DIA_FIELD_NUMBER = 4;
    private int wheelDia_;
    /**
     * <code>optional uint32 wheel_dia = 4;</code>
     * @return Whether the wheelDia field is set.
     */
    @java.lang.Override
    public boolean hasWheelDia() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional uint32 wheel_dia = 4;</code>
     * @return The wheelDia.
     */
    @java.lang.Override
    public int getWheelDia() {
      return wheelDia_;
    }
    /**
     * <code>optional uint32 wheel_dia = 4;</code>
     * @param value The wheelDia to set.
     */
    private void setWheelDia(int value) {
      bitField0_ |= 0x00000008;
      wheelDia_ = value;
    }
    /**
     * <code>optional uint32 wheel_dia = 4;</code>
     */
    private void clearWheelDia() {
      bitField0_ = (bitField0_ & ~0x00000008);
      wheelDia_ = 0;
    }

    public static final int ODOMETER_FIELD_NUMBER = 5;
    private long odometer_;
    /**
     * <code>optional uint64 odometer = 5;</code>
     * @return Whether the odometer field is set.
     */
    @java.lang.Override
    public boolean hasOdometer() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional uint64 odometer = 5;</code>
     * @return The odometer.
     */
    @java.lang.Override
    public long getOdometer() {
      return odometer_;
    }
    /**
     * <code>optional uint64 odometer = 5;</code>
     * @param value The odometer to set.
     */
    private void setOdometer(long value) {
      bitField0_ |= 0x00000010;
      odometer_ = value;
    }
    /**
     * <code>optional uint64 odometer = 5;</code>
     */
    private void clearOdometer() {
      bitField0_ = (bitField0_ & ~0x00000010);
      odometer_ = 0L;
    }

    public static final int AUTO_DIA_FIELD_NUMBER = 6;
    private int autoDia_;
    /**
     * <code>optional uint32 auto_dia = 6;</code>
     * @return Whether the autoDia field is set.
     */
    @java.lang.Override
    public boolean hasAutoDia() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional uint32 auto_dia = 6;</code>
     * @return The autoDia.
     */
    @java.lang.Override
    public int getAutoDia() {
      return autoDia_;
    }
    /**
     * <code>optional uint32 auto_dia = 6;</code>
     * @param value The autoDia to set.
     */
    private void setAutoDia(int value) {
      bitField0_ |= 0x00000020;
      autoDia_ = value;
    }
    /**
     * <code>optional uint32 auto_dia = 6;</code>
     */
    private void clearAutoDia() {
      bitField0_ = (bitField0_ & ~0x00000020);
      autoDia_ = 0;
    }

    public static final int BIKE_STATUS_FIELD_NUMBER = 7;
    private int bikeStatus_;
    /**
     * <code>optional uint32 bike_status = 7;</code>
     * @return Whether the bikeStatus field is set.
     */
    @java.lang.Override
    public boolean hasBikeStatus() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional uint32 bike_status = 7;</code>
     * @return The bikeStatus.
     */
    @java.lang.Override
    public int getBikeStatus() {
      return bikeStatus_;
    }
    /**
     * <code>optional uint32 bike_status = 7;</code>
     * @param value The bikeStatus to set.
     */
    private void setBikeStatus(int value) {
      bitField0_ |= 0x00000040;
      bikeStatus_ = value;
    }
    /**
     * <code>optional uint32 bike_status = 7;</code>
     */
    private void clearBikeStatus() {
      bitField0_ = (bitField0_ & ~0x00000040);
      bikeStatus_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_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.Config.bike_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.Config.bike_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.Config.bike_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.Config.bike_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.Config.bike_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.Config.bike_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.Config.bike_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.Config.bike_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_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.Config.bike_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.Config.bike_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.Config.bike_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional uint32 bike_index = 1;</code>
       * @return Whether the bikeIndex field is set.
       */
      @java.lang.Override
      public boolean hasBikeIndex() {
        return instance.hasBikeIndex();
      }
      /**
       * <code>optional uint32 bike_index = 1;</code>
       * @return The bikeIndex.
       */
      @java.lang.Override
      public int getBikeIndex() {
        return instance.getBikeIndex();
      }
      /**
       * <code>optional uint32 bike_index = 1;</code>
       * @param value The bikeIndex to set.
       * @return This builder for chaining.
       */
      public Builder setBikeIndex(int value) {
        copyOnWrite();
        instance.setBikeIndex(value);
        return this;
      }
      /**
       * <code>optional uint32 bike_index = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBikeIndex() {
        copyOnWrite();
        instance.clearBikeIndex();
        return this;
      }

      /**
       * <code>optional string bike_name = 2;</code>
       * @return Whether the bikeName field is set.
       */
      @java.lang.Override
      public boolean hasBikeName() {
        return instance.hasBikeName();
      }
      /**
       * <code>optional string bike_name = 2;</code>
       * @return The bikeName.
       */
      @java.lang.Override
      public java.lang.String getBikeName() {
        return instance.getBikeName();
      }
      /**
       * <code>optional string bike_name = 2;</code>
       * @return The bytes for bikeName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getBikeNameBytes() {
        return instance.getBikeNameBytes();
      }
      /**
       * <code>optional string bike_name = 2;</code>
       * @param value The bikeName to set.
       * @return This builder for chaining.
       */
      public Builder setBikeName(
          java.lang.String value) {
        copyOnWrite();
        instance.setBikeName(value);
        return this;
      }
      /**
       * <code>optional string bike_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBikeName() {
        copyOnWrite();
        instance.clearBikeName();
        return this;
      }
      /**
       * <code>optional string bike_name = 2;</code>
       * @param value The bytes for bikeName to set.
       * @return This builder for chaining.
       */
      public Builder setBikeNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setBikeNameBytes(value);
        return this;
      }

      /**
       * <code>optional uint32 bike_weigth = 3;</code>
       * @return Whether the bikeWeigth field is set.
       */
      @java.lang.Override
      public boolean hasBikeWeigth() {
        return instance.hasBikeWeigth();
      }
      /**
       * <code>optional uint32 bike_weigth = 3;</code>
       * @return The bikeWeigth.
       */
      @java.lang.Override
      public int getBikeWeigth() {
        return instance.getBikeWeigth();
      }
      /**
       * <code>optional uint32 bike_weigth = 3;</code>
       * @param value The bikeWeigth to set.
       * @return This builder for chaining.
       */
      public Builder setBikeWeigth(int value) {
        copyOnWrite();
        instance.setBikeWeigth(value);
        return this;
      }
      /**
       * <code>optional uint32 bike_weigth = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearBikeWeigth() {
        copyOnWrite();
        instance.clearBikeWeigth();
        return this;
      }

      /**
       * <code>optional uint32 wheel_dia = 4;</code>
       * @return Whether the wheelDia field is set.
       */
      @java.lang.Override
      public boolean hasWheelDia() {
        return instance.hasWheelDia();
      }
      /**
       * <code>optional uint32 wheel_dia = 4;</code>
       * @return The wheelDia.
       */
      @java.lang.Override
      public int getWheelDia() {
        return instance.getWheelDia();
      }
      /**
       * <code>optional uint32 wheel_dia = 4;</code>
       * @param value The wheelDia to set.
       * @return This builder for chaining.
       */
      public Builder setWheelDia(int value) {
        copyOnWrite();
        instance.setWheelDia(value);
        return this;
      }
      /**
       * <code>optional uint32 wheel_dia = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearWheelDia() {
        copyOnWrite();
        instance.clearWheelDia();
        return this;
      }

      /**
       * <code>optional uint64 odometer = 5;</code>
       * @return Whether the odometer field is set.
       */
      @java.lang.Override
      public boolean hasOdometer() {
        return instance.hasOdometer();
      }
      /**
       * <code>optional uint64 odometer = 5;</code>
       * @return The odometer.
       */
      @java.lang.Override
      public long getOdometer() {
        return instance.getOdometer();
      }
      /**
       * <code>optional uint64 odometer = 5;</code>
       * @param value The odometer to set.
       * @return This builder for chaining.
       */
      public Builder setOdometer(long value) {
        copyOnWrite();
        instance.setOdometer(value);
        return this;
      }
      /**
       * <code>optional uint64 odometer = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOdometer() {
        copyOnWrite();
        instance.clearOdometer();
        return this;
      }

      /**
       * <code>optional uint32 auto_dia = 6;</code>
       * @return Whether the autoDia field is set.
       */
      @java.lang.Override
      public boolean hasAutoDia() {
        return instance.hasAutoDia();
      }
      /**
       * <code>optional uint32 auto_dia = 6;</code>
       * @return The autoDia.
       */
      @java.lang.Override
      public int getAutoDia() {
        return instance.getAutoDia();
      }
      /**
       * <code>optional uint32 auto_dia = 6;</code>
       * @param value The autoDia to set.
       * @return This builder for chaining.
       */
      public Builder setAutoDia(int value) {
        copyOnWrite();
        instance.setAutoDia(value);
        return this;
      }
      /**
       * <code>optional uint32 auto_dia = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoDia() {
        copyOnWrite();
        instance.clearAutoDia();
        return this;
      }

      /**
       * <code>optional uint32 bike_status = 7;</code>
       * @return Whether the bikeStatus field is set.
       */
      @java.lang.Override
      public boolean hasBikeStatus() {
        return instance.hasBikeStatus();
      }
      /**
       * <code>optional uint32 bike_status = 7;</code>
       * @return The bikeStatus.
       */
      @java.lang.Override
      public int getBikeStatus() {
        return instance.getBikeStatus();
      }
      /**
       * <code>optional uint32 bike_status = 7;</code>
       * @param value The bikeStatus to set.
       * @return This builder for chaining.
       */
      public Builder setBikeStatus(int value) {
        copyOnWrite();
        instance.setBikeStatus(value);
        return this;
      }
      /**
       * <code>optional uint32 bike_status = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearBikeStatus() {
        copyOnWrite();
        instance.clearBikeStatus();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:bike_msg)
    }
    @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.Config.bike_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "bikeIndex_",
              "bikeName_",
              "bikeWeigth_",
              "wheelDia_",
              "odometer_",
              "autoDia_",
              "bikeStatus_",
            };
            java.lang.String info =
                "\u0001\u0007\u0000\u0001\u0001\u0007\u0007\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u1008\u0001\u0003\u100b\u0002\u0004\u100b\u0003\u0005\u1003\u0004\u0006\u100b\u0005" +
                "\u0007\u100b\u0006";
            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.Config.bike_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg>(
                        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:bike_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg DEFAULT_INSTANCE;
    static {
      bike_msg defaultInstance = new bike_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        bike_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
     * @return Whether the curLanguage field is set.
     */
    boolean hasCurLanguage();
    /**
     * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
     * @return The curLanguage.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE getCurLanguage();

    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @return A list containing the supportedLanguage.
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE> getSupportedLanguageList();
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @return The count of supportedLanguage.
     */
    int getSupportedLanguageCount();
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @param index The index of the element to return.
     * @return The supportedLanguage at the given index.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE getSupportedLanguage(int index);
  }
  /**
   * Protobuf type {@code language_msg}
   */
  public  static final class language_msg extends
      com.google.protobuf.GeneratedMessageLite<
          language_msg, language_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:language_msg)
      language_msgOrBuilder {
    private language_msg() {
      supportedLanguage_ = emptyIntList();
    }
    private int bitField0_;
    public static final int CUR_LANGUAGE_FIELD_NUMBER = 1;
    private int curLanguage_;
    /**
     * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
     * @return Whether the curLanguage field is set.
     */
    @java.lang.Override
    public boolean hasCurLanguage() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
     * @return The curLanguage.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE getCurLanguage() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.forNumber(curLanguage_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.enum_LANGUAGE_TYPE_INVALID : result;
    }
    /**
     * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
     * @param value The curLanguage to set.
     */
    private void setCurLanguage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE value) {
      curLanguage_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
     */
    private void clearCurLanguage() {
      bitField0_ = (bitField0_ & ~0x00000001);
      curLanguage_ = 0;
    }

    public static final int SUPPORTED_LANGUAGE_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.IntList supportedLanguage_;
    private static final com.google.protobuf.Internal.ListAdapter.Converter<
        java.lang.Integer, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE> supportedLanguage_converter_ =
            new com.google.protobuf.Internal.ListAdapter.Converter<
                java.lang.Integer, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE>() {
              @java.lang.Override
              public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE convert(java.lang.Integer from) {
                nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.forNumber(from);
                return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.enum_LANGUAGE_TYPE_INVALID : result;
              }
            };
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @return A list containing the supportedLanguage.
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE> getSupportedLanguageList() {
      return new com.google.protobuf.Internal.ListAdapter<
          java.lang.Integer, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE>(supportedLanguage_, supportedLanguage_converter_);
    }
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @return The count of supportedLanguage.
     */
    @java.lang.Override
    public int getSupportedLanguageCount() {
      return supportedLanguage_.size();
    }
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @param index The index of the element to return.
     * @return The supportedLanguage at the given index.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE getSupportedLanguage(int index) {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.forNumber(supportedLanguage_.getInt(index));
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.enum_LANGUAGE_TYPE_INVALID : result;
    }
    private void ensureSupportedLanguageIsMutable() {
      com.google.protobuf.Internal.IntList tmp = supportedLanguage_;
      if (!tmp.isModifiable()) {
        supportedLanguage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
      }
    }
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @param index The index to set the value at.
     * @param value The supportedLanguage to set.
     */
    private void setSupportedLanguage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE value) {
      value.getClass();
  ensureSupportedLanguageIsMutable();
      supportedLanguage_.setInt(index, value.getNumber());
    }
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @param value The supportedLanguage to add.
     */
    private void addSupportedLanguage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE value) {
      value.getClass();
  ensureSupportedLanguageIsMutable();
      supportedLanguage_.addInt(value.getNumber());
    }
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     * @param values The supportedLanguage to add.
     */
    private void addAllSupportedLanguage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE> values) {
      ensureSupportedLanguageIsMutable();
      for (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE value : values) {
        supportedLanguage_.addInt(value.getNumber());
      }
    }
    /**
     * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
     */
    private void clearSupportedLanguage() {
      supportedLanguage_ = emptyIntList();
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_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.Config.language_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.Config.language_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.Config.language_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.Config.language_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.Config.language_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.Config.language_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.Config.language_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.Config.language_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_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.Config.language_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.Config.language_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.Config.language_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
       * @return Whether the curLanguage field is set.
       */
      @java.lang.Override
      public boolean hasCurLanguage() {
        return instance.hasCurLanguage();
      }
      /**
       * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
       * @return The curLanguage.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE getCurLanguage() {
        return instance.getCurLanguage();
      }
      /**
       * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
       * @param value The enum numeric value on the wire for curLanguage to set.
       * @return This builder for chaining.
       */
      public Builder setCurLanguage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE value) {
        copyOnWrite();
        instance.setCurLanguage(value);
        return this;
      }
      /**
       * <code>required .LANGUAGE_TYPE cur_language = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurLanguage() {
        copyOnWrite();
        instance.clearCurLanguage();
        return this;
      }

      /**
       * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
       * @return A list containing the supportedLanguage.
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE> getSupportedLanguageList() {
        return instance.getSupportedLanguageList();
      }
      /**
       * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
       * @return The count of supportedLanguage.
       */
      @java.lang.Override
      public int getSupportedLanguageCount() {
        return instance.getSupportedLanguageCount();
      }
      /**
       * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
       * @param index The index of the element to return.
       * @return The supportedLanguage at the given index.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE getSupportedLanguage(int index) {
        return instance.getSupportedLanguage(index);
      }
      /**
       * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
       * @param index The index to set the value at.
       * @param value The supportedLanguage to set.
       * @return This builder for chaining.
       */
      public Builder setSupportedLanguage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE value) {
        copyOnWrite();
        instance.setSupportedLanguage(index, value);
        return this;
      }
      /**
       * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
       * @param value The supportedLanguage to add.
       * @return This builder for chaining.
       */
      public Builder addSupportedLanguage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE value) {
        copyOnWrite();
        instance.addSupportedLanguage(value);
        return this;
      }
      /**
       * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
       * @param values The supportedLanguage to add.
       * @return This builder for chaining.
       */
      public Builder addAllSupportedLanguage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE> values) {
        copyOnWrite();
        instance.addAllSupportedLanguage(values);  return this;
      }
      /**
       * <code>repeated .LANGUAGE_TYPE supported_language = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSupportedLanguage() {
        copyOnWrite();
        instance.clearSupportedLanguage();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:language_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.Config.language_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "curLanguage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.internalGetVerifier(),
              "supportedLanguage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.LANGUAGE_TYPE.internalGetVerifier(),
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0001\u0001\u0001\u150c\u0000\u0002" +
                "\u001e";
            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.Config.language_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_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:language_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg DEFAULT_INSTANCE;
    static {
      language_msg defaultInstance = new language_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        language_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional uint32 backlight_night_on = 1;</code>
     * @return Whether the backlightNightOn field is set.
     */
    boolean hasBacklightNightOn();
    /**
     * <code>optional uint32 backlight_night_on = 1;</code>
     * @return The backlightNightOn.
     */
    int getBacklightNightOn();

    /**
     * <code>optional uint32 backling_time = 2;</code>
     * @return Whether the backlingTime field is set.
     */
    boolean hasBacklingTime();
    /**
     * <code>optional uint32 backling_time = 2;</code>
     * @return The backlingTime.
     */
    int getBacklingTime();

    /**
     * <code>optional uint32 backlight_auto = 3;</code>
     * @return Whether the backlightAuto field is set.
     */
    boolean hasBacklightAuto();
    /**
     * <code>optional uint32 backlight_auto = 3;</code>
     * @return The backlightAuto.
     */
    int getBacklightAuto();

    /**
     * <code>optional uint32 backlight_day_percent = 4;</code>
     * @return Whether the backlightDayPercent field is set.
     */
    boolean hasBacklightDayPercent();
    /**
     * <code>optional uint32 backlight_day_percent = 4;</code>
     * @return The backlightDayPercent.
     */
    int getBacklightDayPercent();

    /**
     * <code>optional uint32 backlight_night_percent = 5;</code>
     * @return Whether the backlightNightPercent field is set.
     */
    boolean hasBacklightNightPercent();
    /**
     * <code>optional uint32 backlight_night_percent = 5;</code>
     * @return The backlightNightPercent.
     */
    int getBacklightNightPercent();
  }
  /**
   * Protobuf type {@code backlight_msg}
   */
  public  static final class backlight_msg extends
      com.google.protobuf.GeneratedMessageLite<
          backlight_msg, backlight_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:backlight_msg)
      backlight_msgOrBuilder {
    private backlight_msg() {
    }
    private int bitField0_;
    public static final int BACKLIGHT_NIGHT_ON_FIELD_NUMBER = 1;
    private int backlightNightOn_;
    /**
     * <code>optional uint32 backlight_night_on = 1;</code>
     * @return Whether the backlightNightOn field is set.
     */
    @java.lang.Override
    public boolean hasBacklightNightOn() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 backlight_night_on = 1;</code>
     * @return The backlightNightOn.
     */
    @java.lang.Override
    public int getBacklightNightOn() {
      return backlightNightOn_;
    }
    /**
     * <code>optional uint32 backlight_night_on = 1;</code>
     * @param value The backlightNightOn to set.
     */
    private void setBacklightNightOn(int value) {
      bitField0_ |= 0x00000001;
      backlightNightOn_ = value;
    }
    /**
     * <code>optional uint32 backlight_night_on = 1;</code>
     */
    private void clearBacklightNightOn() {
      bitField0_ = (bitField0_ & ~0x00000001);
      backlightNightOn_ = 0;
    }

    public static final int BACKLING_TIME_FIELD_NUMBER = 2;
    private int backlingTime_;
    /**
     * <code>optional uint32 backling_time = 2;</code>
     * @return Whether the backlingTime field is set.
     */
    @java.lang.Override
    public boolean hasBacklingTime() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 backling_time = 2;</code>
     * @return The backlingTime.
     */
    @java.lang.Override
    public int getBacklingTime() {
      return backlingTime_;
    }
    /**
     * <code>optional uint32 backling_time = 2;</code>
     * @param value The backlingTime to set.
     */
    private void setBacklingTime(int value) {
      bitField0_ |= 0x00000002;
      backlingTime_ = value;
    }
    /**
     * <code>optional uint32 backling_time = 2;</code>
     */
    private void clearBacklingTime() {
      bitField0_ = (bitField0_ & ~0x00000002);
      backlingTime_ = 0;
    }

    public static final int BACKLIGHT_AUTO_FIELD_NUMBER = 3;
    private int backlightAuto_;
    /**
     * <code>optional uint32 backlight_auto = 3;</code>
     * @return Whether the backlightAuto field is set.
     */
    @java.lang.Override
    public boolean hasBacklightAuto() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 backlight_auto = 3;</code>
     * @return The backlightAuto.
     */
    @java.lang.Override
    public int getBacklightAuto() {
      return backlightAuto_;
    }
    /**
     * <code>optional uint32 backlight_auto = 3;</code>
     * @param value The backlightAuto to set.
     */
    private void setBacklightAuto(int value) {
      bitField0_ |= 0x00000004;
      backlightAuto_ = value;
    }
    /**
     * <code>optional uint32 backlight_auto = 3;</code>
     */
    private void clearBacklightAuto() {
      bitField0_ = (bitField0_ & ~0x00000004);
      backlightAuto_ = 0;
    }

    public static final int BACKLIGHT_DAY_PERCENT_FIELD_NUMBER = 4;
    private int backlightDayPercent_;
    /**
     * <code>optional uint32 backlight_day_percent = 4;</code>
     * @return Whether the backlightDayPercent field is set.
     */
    @java.lang.Override
    public boolean hasBacklightDayPercent() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional uint32 backlight_day_percent = 4;</code>
     * @return The backlightDayPercent.
     */
    @java.lang.Override
    public int getBacklightDayPercent() {
      return backlightDayPercent_;
    }
    /**
     * <code>optional uint32 backlight_day_percent = 4;</code>
     * @param value The backlightDayPercent to set.
     */
    private void setBacklightDayPercent(int value) {
      bitField0_ |= 0x00000008;
      backlightDayPercent_ = value;
    }
    /**
     * <code>optional uint32 backlight_day_percent = 4;</code>
     */
    private void clearBacklightDayPercent() {
      bitField0_ = (bitField0_ & ~0x00000008);
      backlightDayPercent_ = 0;
    }

    public static final int BACKLIGHT_NIGHT_PERCENT_FIELD_NUMBER = 5;
    private int backlightNightPercent_;
    /**
     * <code>optional uint32 backlight_night_percent = 5;</code>
     * @return Whether the backlightNightPercent field is set.
     */
    @java.lang.Override
    public boolean hasBacklightNightPercent() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional uint32 backlight_night_percent = 5;</code>
     * @return The backlightNightPercent.
     */
    @java.lang.Override
    public int getBacklightNightPercent() {
      return backlightNightPercent_;
    }
    /**
     * <code>optional uint32 backlight_night_percent = 5;</code>
     * @param value The backlightNightPercent to set.
     */
    private void setBacklightNightPercent(int value) {
      bitField0_ |= 0x00000010;
      backlightNightPercent_ = value;
    }
    /**
     * <code>optional uint32 backlight_night_percent = 5;</code>
     */
    private void clearBacklightNightPercent() {
      bitField0_ = (bitField0_ & ~0x00000010);
      backlightNightPercent_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_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.Config.backlight_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.Config.backlight_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.Config.backlight_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.Config.backlight_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.Config.backlight_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.Config.backlight_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.Config.backlight_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.Config.backlight_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_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.Config.backlight_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.Config.backlight_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.Config.backlight_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional uint32 backlight_night_on = 1;</code>
       * @return Whether the backlightNightOn field is set.
       */
      @java.lang.Override
      public boolean hasBacklightNightOn() {
        return instance.hasBacklightNightOn();
      }
      /**
       * <code>optional uint32 backlight_night_on = 1;</code>
       * @return The backlightNightOn.
       */
      @java.lang.Override
      public int getBacklightNightOn() {
        return instance.getBacklightNightOn();
      }
      /**
       * <code>optional uint32 backlight_night_on = 1;</code>
       * @param value The backlightNightOn to set.
       * @return This builder for chaining.
       */
      public Builder setBacklightNightOn(int value) {
        copyOnWrite();
        instance.setBacklightNightOn(value);
        return this;
      }
      /**
       * <code>optional uint32 backlight_night_on = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBacklightNightOn() {
        copyOnWrite();
        instance.clearBacklightNightOn();
        return this;
      }

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

      /**
       * <code>optional uint32 backlight_auto = 3;</code>
       * @return Whether the backlightAuto field is set.
       */
      @java.lang.Override
      public boolean hasBacklightAuto() {
        return instance.hasBacklightAuto();
      }
      /**
       * <code>optional uint32 backlight_auto = 3;</code>
       * @return The backlightAuto.
       */
      @java.lang.Override
      public int getBacklightAuto() {
        return instance.getBacklightAuto();
      }
      /**
       * <code>optional uint32 backlight_auto = 3;</code>
       * @param value The backlightAuto to set.
       * @return This builder for chaining.
       */
      public Builder setBacklightAuto(int value) {
        copyOnWrite();
        instance.setBacklightAuto(value);
        return this;
      }
      /**
       * <code>optional uint32 backlight_auto = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearBacklightAuto() {
        copyOnWrite();
        instance.clearBacklightAuto();
        return this;
      }

      /**
       * <code>optional uint32 backlight_day_percent = 4;</code>
       * @return Whether the backlightDayPercent field is set.
       */
      @java.lang.Override
      public boolean hasBacklightDayPercent() {
        return instance.hasBacklightDayPercent();
      }
      /**
       * <code>optional uint32 backlight_day_percent = 4;</code>
       * @return The backlightDayPercent.
       */
      @java.lang.Override
      public int getBacklightDayPercent() {
        return instance.getBacklightDayPercent();
      }
      /**
       * <code>optional uint32 backlight_day_percent = 4;</code>
       * @param value The backlightDayPercent to set.
       * @return This builder for chaining.
       */
      public Builder setBacklightDayPercent(int value) {
        copyOnWrite();
        instance.setBacklightDayPercent(value);
        return this;
      }
      /**
       * <code>optional uint32 backlight_day_percent = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearBacklightDayPercent() {
        copyOnWrite();
        instance.clearBacklightDayPercent();
        return this;
      }

      /**
       * <code>optional uint32 backlight_night_percent = 5;</code>
       * @return Whether the backlightNightPercent field is set.
       */
      @java.lang.Override
      public boolean hasBacklightNightPercent() {
        return instance.hasBacklightNightPercent();
      }
      /**
       * <code>optional uint32 backlight_night_percent = 5;</code>
       * @return The backlightNightPercent.
       */
      @java.lang.Override
      public int getBacklightNightPercent() {
        return instance.getBacklightNightPercent();
      }
      /**
       * <code>optional uint32 backlight_night_percent = 5;</code>
       * @param value The backlightNightPercent to set.
       * @return This builder for chaining.
       */
      public Builder setBacklightNightPercent(int value) {
        copyOnWrite();
        instance.setBacklightNightPercent(value);
        return this;
      }
      /**
       * <code>optional uint32 backlight_night_percent = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearBacklightNightPercent() {
        copyOnWrite();
        instance.clearBacklightNightPercent();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:backlight_msg)
    }
    @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.Config.backlight_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "backlightNightOn_",
              "backlingTime_",
              "backlightAuto_",
              "backlightDayPercent_",
              "backlightNightPercent_",
            };
            java.lang.String info =
                "\u0001\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001\u0003\u100b\u0002\u0004\u100b\u0003\u0005\u100b\u0004";
            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.Config.backlight_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg>(
                        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:backlight_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg DEFAULT_INSTANCE;
    static {
      backlight_msg defaultInstance = new backlight_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        backlight_msg.class, defaultInstance);
    }

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

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

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

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

    /**
     * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
     * @return Whether the dataType field is set.
     */
    boolean hasDataType();
    /**
     * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
     * @return The dataType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE getDataType();

    /**
     * <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 data_msg}
   */
  public  static final class data_msg extends
      com.google.protobuf.GeneratedMessageLite<
          data_msg, data_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:data_msg)
      data_msgOrBuilder {
    private data_msg() {
    }
    private int bitField0_;
    public static final int DATA_TYPE_FIELD_NUMBER = 1;
    private int dataType_;
    /**
     * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
     * @return Whether the dataType field is set.
     */
    @java.lang.Override
    public boolean hasDataType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
     * @return The dataType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE getDataType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE.forNumber(dataType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE.enum_DATA_TYPE_INVALID : result;
    }
    /**
     * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
     * @param value The dataType to set.
     */
    private void setDataType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE value) {
      dataType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
     */
    private void clearDataType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      dataType_ = 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.Config.data_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.Config.data_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.Config.data_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.Config.data_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.Config.data_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.Config.data_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.Config.data_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.Config.data_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.Config.data_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_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.Config.data_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.Config.data_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.Config.data_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
       * @return Whether the dataType field is set.
       */
      @java.lang.Override
      public boolean hasDataType() {
        return instance.hasDataType();
      }
      /**
       * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
       * @return The dataType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE getDataType() {
        return instance.getDataType();
      }
      /**
       * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
       * @param value The enum numeric value on the wire for dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_TYPE value) {
        copyOnWrite();
        instance.setDataType(value);
        return this;
      }
      /**
       * <code>optional .DATA_TYPE data_type = 1 [default = enum_DATA_TYPE_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearDataType() {
        copyOnWrite();
        instance.clearDataType();
        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:data_msg)
    }
    @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.Config.data_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "dataType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.DATA_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.Config.data_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg>(
                        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_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg DEFAULT_INSTANCE;
    static {
      data_msg defaultInstance = new data_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        data_msg.class, defaultInstance);
    }

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

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

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

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

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

    /**
     * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
     * @return Whether the configSeviceType field is set.
     */
    boolean hasConfigSeviceType();
    /**
     * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
     * @return The configSeviceType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE getConfigSeviceType();

    /**
     * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
     * @return Whether the configOperateType field is set.
     */
    boolean hasConfigOperateType();
    /**
     * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
     * @return The configOperateType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE getConfigOperateType();

    /**
     * <code>optional .user_data_msg user_data_message = 4;</code>
     * @return Whether the userDataMessage field is set.
     */
    boolean hasUserDataMessage();
    /**
     * <code>optional .user_data_msg user_data_message = 4;</code>
     * @return The userDataMessage.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg getUserDataMessage();

    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg> 
        getPageMessageList();
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg getPageMessage(int index);
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    int getPageMessageCount();

    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg> 
        getBikeMessageList();
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg getBikeMessage(int index);
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    int getBikeMessageCount();

    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg> 
        getUnitMessageList();
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg getUnitMessage(int index);
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    int getUnitMessageCount();

    /**
     * <code>optional .cur_page_status_msg page_status_message = 8;</code>
     * @return Whether the pageStatusMessage field is set.
     */
    boolean hasPageStatusMessage();
    /**
     * <code>optional .cur_page_status_msg page_status_message = 8;</code>
     * @return The pageStatusMessage.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg getPageStatusMessage();

    /**
     * <code>optional uint32 altitude = 9;</code>
     * @return Whether the altitude field is set.
     */
    boolean hasAltitude();
    /**
     * <code>optional uint32 altitude = 9;</code>
     * @return The altitude.
     */
    int getAltitude();

    /**
     * <code>optional .language_msg language_message = 12;</code>
     * @return Whether the languageMessage field is set.
     */
    boolean hasLanguageMessage();
    /**
     * <code>optional .language_msg language_message = 12;</code>
     * @return The languageMessage.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg getLanguageMessage();

    /**
     * <code>optional .backlight_msg backlight_message = 13;</code>
     * @return Whether the backlightMessage field is set.
     */
    boolean hasBacklightMessage();
    /**
     * <code>optional .backlight_msg backlight_message = 13;</code>
     * @return The backlightMessage.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg getBacklightMessage();

    /**
     * <code>optional uint32 cur_operate_mode = 19;</code>
     * @return Whether the curOperateMode field is set.
     */
    boolean hasCurOperateMode();
    /**
     * <code>optional uint32 cur_operate_mode = 19;</code>
     * @return The curOperateMode.
     */
    int getCurOperateMode();

    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg> 
        getModeMessageList();
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg getModeMessage(int index);
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    int getModeMessageCount();

    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg> 
        getAlarmMessageList();
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg getAlarmMessage(int index);
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    int getAlarmMessageCount();

    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg> 
        getLapMessageList();
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg getLapMessage(int index);
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    int getLapMessageCount();

    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg> 
        getAutoSetMessageList();
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg getAutoSetMessage(int index);
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    int getAutoSetMessageCount();

    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg> 
        getKeySetMessageList();
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg getKeySetMessage(int index);
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    int getKeySetMessageCount();

    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg> 
        getSoundSetMessageList();
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg getSoundSetMessage(int index);
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    int getSoundSetMessageCount();

    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg> 
        getDataMessageList();
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg getDataMessage(int index);
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    int getDataMessageCount();
  }
  /**
   * Protobuf type {@code config_msg}
   */
  public  static final class config_msg extends
      com.google.protobuf.GeneratedMessageLite<
          config_msg, config_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:config_msg)
      config_msgOrBuilder {
    private config_msg() {
      serviceType_ = 12;
      pageMessage_ = emptyProtobufList();
      bikeMessage_ = emptyProtobufList();
      unitMessage_ = emptyProtobufList();
      modeMessage_ = emptyProtobufList();
      alarmMessage_ = emptyProtobufList();
      lapMessage_ = emptyProtobufList();
      autoSetMessage_ = emptyProtobufList();
      keySetMessage_ = emptyProtobufList();
      soundSetMessage_ = emptyProtobufList();
      dataMessage_ = 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_CONFIG];</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_CONFIG];</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_CONFIG : result;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_CONFIG];</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_CONFIG];</code>
     */
    private void clearServiceType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      serviceType_ = 12;
    }

    public static final int CONFIG_SEVICE_TYPE_FIELD_NUMBER = 2;
    private int configSeviceType_;
    /**
     * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
     * @return Whether the configSeviceType field is set.
     */
    @java.lang.Override
    public boolean hasConfigSeviceType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
     * @return The configSeviceType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE getConfigSeviceType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE.forNumber(configSeviceType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE.enum_CONFIG_SERVICE_TYPE_NONE : result;
    }
    /**
     * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
     * @param value The configSeviceType to set.
     */
    private void setConfigSeviceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE value) {
      configSeviceType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
     */
    private void clearConfigSeviceType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      configSeviceType_ = 0;
    }

    public static final int CONFIG_OPERATE_TYPE_FIELD_NUMBER = 3;
    private int configOperateType_;
    /**
     * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
     * @return Whether the configOperateType field is set.
     */
    @java.lang.Override
    public boolean hasConfigOperateType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
     * @return The configOperateType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE getConfigOperateType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE.forNumber(configOperateType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE.enum_CONFIG_OPERATE_TYPE_NONE : result;
    }
    /**
     * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
     * @param value The configOperateType to set.
     */
    private void setConfigOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE value) {
      configOperateType_ = value.getNumber();
      bitField0_ |= 0x00000004;
    }
    /**
     * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
     */
    private void clearConfigOperateType() {
      bitField0_ = (bitField0_ & ~0x00000004);
      configOperateType_ = 0;
    }

    public static final int USER_DATA_MESSAGE_FIELD_NUMBER = 4;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg userDataMessage_;
    /**
     * <code>optional .user_data_msg user_data_message = 4;</code>
     */
    @java.lang.Override
    public boolean hasUserDataMessage() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .user_data_msg user_data_message = 4;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg getUserDataMessage() {
      return userDataMessage_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg.getDefaultInstance() : userDataMessage_;
    }
    /**
     * <code>optional .user_data_msg user_data_message = 4;</code>
     */
    private void setUserDataMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg value) {
      value.getClass();
  userDataMessage_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * <code>optional .user_data_msg user_data_message = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeUserDataMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg value) {
      value.getClass();
  if (userDataMessage_ != null &&
          userDataMessage_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg.getDefaultInstance()) {
        userDataMessage_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg.newBuilder(userDataMessage_).mergeFrom(value).buildPartial();
      } else {
        userDataMessage_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .user_data_msg user_data_message = 4;</code>
     */
    private void clearUserDataMessage() {  userDataMessage_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }

    public static final int PAGE_MESSAGE_FIELD_NUMBER = 5;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg> pageMessage_;
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg> getPageMessageList() {
      return pageMessage_;
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msgOrBuilder> 
        getPageMessageOrBuilderList() {
      return pageMessage_;
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    @java.lang.Override
    public int getPageMessageCount() {
      return pageMessage_.size();
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg getPageMessage(int index) {
      return pageMessage_.get(index);
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msgOrBuilder getPageMessageOrBuilder(
        int index) {
      return pageMessage_.get(index);
    }
    private void ensurePageMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg> tmp = pageMessage_;
      if (!tmp.isModifiable()) {
        pageMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    private void setPageMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg value) {
      value.getClass();
  ensurePageMessageIsMutable();
      pageMessage_.set(index, value);
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    private void addPageMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg value) {
      value.getClass();
  ensurePageMessageIsMutable();
      pageMessage_.add(value);
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    private void addPageMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg value) {
      value.getClass();
  ensurePageMessageIsMutable();
      pageMessage_.add(index, value);
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    private void addAllPageMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg> values) {
      ensurePageMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, pageMessage_);
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    private void clearPageMessage() {
      pageMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .page_msg page_message = 5;</code>
     */
    private void removePageMessage(int index) {
      ensurePageMessageIsMutable();
      pageMessage_.remove(index);
    }

    public static final int BIKE_MESSAGE_FIELD_NUMBER = 6;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg> bikeMessage_;
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg> getBikeMessageList() {
      return bikeMessage_;
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msgOrBuilder> 
        getBikeMessageOrBuilderList() {
      return bikeMessage_;
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    @java.lang.Override
    public int getBikeMessageCount() {
      return bikeMessage_.size();
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg getBikeMessage(int index) {
      return bikeMessage_.get(index);
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msgOrBuilder getBikeMessageOrBuilder(
        int index) {
      return bikeMessage_.get(index);
    }
    private void ensureBikeMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg> tmp = bikeMessage_;
      if (!tmp.isModifiable()) {
        bikeMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    private void setBikeMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg value) {
      value.getClass();
  ensureBikeMessageIsMutable();
      bikeMessage_.set(index, value);
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    private void addBikeMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg value) {
      value.getClass();
  ensureBikeMessageIsMutable();
      bikeMessage_.add(value);
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    private void addBikeMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg value) {
      value.getClass();
  ensureBikeMessageIsMutable();
      bikeMessage_.add(index, value);
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    private void addAllBikeMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg> values) {
      ensureBikeMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, bikeMessage_);
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    private void clearBikeMessage() {
      bikeMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .bike_msg bike_message = 6;</code>
     */
    private void removeBikeMessage(int index) {
      ensureBikeMessageIsMutable();
      bikeMessage_.remove(index);
    }

    public static final int UNIT_MESSAGE_FIELD_NUMBER = 7;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg> unitMessage_;
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg> getUnitMessageList() {
      return unitMessage_;
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msgOrBuilder> 
        getUnitMessageOrBuilderList() {
      return unitMessage_;
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    @java.lang.Override
    public int getUnitMessageCount() {
      return unitMessage_.size();
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg getUnitMessage(int index) {
      return unitMessage_.get(index);
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msgOrBuilder getUnitMessageOrBuilder(
        int index) {
      return unitMessage_.get(index);
    }
    private void ensureUnitMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg> tmp = unitMessage_;
      if (!tmp.isModifiable()) {
        unitMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    private void setUnitMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg value) {
      value.getClass();
  ensureUnitMessageIsMutable();
      unitMessage_.set(index, value);
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    private void addUnitMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg value) {
      value.getClass();
  ensureUnitMessageIsMutable();
      unitMessage_.add(value);
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    private void addUnitMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg value) {
      value.getClass();
  ensureUnitMessageIsMutable();
      unitMessage_.add(index, value);
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    private void addAllUnitMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg> values) {
      ensureUnitMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, unitMessage_);
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    private void clearUnitMessage() {
      unitMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .unit_msg unit_message = 7;</code>
     */
    private void removeUnitMessage(int index) {
      ensureUnitMessageIsMutable();
      unitMessage_.remove(index);
    }

    public static final int PAGE_STATUS_MESSAGE_FIELD_NUMBER = 8;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg pageStatusMessage_;
    /**
     * <code>optional .cur_page_status_msg page_status_message = 8;</code>
     */
    @java.lang.Override
    public boolean hasPageStatusMessage() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .cur_page_status_msg page_status_message = 8;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg getPageStatusMessage() {
      return pageStatusMessage_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg.getDefaultInstance() : pageStatusMessage_;
    }
    /**
     * <code>optional .cur_page_status_msg page_status_message = 8;</code>
     */
    private void setPageStatusMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg value) {
      value.getClass();
  pageStatusMessage_ = value;
      bitField0_ |= 0x00000010;
      }
    /**
     * <code>optional .cur_page_status_msg page_status_message = 8;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePageStatusMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg value) {
      value.getClass();
  if (pageStatusMessage_ != null &&
          pageStatusMessage_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg.getDefaultInstance()) {
        pageStatusMessage_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg.newBuilder(pageStatusMessage_).mergeFrom(value).buildPartial();
      } else {
        pageStatusMessage_ = value;
      }
      bitField0_ |= 0x00000010;
    }
    /**
     * <code>optional .cur_page_status_msg page_status_message = 8;</code>
     */
    private void clearPageStatusMessage() {  pageStatusMessage_ = null;
      bitField0_ = (bitField0_ & ~0x00000010);
    }

    public static final int ALTITUDE_FIELD_NUMBER = 9;
    private int altitude_;
    /**
     * <code>optional uint32 altitude = 9;</code>
     * @return Whether the altitude field is set.
     */
    @java.lang.Override
    public boolean hasAltitude() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional uint32 altitude = 9;</code>
     * @return The altitude.
     */
    @java.lang.Override
    public int getAltitude() {
      return altitude_;
    }
    /**
     * <code>optional uint32 altitude = 9;</code>
     * @param value The altitude to set.
     */
    private void setAltitude(int value) {
      bitField0_ |= 0x00000020;
      altitude_ = value;
    }
    /**
     * <code>optional uint32 altitude = 9;</code>
     */
    private void clearAltitude() {
      bitField0_ = (bitField0_ & ~0x00000020);
      altitude_ = 0;
    }

    public static final int LANGUAGE_MESSAGE_FIELD_NUMBER = 12;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg languageMessage_;
    /**
     * <code>optional .language_msg language_message = 12;</code>
     */
    @java.lang.Override
    public boolean hasLanguageMessage() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .language_msg language_message = 12;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg getLanguageMessage() {
      return languageMessage_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg.getDefaultInstance() : languageMessage_;
    }
    /**
     * <code>optional .language_msg language_message = 12;</code>
     */
    private void setLanguageMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg value) {
      value.getClass();
  languageMessage_ = value;
      bitField0_ |= 0x00000040;
      }
    /**
     * <code>optional .language_msg language_message = 12;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLanguageMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg value) {
      value.getClass();
  if (languageMessage_ != null &&
          languageMessage_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg.getDefaultInstance()) {
        languageMessage_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg.newBuilder(languageMessage_).mergeFrom(value).buildPartial();
      } else {
        languageMessage_ = value;
      }
      bitField0_ |= 0x00000040;
    }
    /**
     * <code>optional .language_msg language_message = 12;</code>
     */
    private void clearLanguageMessage() {  languageMessage_ = null;
      bitField0_ = (bitField0_ & ~0x00000040);
    }

    public static final int BACKLIGHT_MESSAGE_FIELD_NUMBER = 13;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg backlightMessage_;
    /**
     * <code>optional .backlight_msg backlight_message = 13;</code>
     */
    @java.lang.Override
    public boolean hasBacklightMessage() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .backlight_msg backlight_message = 13;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg getBacklightMessage() {
      return backlightMessage_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg.getDefaultInstance() : backlightMessage_;
    }
    /**
     * <code>optional .backlight_msg backlight_message = 13;</code>
     */
    private void setBacklightMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg value) {
      value.getClass();
  backlightMessage_ = value;
      bitField0_ |= 0x00000080;
      }
    /**
     * <code>optional .backlight_msg backlight_message = 13;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBacklightMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg value) {
      value.getClass();
  if (backlightMessage_ != null &&
          backlightMessage_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg.getDefaultInstance()) {
        backlightMessage_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg.newBuilder(backlightMessage_).mergeFrom(value).buildPartial();
      } else {
        backlightMessage_ = value;
      }
      bitField0_ |= 0x00000080;
    }
    /**
     * <code>optional .backlight_msg backlight_message = 13;</code>
     */
    private void clearBacklightMessage() {  backlightMessage_ = null;
      bitField0_ = (bitField0_ & ~0x00000080);
    }

    public static final int CUR_OPERATE_MODE_FIELD_NUMBER = 19;
    private int curOperateMode_;
    /**
     * <code>optional uint32 cur_operate_mode = 19;</code>
     * @return Whether the curOperateMode field is set.
     */
    @java.lang.Override
    public boolean hasCurOperateMode() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional uint32 cur_operate_mode = 19;</code>
     * @return The curOperateMode.
     */
    @java.lang.Override
    public int getCurOperateMode() {
      return curOperateMode_;
    }
    /**
     * <code>optional uint32 cur_operate_mode = 19;</code>
     * @param value The curOperateMode to set.
     */
    private void setCurOperateMode(int value) {
      bitField0_ |= 0x00000100;
      curOperateMode_ = value;
    }
    /**
     * <code>optional uint32 cur_operate_mode = 19;</code>
     */
    private void clearCurOperateMode() {
      bitField0_ = (bitField0_ & ~0x00000100);
      curOperateMode_ = 0;
    }

    public static final int MODE_MESSAGE_FIELD_NUMBER = 20;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg> modeMessage_;
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg> getModeMessageList() {
      return modeMessage_;
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msgOrBuilder> 
        getModeMessageOrBuilderList() {
      return modeMessage_;
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    @java.lang.Override
    public int getModeMessageCount() {
      return modeMessage_.size();
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg getModeMessage(int index) {
      return modeMessage_.get(index);
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msgOrBuilder getModeMessageOrBuilder(
        int index) {
      return modeMessage_.get(index);
    }
    private void ensureModeMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg> tmp = modeMessage_;
      if (!tmp.isModifiable()) {
        modeMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    private void setModeMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg value) {
      value.getClass();
  ensureModeMessageIsMutable();
      modeMessage_.set(index, value);
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    private void addModeMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg value) {
      value.getClass();
  ensureModeMessageIsMutable();
      modeMessage_.add(value);
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    private void addModeMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg value) {
      value.getClass();
  ensureModeMessageIsMutable();
      modeMessage_.add(index, value);
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    private void addAllModeMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg> values) {
      ensureModeMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, modeMessage_);
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    private void clearModeMessage() {
      modeMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .mode_msg mode_message = 20;</code>
     */
    private void removeModeMessage(int index) {
      ensureModeMessageIsMutable();
      modeMessage_.remove(index);
    }

    public static final int ALARM_MESSAGE_FIELD_NUMBER = 21;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg> alarmMessage_;
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg> getAlarmMessageList() {
      return alarmMessage_;
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msgOrBuilder> 
        getAlarmMessageOrBuilderList() {
      return alarmMessage_;
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    @java.lang.Override
    public int getAlarmMessageCount() {
      return alarmMessage_.size();
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg getAlarmMessage(int index) {
      return alarmMessage_.get(index);
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msgOrBuilder getAlarmMessageOrBuilder(
        int index) {
      return alarmMessage_.get(index);
    }
    private void ensureAlarmMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg> tmp = alarmMessage_;
      if (!tmp.isModifiable()) {
        alarmMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    private void setAlarmMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg value) {
      value.getClass();
  ensureAlarmMessageIsMutable();
      alarmMessage_.set(index, value);
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    private void addAlarmMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg value) {
      value.getClass();
  ensureAlarmMessageIsMutable();
      alarmMessage_.add(value);
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    private void addAlarmMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg value) {
      value.getClass();
  ensureAlarmMessageIsMutable();
      alarmMessage_.add(index, value);
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    private void addAllAlarmMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg> values) {
      ensureAlarmMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, alarmMessage_);
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    private void clearAlarmMessage() {
      alarmMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .alarm_msg alarm_message = 21;</code>
     */
    private void removeAlarmMessage(int index) {
      ensureAlarmMessageIsMutable();
      alarmMessage_.remove(index);
    }

    public static final int LAP_MESSAGE_FIELD_NUMBER = 22;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg> lapMessage_;
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg> getLapMessageList() {
      return lapMessage_;
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msgOrBuilder> 
        getLapMessageOrBuilderList() {
      return lapMessage_;
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    @java.lang.Override
    public int getLapMessageCount() {
      return lapMessage_.size();
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg getLapMessage(int index) {
      return lapMessage_.get(index);
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msgOrBuilder getLapMessageOrBuilder(
        int index) {
      return lapMessage_.get(index);
    }
    private void ensureLapMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg> tmp = lapMessage_;
      if (!tmp.isModifiable()) {
        lapMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    private void setLapMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg value) {
      value.getClass();
  ensureLapMessageIsMutable();
      lapMessage_.set(index, value);
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    private void addLapMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg value) {
      value.getClass();
  ensureLapMessageIsMutable();
      lapMessage_.add(value);
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    private void addLapMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg value) {
      value.getClass();
  ensureLapMessageIsMutable();
      lapMessage_.add(index, value);
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    private void addAllLapMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg> values) {
      ensureLapMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, lapMessage_);
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    private void clearLapMessage() {
      lapMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .lap_msg lap_message = 22;</code>
     */
    private void removeLapMessage(int index) {
      ensureLapMessageIsMutable();
      lapMessage_.remove(index);
    }

    public static final int AUTO_SET_MESSAGE_FIELD_NUMBER = 23;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg> autoSetMessage_;
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg> getAutoSetMessageList() {
      return autoSetMessage_;
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msgOrBuilder> 
        getAutoSetMessageOrBuilderList() {
      return autoSetMessage_;
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    @java.lang.Override
    public int getAutoSetMessageCount() {
      return autoSetMessage_.size();
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg getAutoSetMessage(int index) {
      return autoSetMessage_.get(index);
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msgOrBuilder getAutoSetMessageOrBuilder(
        int index) {
      return autoSetMessage_.get(index);
    }
    private void ensureAutoSetMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg> tmp = autoSetMessage_;
      if (!tmp.isModifiable()) {
        autoSetMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    private void setAutoSetMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg value) {
      value.getClass();
  ensureAutoSetMessageIsMutable();
      autoSetMessage_.set(index, value);
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    private void addAutoSetMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg value) {
      value.getClass();
  ensureAutoSetMessageIsMutable();
      autoSetMessage_.add(value);
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    private void addAutoSetMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg value) {
      value.getClass();
  ensureAutoSetMessageIsMutable();
      autoSetMessage_.add(index, value);
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    private void addAllAutoSetMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg> values) {
      ensureAutoSetMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, autoSetMessage_);
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    private void clearAutoSetMessage() {
      autoSetMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .auto_set_msg auto_set_message = 23;</code>
     */
    private void removeAutoSetMessage(int index) {
      ensureAutoSetMessageIsMutable();
      autoSetMessage_.remove(index);
    }

    public static final int KEY_SET_MESSAGE_FIELD_NUMBER = 24;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg> keySetMessage_;
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg> getKeySetMessageList() {
      return keySetMessage_;
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msgOrBuilder> 
        getKeySetMessageOrBuilderList() {
      return keySetMessage_;
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    @java.lang.Override
    public int getKeySetMessageCount() {
      return keySetMessage_.size();
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg getKeySetMessage(int index) {
      return keySetMessage_.get(index);
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msgOrBuilder getKeySetMessageOrBuilder(
        int index) {
      return keySetMessage_.get(index);
    }
    private void ensureKeySetMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg> tmp = keySetMessage_;
      if (!tmp.isModifiable()) {
        keySetMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    private void setKeySetMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg value) {
      value.getClass();
  ensureKeySetMessageIsMutable();
      keySetMessage_.set(index, value);
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    private void addKeySetMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg value) {
      value.getClass();
  ensureKeySetMessageIsMutable();
      keySetMessage_.add(value);
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    private void addKeySetMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg value) {
      value.getClass();
  ensureKeySetMessageIsMutable();
      keySetMessage_.add(index, value);
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    private void addAllKeySetMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg> values) {
      ensureKeySetMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, keySetMessage_);
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    private void clearKeySetMessage() {
      keySetMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .key_set_msg key_set_message = 24;</code>
     */
    private void removeKeySetMessage(int index) {
      ensureKeySetMessageIsMutable();
      keySetMessage_.remove(index);
    }

    public static final int SOUND_SET_MESSAGE_FIELD_NUMBER = 25;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg> soundSetMessage_;
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg> getSoundSetMessageList() {
      return soundSetMessage_;
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msgOrBuilder> 
        getSoundSetMessageOrBuilderList() {
      return soundSetMessage_;
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    @java.lang.Override
    public int getSoundSetMessageCount() {
      return soundSetMessage_.size();
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg getSoundSetMessage(int index) {
      return soundSetMessage_.get(index);
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msgOrBuilder getSoundSetMessageOrBuilder(
        int index) {
      return soundSetMessage_.get(index);
    }
    private void ensureSoundSetMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg> tmp = soundSetMessage_;
      if (!tmp.isModifiable()) {
        soundSetMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    private void setSoundSetMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg value) {
      value.getClass();
  ensureSoundSetMessageIsMutable();
      soundSetMessage_.set(index, value);
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    private void addSoundSetMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg value) {
      value.getClass();
  ensureSoundSetMessageIsMutable();
      soundSetMessage_.add(value);
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    private void addSoundSetMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg value) {
      value.getClass();
  ensureSoundSetMessageIsMutable();
      soundSetMessage_.add(index, value);
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    private void addAllSoundSetMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg> values) {
      ensureSoundSetMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, soundSetMessage_);
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    private void clearSoundSetMessage() {
      soundSetMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .sound_set_msg sound_set_message = 25;</code>
     */
    private void removeSoundSetMessage(int index) {
      ensureSoundSetMessageIsMutable();
      soundSetMessage_.remove(index);
    }

    public static final int DATA_MESSAGE_FIELD_NUMBER = 26;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg> dataMessage_;
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg> getDataMessageList() {
      return dataMessage_;
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msgOrBuilder> 
        getDataMessageOrBuilderList() {
      return dataMessage_;
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    @java.lang.Override
    public int getDataMessageCount() {
      return dataMessage_.size();
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg getDataMessage(int index) {
      return dataMessage_.get(index);
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msgOrBuilder getDataMessageOrBuilder(
        int index) {
      return dataMessage_.get(index);
    }
    private void ensureDataMessageIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg> tmp = dataMessage_;
      if (!tmp.isModifiable()) {
        dataMessage_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    private void setDataMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg value) {
      value.getClass();
  ensureDataMessageIsMutable();
      dataMessage_.set(index, value);
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    private void addDataMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg value) {
      value.getClass();
  ensureDataMessageIsMutable();
      dataMessage_.add(value);
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    private void addDataMessage(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg value) {
      value.getClass();
  ensureDataMessageIsMutable();
      dataMessage_.add(index, value);
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    private void addAllDataMessage(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg> values) {
      ensureDataMessageIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, dataMessage_);
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    private void clearDataMessage() {
      dataMessage_ = emptyProtobufList();
    }
    /**
     * <code>repeated .data_msg data_message = 26;</code>
     */
    private void removeDataMessage(int index) {
      ensureDataMessageIsMutable();
      dataMessage_.remove(index);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.config_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.Config.config_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.Config.config_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.Config.config_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.Config.config_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.Config.config_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.Config.config_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.Config.config_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.Config.config_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.config_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.Config.config_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.Config.config_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.Config.config_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

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


      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_CONFIG];</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_CONFIG];</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_CONFIG];</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_CONFIG];</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceType() {
        copyOnWrite();
        instance.clearServiceType();
        return this;
      }

      /**
       * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
       * @return Whether the configSeviceType field is set.
       */
      @java.lang.Override
      public boolean hasConfigSeviceType() {
        return instance.hasConfigSeviceType();
      }
      /**
       * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
       * @return The configSeviceType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE getConfigSeviceType() {
        return instance.getConfigSeviceType();
      }
      /**
       * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
       * @param value The enum numeric value on the wire for configSeviceType to set.
       * @return This builder for chaining.
       */
      public Builder setConfigSeviceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE value) {
        copyOnWrite();
        instance.setConfigSeviceType(value);
        return this;
      }
      /**
       * <code>required .CONFIG_SERVICE_TYPE config_sevice_type = 2 [default = enum_CONFIG_SERVICE_TYPE_NONE];</code>
       * @return This builder for chaining.
       */
      public Builder clearConfigSeviceType() {
        copyOnWrite();
        instance.clearConfigSeviceType();
        return this;
      }

      /**
       * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
       * @return Whether the configOperateType field is set.
       */
      @java.lang.Override
      public boolean hasConfigOperateType() {
        return instance.hasConfigOperateType();
      }
      /**
       * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
       * @return The configOperateType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE getConfigOperateType() {
        return instance.getConfigOperateType();
      }
      /**
       * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
       * @param value The enum numeric value on the wire for configOperateType to set.
       * @return This builder for chaining.
       */
      public Builder setConfigOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE value) {
        copyOnWrite();
        instance.setConfigOperateType(value);
        return this;
      }
      /**
       * <code>required .CONFIG_OPERATE_TYPE config_operate_type = 3 [default = enum_CONFIG_OPERATE_TYPE_NONE];</code>
       * @return This builder for chaining.
       */
      public Builder clearConfigOperateType() {
        copyOnWrite();
        instance.clearConfigOperateType();
        return this;
      }

      /**
       * <code>optional .user_data_msg user_data_message = 4;</code>
       */
      @java.lang.Override
      public boolean hasUserDataMessage() {
        return instance.hasUserDataMessage();
      }
      /**
       * <code>optional .user_data_msg user_data_message = 4;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg getUserDataMessage() {
        return instance.getUserDataMessage();
      }
      /**
       * <code>optional .user_data_msg user_data_message = 4;</code>
       */
      public Builder setUserDataMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg value) {
        copyOnWrite();
        instance.setUserDataMessage(value);
        return this;
        }
      /**
       * <code>optional .user_data_msg user_data_message = 4;</code>
       */
      public Builder setUserDataMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setUserDataMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .user_data_msg user_data_message = 4;</code>
       */
      public Builder mergeUserDataMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.user_data_msg value) {
        copyOnWrite();
        instance.mergeUserDataMessage(value);
        return this;
      }
      /**
       * <code>optional .user_data_msg user_data_message = 4;</code>
       */
      public Builder clearUserDataMessage() {  copyOnWrite();
        instance.clearUserDataMessage();
        return this;
      }

      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg> getPageMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getPageMessageList());
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      @java.lang.Override
      public int getPageMessageCount() {
        return instance.getPageMessageCount();
      }/**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg getPageMessage(int index) {
        return instance.getPageMessage(index);
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder setPageMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg value) {
        copyOnWrite();
        instance.setPageMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder setPageMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setPageMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder addPageMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg value) {
        copyOnWrite();
        instance.addPageMessage(value);
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder addPageMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg value) {
        copyOnWrite();
        instance.addPageMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder addPageMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addPageMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder addPageMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addPageMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder addAllPageMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg> values) {
        copyOnWrite();
        instance.addAllPageMessage(values);
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder clearPageMessage() {
        copyOnWrite();
        instance.clearPageMessage();
        return this;
      }
      /**
       * <code>repeated .page_msg page_message = 5;</code>
       */
      public Builder removePageMessage(int index) {
        copyOnWrite();
        instance.removePageMessage(index);
        return this;
      }

      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg> getBikeMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getBikeMessageList());
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      @java.lang.Override
      public int getBikeMessageCount() {
        return instance.getBikeMessageCount();
      }/**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg getBikeMessage(int index) {
        return instance.getBikeMessage(index);
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder setBikeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg value) {
        copyOnWrite();
        instance.setBikeMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder setBikeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setBikeMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder addBikeMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg value) {
        copyOnWrite();
        instance.addBikeMessage(value);
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder addBikeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg value) {
        copyOnWrite();
        instance.addBikeMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder addBikeMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addBikeMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder addBikeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addBikeMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder addAllBikeMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg> values) {
        copyOnWrite();
        instance.addAllBikeMessage(values);
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder clearBikeMessage() {
        copyOnWrite();
        instance.clearBikeMessage();
        return this;
      }
      /**
       * <code>repeated .bike_msg bike_message = 6;</code>
       */
      public Builder removeBikeMessage(int index) {
        copyOnWrite();
        instance.removeBikeMessage(index);
        return this;
      }

      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg> getUnitMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getUnitMessageList());
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      @java.lang.Override
      public int getUnitMessageCount() {
        return instance.getUnitMessageCount();
      }/**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg getUnitMessage(int index) {
        return instance.getUnitMessage(index);
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder setUnitMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg value) {
        copyOnWrite();
        instance.setUnitMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder setUnitMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setUnitMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder addUnitMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg value) {
        copyOnWrite();
        instance.addUnitMessage(value);
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder addUnitMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg value) {
        copyOnWrite();
        instance.addUnitMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder addUnitMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addUnitMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder addUnitMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addUnitMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder addAllUnitMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg> values) {
        copyOnWrite();
        instance.addAllUnitMessage(values);
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder clearUnitMessage() {
        copyOnWrite();
        instance.clearUnitMessage();
        return this;
      }
      /**
       * <code>repeated .unit_msg unit_message = 7;</code>
       */
      public Builder removeUnitMessage(int index) {
        copyOnWrite();
        instance.removeUnitMessage(index);
        return this;
      }

      /**
       * <code>optional .cur_page_status_msg page_status_message = 8;</code>
       */
      @java.lang.Override
      public boolean hasPageStatusMessage() {
        return instance.hasPageStatusMessage();
      }
      /**
       * <code>optional .cur_page_status_msg page_status_message = 8;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg getPageStatusMessage() {
        return instance.getPageStatusMessage();
      }
      /**
       * <code>optional .cur_page_status_msg page_status_message = 8;</code>
       */
      public Builder setPageStatusMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg value) {
        copyOnWrite();
        instance.setPageStatusMessage(value);
        return this;
        }
      /**
       * <code>optional .cur_page_status_msg page_status_message = 8;</code>
       */
      public Builder setPageStatusMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setPageStatusMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .cur_page_status_msg page_status_message = 8;</code>
       */
      public Builder mergePageStatusMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.cur_page_status_msg value) {
        copyOnWrite();
        instance.mergePageStatusMessage(value);
        return this;
      }
      /**
       * <code>optional .cur_page_status_msg page_status_message = 8;</code>
       */
      public Builder clearPageStatusMessage() {  copyOnWrite();
        instance.clearPageStatusMessage();
        return this;
      }

      /**
       * <code>optional uint32 altitude = 9;</code>
       * @return Whether the altitude field is set.
       */
      @java.lang.Override
      public boolean hasAltitude() {
        return instance.hasAltitude();
      }
      /**
       * <code>optional uint32 altitude = 9;</code>
       * @return The altitude.
       */
      @java.lang.Override
      public int getAltitude() {
        return instance.getAltitude();
      }
      /**
       * <code>optional uint32 altitude = 9;</code>
       * @param value The altitude to set.
       * @return This builder for chaining.
       */
      public Builder setAltitude(int value) {
        copyOnWrite();
        instance.setAltitude(value);
        return this;
      }
      /**
       * <code>optional uint32 altitude = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearAltitude() {
        copyOnWrite();
        instance.clearAltitude();
        return this;
      }

      /**
       * <code>optional .language_msg language_message = 12;</code>
       */
      @java.lang.Override
      public boolean hasLanguageMessage() {
        return instance.hasLanguageMessage();
      }
      /**
       * <code>optional .language_msg language_message = 12;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg getLanguageMessage() {
        return instance.getLanguageMessage();
      }
      /**
       * <code>optional .language_msg language_message = 12;</code>
       */
      public Builder setLanguageMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg value) {
        copyOnWrite();
        instance.setLanguageMessage(value);
        return this;
        }
      /**
       * <code>optional .language_msg language_message = 12;</code>
       */
      public Builder setLanguageMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setLanguageMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .language_msg language_message = 12;</code>
       */
      public Builder mergeLanguageMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.language_msg value) {
        copyOnWrite();
        instance.mergeLanguageMessage(value);
        return this;
      }
      /**
       * <code>optional .language_msg language_message = 12;</code>
       */
      public Builder clearLanguageMessage() {  copyOnWrite();
        instance.clearLanguageMessage();
        return this;
      }

      /**
       * <code>optional .backlight_msg backlight_message = 13;</code>
       */
      @java.lang.Override
      public boolean hasBacklightMessage() {
        return instance.hasBacklightMessage();
      }
      /**
       * <code>optional .backlight_msg backlight_message = 13;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg getBacklightMessage() {
        return instance.getBacklightMessage();
      }
      /**
       * <code>optional .backlight_msg backlight_message = 13;</code>
       */
      public Builder setBacklightMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg value) {
        copyOnWrite();
        instance.setBacklightMessage(value);
        return this;
        }
      /**
       * <code>optional .backlight_msg backlight_message = 13;</code>
       */
      public Builder setBacklightMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setBacklightMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .backlight_msg backlight_message = 13;</code>
       */
      public Builder mergeBacklightMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.backlight_msg value) {
        copyOnWrite();
        instance.mergeBacklightMessage(value);
        return this;
      }
      /**
       * <code>optional .backlight_msg backlight_message = 13;</code>
       */
      public Builder clearBacklightMessage() {  copyOnWrite();
        instance.clearBacklightMessage();
        return this;
      }

      /**
       * <code>optional uint32 cur_operate_mode = 19;</code>
       * @return Whether the curOperateMode field is set.
       */
      @java.lang.Override
      public boolean hasCurOperateMode() {
        return instance.hasCurOperateMode();
      }
      /**
       * <code>optional uint32 cur_operate_mode = 19;</code>
       * @return The curOperateMode.
       */
      @java.lang.Override
      public int getCurOperateMode() {
        return instance.getCurOperateMode();
      }
      /**
       * <code>optional uint32 cur_operate_mode = 19;</code>
       * @param value The curOperateMode to set.
       * @return This builder for chaining.
       */
      public Builder setCurOperateMode(int value) {
        copyOnWrite();
        instance.setCurOperateMode(value);
        return this;
      }
      /**
       * <code>optional uint32 cur_operate_mode = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurOperateMode() {
        copyOnWrite();
        instance.clearCurOperateMode();
        return this;
      }

      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg> getModeMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getModeMessageList());
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      @java.lang.Override
      public int getModeMessageCount() {
        return instance.getModeMessageCount();
      }/**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg getModeMessage(int index) {
        return instance.getModeMessage(index);
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder setModeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg value) {
        copyOnWrite();
        instance.setModeMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder setModeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setModeMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder addModeMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg value) {
        copyOnWrite();
        instance.addModeMessage(value);
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder addModeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg value) {
        copyOnWrite();
        instance.addModeMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder addModeMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addModeMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder addModeMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addModeMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder addAllModeMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg> values) {
        copyOnWrite();
        instance.addAllModeMessage(values);
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder clearModeMessage() {
        copyOnWrite();
        instance.clearModeMessage();
        return this;
      }
      /**
       * <code>repeated .mode_msg mode_message = 20;</code>
       */
      public Builder removeModeMessage(int index) {
        copyOnWrite();
        instance.removeModeMessage(index);
        return this;
      }

      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg> getAlarmMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getAlarmMessageList());
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      @java.lang.Override
      public int getAlarmMessageCount() {
        return instance.getAlarmMessageCount();
      }/**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg getAlarmMessage(int index) {
        return instance.getAlarmMessage(index);
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder setAlarmMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg value) {
        copyOnWrite();
        instance.setAlarmMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder setAlarmMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setAlarmMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder addAlarmMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg value) {
        copyOnWrite();
        instance.addAlarmMessage(value);
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder addAlarmMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg value) {
        copyOnWrite();
        instance.addAlarmMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder addAlarmMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addAlarmMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder addAlarmMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addAlarmMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder addAllAlarmMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg> values) {
        copyOnWrite();
        instance.addAllAlarmMessage(values);
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder clearAlarmMessage() {
        copyOnWrite();
        instance.clearAlarmMessage();
        return this;
      }
      /**
       * <code>repeated .alarm_msg alarm_message = 21;</code>
       */
      public Builder removeAlarmMessage(int index) {
        copyOnWrite();
        instance.removeAlarmMessage(index);
        return this;
      }

      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg> getLapMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getLapMessageList());
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      @java.lang.Override
      public int getLapMessageCount() {
        return instance.getLapMessageCount();
      }/**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg getLapMessage(int index) {
        return instance.getLapMessage(index);
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder setLapMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg value) {
        copyOnWrite();
        instance.setLapMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder setLapMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setLapMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder addLapMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg value) {
        copyOnWrite();
        instance.addLapMessage(value);
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder addLapMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg value) {
        copyOnWrite();
        instance.addLapMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder addLapMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addLapMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder addLapMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addLapMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder addAllLapMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg> values) {
        copyOnWrite();
        instance.addAllLapMessage(values);
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder clearLapMessage() {
        copyOnWrite();
        instance.clearLapMessage();
        return this;
      }
      /**
       * <code>repeated .lap_msg lap_message = 22;</code>
       */
      public Builder removeLapMessage(int index) {
        copyOnWrite();
        instance.removeLapMessage(index);
        return this;
      }

      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg> getAutoSetMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getAutoSetMessageList());
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      @java.lang.Override
      public int getAutoSetMessageCount() {
        return instance.getAutoSetMessageCount();
      }/**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg getAutoSetMessage(int index) {
        return instance.getAutoSetMessage(index);
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder setAutoSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg value) {
        copyOnWrite();
        instance.setAutoSetMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder setAutoSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setAutoSetMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder addAutoSetMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg value) {
        copyOnWrite();
        instance.addAutoSetMessage(value);
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder addAutoSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg value) {
        copyOnWrite();
        instance.addAutoSetMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder addAutoSetMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addAutoSetMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder addAutoSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addAutoSetMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder addAllAutoSetMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg> values) {
        copyOnWrite();
        instance.addAllAutoSetMessage(values);
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder clearAutoSetMessage() {
        copyOnWrite();
        instance.clearAutoSetMessage();
        return this;
      }
      /**
       * <code>repeated .auto_set_msg auto_set_message = 23;</code>
       */
      public Builder removeAutoSetMessage(int index) {
        copyOnWrite();
        instance.removeAutoSetMessage(index);
        return this;
      }

      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg> getKeySetMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getKeySetMessageList());
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      @java.lang.Override
      public int getKeySetMessageCount() {
        return instance.getKeySetMessageCount();
      }/**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg getKeySetMessage(int index) {
        return instance.getKeySetMessage(index);
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder setKeySetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg value) {
        copyOnWrite();
        instance.setKeySetMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder setKeySetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setKeySetMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder addKeySetMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg value) {
        copyOnWrite();
        instance.addKeySetMessage(value);
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder addKeySetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg value) {
        copyOnWrite();
        instance.addKeySetMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder addKeySetMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addKeySetMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder addKeySetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addKeySetMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder addAllKeySetMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg> values) {
        copyOnWrite();
        instance.addAllKeySetMessage(values);
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder clearKeySetMessage() {
        copyOnWrite();
        instance.clearKeySetMessage();
        return this;
      }
      /**
       * <code>repeated .key_set_msg key_set_message = 24;</code>
       */
      public Builder removeKeySetMessage(int index) {
        copyOnWrite();
        instance.removeKeySetMessage(index);
        return this;
      }

      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg> getSoundSetMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getSoundSetMessageList());
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      @java.lang.Override
      public int getSoundSetMessageCount() {
        return instance.getSoundSetMessageCount();
      }/**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg getSoundSetMessage(int index) {
        return instance.getSoundSetMessage(index);
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder setSoundSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg value) {
        copyOnWrite();
        instance.setSoundSetMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder setSoundSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setSoundSetMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder addSoundSetMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg value) {
        copyOnWrite();
        instance.addSoundSetMessage(value);
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder addSoundSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg value) {
        copyOnWrite();
        instance.addSoundSetMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder addSoundSetMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addSoundSetMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder addSoundSetMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addSoundSetMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder addAllSoundSetMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg> values) {
        copyOnWrite();
        instance.addAllSoundSetMessage(values);
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder clearSoundSetMessage() {
        copyOnWrite();
        instance.clearSoundSetMessage();
        return this;
      }
      /**
       * <code>repeated .sound_set_msg sound_set_message = 25;</code>
       */
      public Builder removeSoundSetMessage(int index) {
        copyOnWrite();
        instance.removeSoundSetMessage(index);
        return this;
      }

      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg> getDataMessageList() {
        return java.util.Collections.unmodifiableList(
            instance.getDataMessageList());
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      @java.lang.Override
      public int getDataMessageCount() {
        return instance.getDataMessageCount();
      }/**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg getDataMessage(int index) {
        return instance.getDataMessage(index);
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder setDataMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg value) {
        copyOnWrite();
        instance.setDataMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder setDataMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg.Builder builderForValue) {
        copyOnWrite();
        instance.setDataMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder addDataMessage(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg value) {
        copyOnWrite();
        instance.addDataMessage(value);
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder addDataMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg value) {
        copyOnWrite();
        instance.addDataMessage(index, value);
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder addDataMessage(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addDataMessage(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder addDataMessage(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg.Builder builderForValue) {
        copyOnWrite();
        instance.addDataMessage(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder addAllDataMessage(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg> values) {
        copyOnWrite();
        instance.addAllDataMessage(values);
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder clearDataMessage() {
        copyOnWrite();
        instance.clearDataMessage();
        return this;
      }
      /**
       * <code>repeated .data_msg data_message = 26;</code>
       */
      public Builder removeDataMessage(int index) {
        copyOnWrite();
        instance.removeDataMessage(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:config_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.Config.config_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(),
              "configSeviceType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_SERVICE_TYPE.internalGetVerifier(),
              "configOperateType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.CONFIG_OPERATE_TYPE.internalGetVerifier(),
              "userDataMessage_",
              "pageMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.page_msg.class,
              "bikeMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.bike_msg.class,
              "unitMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.unit_msg.class,
              "pageStatusMessage_",
              "altitude_",
              "languageMessage_",
              "backlightMessage_",
              "curOperateMode_",
              "modeMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.mode_msg.class,
              "alarmMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.alarm_msg.class,
              "lapMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.lap_msg.class,
              "autoSetMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.auto_set_msg.class,
              "keySetMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.key_set_msg.class,
              "soundSetMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.sound_set_msg.class,
              "dataMessage_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.data_msg.class,
            };
            java.lang.String info =
                "\u0001\u0013\u0000\u0001\u0001\u001a\u0013\u0000\n\u0006\u0001\u150c\u0000\u0002" +
                "\u150c\u0001\u0003\u150c\u0002\u0004\u1009\u0003\u0005\u001b\u0006\u001b\u0007\u001b" +
                "\b\u1009\u0004\t\u100b\u0005\f\u1409\u0006\r\u1009\u0007\u0013\u100b\b\u0014\u001b" +
                "\u0015\u041b\u0016\u041b\u0017\u001b\u0018\u001b\u0019\u001b\u001a\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.Config.config_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.config_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.config_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:config_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Config.config_msg DEFAULT_INSTANCE;
    static {
      config_msg defaultInstance = new config_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        config_msg.class, defaultInstance);
    }

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

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
