LayoutElementProto.java

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

package androidx.wear.protolayout.proto;

public final class LayoutElementProto {
  private LayoutElementProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * <pre>
   * The weight to be applied to the font.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.FontWeight}
   */
  public enum FontWeight
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Font weight is undefined.
     * </pre>
     *
     * <code>FONT_WEIGHT_UNDEFINED = 0;</code>
     */
    FONT_WEIGHT_UNDEFINED(0),
    /**
     * <pre>
     * Normal font weight.
     * </pre>
     *
     * <code>FONT_WEIGHT_NORMAL = 400;</code>
     */
    FONT_WEIGHT_NORMAL(400),
    /**
     * <pre>
     * Medium font weight.
     * </pre>
     *
     * <code>FONT_WEIGHT_MEDIUM = 500;</code>
     */
    FONT_WEIGHT_MEDIUM(500),
    /**
     * <pre>
     * Bold font weight.
     * </pre>
     *
     * <code>FONT_WEIGHT_BOLD = 700;</code>
     */
    FONT_WEIGHT_BOLD(700),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Font weight is undefined.
     * </pre>
     *
     * <code>FONT_WEIGHT_UNDEFINED = 0;</code>
     */
    public static final int FONT_WEIGHT_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Normal font weight.
     * </pre>
     *
     * <code>FONT_WEIGHT_NORMAL = 400;</code>
     */
    public static final int FONT_WEIGHT_NORMAL_VALUE = 400;
    /**
     * <pre>
     * Medium font weight.
     * </pre>
     *
     * <code>FONT_WEIGHT_MEDIUM = 500;</code>
     */
    public static final int FONT_WEIGHT_MEDIUM_VALUE = 500;
    /**
     * <pre>
     * Bold font weight.
     * </pre>
     *
     * <code>FONT_WEIGHT_BOLD = 700;</code>
     */
    public static final int FONT_WEIGHT_BOLD_VALUE = 700;


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

    /**
     * @param value The 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 FontWeight valueOf(int value) {
      return forNumber(value);
    }

    public static FontWeight forNumber(int value) {
      switch (value) {
        case 0: return FONT_WEIGHT_UNDEFINED;
        case 400: return FONT_WEIGHT_NORMAL;
        case 500: return FONT_WEIGHT_MEDIUM;
        case 700: return FONT_WEIGHT_BOLD;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.FontWeight)
  }

  /**
   * <pre>
   * The variant of a font. Some renderers may use different fonts for title and
   * body text, which can be selected using this field.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.FontVariant}
   */
  public enum FontVariant
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Font variant is undefined.
     * </pre>
     *
     * <code>FONT_VARIANT_UNDEFINED = 0;</code>
     */
    FONT_VARIANT_UNDEFINED(0),
    /**
     * <pre>
     * Font variant suited for title text.
     * </pre>
     *
     * <code>FONT_VARIANT_TITLE = 1;</code>
     */
    FONT_VARIANT_TITLE(1),
    /**
     * <pre>
     * Font variant suited for body text.
     * </pre>
     *
     * <code>FONT_VARIANT_BODY = 2;</code>
     */
    FONT_VARIANT_BODY(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Font variant is undefined.
     * </pre>
     *
     * <code>FONT_VARIANT_UNDEFINED = 0;</code>
     */
    public static final int FONT_VARIANT_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Font variant suited for title text.
     * </pre>
     *
     * <code>FONT_VARIANT_TITLE = 1;</code>
     */
    public static final int FONT_VARIANT_TITLE_VALUE = 1;
    /**
     * <pre>
     * Font variant suited for body text.
     * </pre>
     *
     * <code>FONT_VARIANT_BODY = 2;</code>
     */
    public static final int FONT_VARIANT_BODY_VALUE = 2;


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

    /**
     * @param value The 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 FontVariant valueOf(int value) {
      return forNumber(value);
    }

    public static FontVariant forNumber(int value) {
      switch (value) {
        case 0: return FONT_VARIANT_UNDEFINED;
        case 1: return FONT_VARIANT_TITLE;
        case 2: return FONT_VARIANT_BODY;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.FontVariant)
  }

  /**
   * <pre>
   * The alignment of a SpanImage within the line height of the surrounding
   * Spannable.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.SpanVerticalAlignment}
   */
  public enum SpanVerticalAlignment
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Alignment is undefined.
     * </pre>
     *
     * <code>SPAN_VERTICAL_ALIGN_UNDEFINED = 0;</code>
     */
    SPAN_VERTICAL_ALIGN_UNDEFINED(0),
    /**
     * <pre>
     * Align to the bottom of the line (descent of the largest text in this line).
     * If there is no text in the line containing this image, this will align to
     * the bottom of the line, where the line height is defined as the height of
     * the largest image in the line.
     * </pre>
     *
     * <code>SPAN_VERTICAL_ALIGN_BOTTOM = 1;</code>
     */
    SPAN_VERTICAL_ALIGN_BOTTOM(1),
    /**
     * <pre>
     * Align to the baseline of the text. Note that if the line in the Spannable
     * which contains this image does not contain any text, the effects of using
     * this alignment are undefined.
     * </pre>
     *
     * <code>SPAN_VERTICAL_ALIGN_TEXT_BASELINE = 2;</code>
     */
    SPAN_VERTICAL_ALIGN_TEXT_BASELINE(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Alignment is undefined.
     * </pre>
     *
     * <code>SPAN_VERTICAL_ALIGN_UNDEFINED = 0;</code>
     */
    public static final int SPAN_VERTICAL_ALIGN_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Align to the bottom of the line (descent of the largest text in this line).
     * If there is no text in the line containing this image, this will align to
     * the bottom of the line, where the line height is defined as the height of
     * the largest image in the line.
     * </pre>
     *
     * <code>SPAN_VERTICAL_ALIGN_BOTTOM = 1;</code>
     */
    public static final int SPAN_VERTICAL_ALIGN_BOTTOM_VALUE = 1;
    /**
     * <pre>
     * Align to the baseline of the text. Note that if the line in the Spannable
     * which contains this image does not contain any text, the effects of using
     * this alignment are undefined.
     * </pre>
     *
     * <code>SPAN_VERTICAL_ALIGN_TEXT_BASELINE = 2;</code>
     */
    public static final int SPAN_VERTICAL_ALIGN_TEXT_BASELINE_VALUE = 2;


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

    /**
     * @param value The 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 SpanVerticalAlignment valueOf(int value) {
      return forNumber(value);
    }

    public static SpanVerticalAlignment forNumber(int value) {
      switch (value) {
        case 0: return SPAN_VERTICAL_ALIGN_UNDEFINED;
        case 1: return SPAN_VERTICAL_ALIGN_BOTTOM;
        case 2: return SPAN_VERTICAL_ALIGN_TEXT_BASELINE;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.SpanVerticalAlignment)
  }

  /**
   * <pre>
   * How text that will not fit inside the bounds of a Text element will be
   * handled.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.TextOverflow}
   */
  public enum TextOverflow
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Overflow behavior is undefined.
     * </pre>
     *
     * <code>TEXT_OVERFLOW_UNDEFINED = 0;</code>
     */
    TEXT_OVERFLOW_UNDEFINED(0),
    /**
     * <pre>
     * Truncate the text to fit inside of the Text element's bounds. If text is
     * truncated, it will be truncated on a word boundary.
     * </pre>
     *
     * <code>TEXT_OVERFLOW_TRUNCATE = 1;</code>
     */
    TEXT_OVERFLOW_TRUNCATE(1),
    /**
     * <pre>
     * Truncate the text to fit in the Text element's bounds, but add an ellipsis
     * (i.e. ...) to the end of the text if it has been truncated.
     * </pre>
     *
     * <code>TEXT_OVERFLOW_ELLIPSIZE_END = 2;</code>
     */
    TEXT_OVERFLOW_ELLIPSIZE_END(2),
    /**
     * <code>TEXT_OVERFLOW_MARQUEE = 3;</code>
     */
    TEXT_OVERFLOW_MARQUEE(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Overflow behavior is undefined.
     * </pre>
     *
     * <code>TEXT_OVERFLOW_UNDEFINED = 0;</code>
     */
    public static final int TEXT_OVERFLOW_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Truncate the text to fit inside of the Text element's bounds. If text is
     * truncated, it will be truncated on a word boundary.
     * </pre>
     *
     * <code>TEXT_OVERFLOW_TRUNCATE = 1;</code>
     */
    public static final int TEXT_OVERFLOW_TRUNCATE_VALUE = 1;
    /**
     * <pre>
     * Truncate the text to fit in the Text element's bounds, but add an ellipsis
     * (i.e. ...) to the end of the text if it has been truncated.
     * </pre>
     *
     * <code>TEXT_OVERFLOW_ELLIPSIZE_END = 2;</code>
     */
    public static final int TEXT_OVERFLOW_ELLIPSIZE_END_VALUE = 2;
    /**
     * <code>TEXT_OVERFLOW_MARQUEE = 3;</code>
     */
    public static final int TEXT_OVERFLOW_MARQUEE_VALUE = 3;


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

    /**
     * @param value The 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 TextOverflow valueOf(int value) {
      return forNumber(value);
    }

    public static TextOverflow forNumber(int value) {
      switch (value) {
        case 0: return TEXT_OVERFLOW_UNDEFINED;
        case 1: return TEXT_OVERFLOW_TRUNCATE;
        case 2: return TEXT_OVERFLOW_ELLIPSIZE_END;
        case 3: return TEXT_OVERFLOW_MARQUEE;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.TextOverflow)
  }

  /**
   * <pre>
   * How content which does not match the dimensions of its bounds (e.g. an image
   * resource being drawn inside an Image) will be resized to fit its bounds.
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.ContentScaleMode}
   */
  public enum ContentScaleMode
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * Content scaling is undefined.
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_UNDEFINED = 0;</code>
     */
    CONTENT_SCALE_MODE_UNDEFINED(0),
    /**
     * <pre>
     * Content will be scaled to fit inside its bounds, proportionally. As an
     * example, If a 10x5 image was going to be drawn inside a 50x50 Image
     * element, the actual image resource would be drawn as a 50x25 image,
     * centered within the 50x50 bounds.
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_FIT = 1;</code>
     */
    CONTENT_SCALE_MODE_FIT(1),
    /**
     * <pre>
     * Content will be resized proportionally so it completely fills its bounds,
     * and anything outside of the bounds will be cropped. As an example, if a
     * 10x5 image was going to be drawn inside a 50x50 Image element, the image
     * resource would be drawn as a 100x50 image, centered within its bounds (and
     * with 25px cropped from both the left and right sides).
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_CROP = 2;</code>
     */
    CONTENT_SCALE_MODE_CROP(2),
    /**
     * <pre>
     * Content will be resized to fill its bounds, without taking into account the
     * aspect ratio. If a 10x5 image was going to be drawn inside a 50x50 Image
     * element, the image would be drawn as a 50x50 image, stretched vertically.
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_FILL_BOUNDS = 3;</code>
     */
    CONTENT_SCALE_MODE_FILL_BOUNDS(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Content scaling is undefined.
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_UNDEFINED = 0;</code>
     */
    public static final int CONTENT_SCALE_MODE_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Content will be scaled to fit inside its bounds, proportionally. As an
     * example, If a 10x5 image was going to be drawn inside a 50x50 Image
     * element, the actual image resource would be drawn as a 50x25 image,
     * centered within the 50x50 bounds.
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_FIT = 1;</code>
     */
    public static final int CONTENT_SCALE_MODE_FIT_VALUE = 1;
    /**
     * <pre>
     * Content will be resized proportionally so it completely fills its bounds,
     * and anything outside of the bounds will be cropped. As an example, if a
     * 10x5 image was going to be drawn inside a 50x50 Image element, the image
     * resource would be drawn as a 100x50 image, centered within its bounds (and
     * with 25px cropped from both the left and right sides).
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_CROP = 2;</code>
     */
    public static final int CONTENT_SCALE_MODE_CROP_VALUE = 2;
    /**
     * <pre>
     * Content will be resized to fill its bounds, without taking into account the
     * aspect ratio. If a 10x5 image was going to be drawn inside a 50x50 Image
     * element, the image would be drawn as a 50x50 image, stretched vertically.
     * </pre>
     *
     * <code>CONTENT_SCALE_MODE_FILL_BOUNDS = 3;</code>
     */
    public static final int CONTENT_SCALE_MODE_FILL_BOUNDS_VALUE = 3;


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

    /**
     * @param value The 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 ContentScaleMode valueOf(int value) {
      return forNumber(value);
    }

    public static ContentScaleMode forNumber(int value) {
      switch (value) {
        case 0: return CONTENT_SCALE_MODE_UNDEFINED;
        case 1: return CONTENT_SCALE_MODE_FIT;
        case 2: return CONTENT_SCALE_MODE_CROP;
        case 3: return CONTENT_SCALE_MODE_FILL_BOUNDS;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.ContentScaleMode)
  }

  /**
   * <pre>
   * Styles to use for path endings
   * </pre>
   *
   * Protobuf enum {@code androidx.wear.protolayout.proto.StrokeCap}
   */
  public enum StrokeCap
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <pre>
     * StrokeCap is undefined.
     * </pre>
     *
     * <code>STROKE_CAP_UNDEFINED = 0;</code>
     */
    STROKE_CAP_UNDEFINED(0),
    /**
     * <pre>
     * Begin and end contours with a flat edge and no extension.
     * </pre>
     *
     * <code>STROKE_CAP_BUTT = 1;</code>
     */
    STROKE_CAP_BUTT(1),
    /**
     * <pre>
     * Begin and end contours with a semi-circle extension. The extension size is
     * proportional to the thickness on the path.
     * </pre>
     *
     * <code>STROKE_CAP_ROUND = 2;</code>
     */
    STROKE_CAP_ROUND(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * StrokeCap is undefined.
     * </pre>
     *
     * <code>STROKE_CAP_UNDEFINED = 0;</code>
     */
    public static final int STROKE_CAP_UNDEFINED_VALUE = 0;
    /**
     * <pre>
     * Begin and end contours with a flat edge and no extension.
     * </pre>
     *
     * <code>STROKE_CAP_BUTT = 1;</code>
     */
    public static final int STROKE_CAP_BUTT_VALUE = 1;
    /**
     * <pre>
     * Begin and end contours with a semi-circle extension. The extension size is
     * proportional to the thickness on the path.
     * </pre>
     *
     * <code>STROKE_CAP_ROUND = 2;</code>
     */
    public static final int STROKE_CAP_ROUND_VALUE = 2;


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

    /**
     * @param value The 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 StrokeCap valueOf(int value) {
      return forNumber(value);
    }

    public static StrokeCap forNumber(int value) {
      switch (value) {
        case 0: return STROKE_CAP_UNDEFINED;
        case 1: return STROKE_CAP_BUTT;
        case 2: return STROKE_CAP_ROUND;
        default: return null;
      }
    }

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

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

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

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:androidx.wear.protolayout.proto.StrokeCap)
  }

  public interface FontWeightPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.FontWeightProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    int getValueValue();
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
     * @return The value.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.FontWeight getValue();
  }
  /**
   * <pre>
   * An extensible FontWeight property.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.FontWeightProp}
   */
  public  static final class FontWeightProp extends
      com.google.protobuf.GeneratedMessageLite<
          FontWeightProp, FontWeightProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.FontWeightProp)
      FontWeightPropOrBuilder {
    private FontWeightProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    @java.lang.Override
    public int getValueValue() {
      return value_;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.FontWeight getValue() {
      androidx.wear.protolayout.proto.LayoutElementProto.FontWeight result = androidx.wear.protolayout.proto.LayoutElementProto.FontWeight.forNumber(value_);
      return result == null ? androidx.wear.protolayout.proto.LayoutElementProto.FontWeight.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
     * @param value The enum numeric value on the wire for value to set.
     */
    private void setValueValue(int value) {
        value_ = value;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(androidx.wear.protolayout.proto.LayoutElementProto.FontWeight value) {
      value_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
     */
    private void clearValue() {
      
      value_ = 0;
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp 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(androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An extensible FontWeight property.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.FontWeightProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.FontWeightProp)
        androidx.wear.protolayout.proto.LayoutElementProto.FontWeightPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
       * @return The enum numeric value on the wire for value.
       */
      @java.lang.Override
      public int getValueValue() {
        return instance.getValueValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValueValue(int value) {
        copyOnWrite();
        instance.setValueValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.FontWeight getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
       * @param value The enum numeric value on the wire for value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(androidx.wear.protolayout.proto.LayoutElementProto.FontWeight value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeight value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.FontWeightProp)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp>(
                        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:androidx.wear.protolayout.proto.FontWeightProp)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp DEFAULT_INSTANCE;
    static {
      FontWeightProp defaultInstance = new FontWeightProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FontWeightProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface FontVariantPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.FontVariantProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    int getValueValue();
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
     * @return The value.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.FontVariant getValue();
  }
  /**
   * <pre>
   * An extensible FontVariant property.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.FontVariantProp}
   */
  public  static final class FontVariantProp extends
      com.google.protobuf.GeneratedMessageLite<
          FontVariantProp, FontVariantProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.FontVariantProp)
      FontVariantPropOrBuilder {
    private FontVariantProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    @java.lang.Override
    public int getValueValue() {
      return value_;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.FontVariant getValue() {
      androidx.wear.protolayout.proto.LayoutElementProto.FontVariant result = androidx.wear.protolayout.proto.LayoutElementProto.FontVariant.forNumber(value_);
      return result == null ? androidx.wear.protolayout.proto.LayoutElementProto.FontVariant.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
     * @param value The enum numeric value on the wire for value to set.
     */
    private void setValueValue(int value) {
        value_ = value;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(androidx.wear.protolayout.proto.LayoutElementProto.FontVariant value) {
      value_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
     */
    private void clearValue() {
      
      value_ = 0;
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp 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 androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp 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(androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An extensible FontVariant property.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.FontVariantProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.FontVariantProp)
        androidx.wear.protolayout.proto.LayoutElementProto.FontVariantPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
       * @return The enum numeric value on the wire for value.
       */
      @java.lang.Override
      public int getValueValue() {
        return instance.getValueValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValueValue(int value) {
        copyOnWrite();
        instance.setValueValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.FontVariant getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
       * @param value The enum numeric value on the wire for value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(androidx.wear.protolayout.proto.LayoutElementProto.FontVariant value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariant value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.FontVariantProp)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp>(
                        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:androidx.wear.protolayout.proto.FontVariantProp)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp DEFAULT_INSTANCE;
    static {
      FontVariantProp defaultInstance = new FontVariantProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FontVariantProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SpanVerticalAlignmentPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SpanVerticalAlignmentProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    int getValueValue();
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
     * @return The value.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment getValue();
  }
  /**
   * <pre>
   * An extensible SpanVerticalAlignment property.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SpanVerticalAlignmentProp}
   */
  public  static final class SpanVerticalAlignmentProp extends
      com.google.protobuf.GeneratedMessageLite<
          SpanVerticalAlignmentProp, SpanVerticalAlignmentProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SpanVerticalAlignmentProp)
      SpanVerticalAlignmentPropOrBuilder {
    private SpanVerticalAlignmentProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    @java.lang.Override
    public int getValueValue() {
      return value_;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment getValue() {
      androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment result = androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment.forNumber(value_);
      return result == null ? androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
     * @param value The enum numeric value on the wire for value to set.
     */
    private void setValueValue(int value) {
        value_ = value;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment value) {
      value_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
     */
    private void clearValue() {
      
      value_ = 0;
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp 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(androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An extensible SpanVerticalAlignment property.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SpanVerticalAlignmentProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SpanVerticalAlignmentProp)
        androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
       * @return The enum numeric value on the wire for value.
       */
      @java.lang.Override
      public int getValueValue() {
        return instance.getValueValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValueValue(int value) {
        copyOnWrite();
        instance.setValueValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
       * @param value The enum numeric value on the wire for value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignment value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignment value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SpanVerticalAlignmentProp)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp>(
                        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:androidx.wear.protolayout.proto.SpanVerticalAlignmentProp)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp DEFAULT_INSTANCE;
    static {
      SpanVerticalAlignmentProp defaultInstance = new SpanVerticalAlignmentProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SpanVerticalAlignmentProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface FontStyleOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.FontStyle)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The size of the font, in scaled pixels (sp). If not specified, defaults to
     * the size of the system's "body" font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
     * @return Whether the size field is set.
     */
    boolean hasSize();
    /**
     * <pre>
     * The size of the font, in scaled pixels (sp). If not specified, defaults to
     * the size of the system's "body" font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
     * @return The size.
     */
    androidx.wear.protolayout.proto.DimensionProto.SpProp getSize();

    /**
     * <pre>
     * Whether the text should be rendered in a italic typeface. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
     * @return Whether the italic field is set.
     */
    boolean hasItalic();
    /**
     * <pre>
     * Whether the text should be rendered in a italic typeface. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
     * @return The italic.
     */
    androidx.wear.protolayout.proto.TypesProto.BoolProp getItalic();

    /**
     * <pre>
     * Whether the text should be rendered with an underline. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
     * @return Whether the underline field is set.
     */
    boolean hasUnderline();
    /**
     * <pre>
     * Whether the text should be rendered with an underline. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
     * @return The underline.
     */
    androidx.wear.protolayout.proto.TypesProto.BoolProp getUnderline();

    /**
     * <pre>
     * The text color. If not defined, defaults to white.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
     * @return Whether the color field is set.
     */
    boolean hasColor();
    /**
     * <pre>
     * The text color. If not defined, defaults to white.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
     * @return The color.
     */
    androidx.wear.protolayout.proto.ColorProto.ColorProp getColor();

    /**
     * <pre>
     * The weight of the font. If the provided value is not supported on a
     * platform, the nearest supported value will be used. If not defined, or
     * when set to an invalid value, defaults to "normal".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
     * @return Whether the weight field is set.
     */
    boolean hasWeight();
    /**
     * <pre>
     * The weight of the font. If the provided value is not supported on a
     * platform, the nearest supported value will be used. If not defined, or
     * when set to an invalid value, defaults to "normal".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
     * @return The weight.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp getWeight();

    /**
     * <pre>
     * The text letter-spacing. Positive numbers increase the space between
     * letters while negative numbers tighten the space. If not specified,
     * defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
     * @return Whether the letterSpacing field is set.
     */
    boolean hasLetterSpacing();
    /**
     * <pre>
     * The text letter-spacing. Positive numbers increase the space between
     * letters while negative numbers tighten the space. If not specified,
     * defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
     * @return The letterSpacing.
     */
    androidx.wear.protolayout.proto.DimensionProto.EmProp getLetterSpacing();

    /**
     * <pre>
     * The variant of a font. Some renderers may use different fonts for title and
     * body text, which can be selected using this field. If not specified,
     * defaults to "body".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
     * @return Whether the variant field is set.
     */
    boolean hasVariant();
    /**
     * <pre>
     * The variant of a font. Some renderers may use different fonts for title and
     * body text, which can be selected using this field. If not specified,
     * defaults to "body".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
     * @return The variant.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp getVariant();
  }
  /**
   * <pre>
   * The styling of a font (e.g. font size, and metrics).
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.FontStyle}
   */
  public  static final class FontStyle extends
      com.google.protobuf.GeneratedMessageLite<
          FontStyle, FontStyle.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.FontStyle)
      FontStyleOrBuilder {
    private FontStyle() {
    }
    public static final int SIZE_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.SpProp size_;
    /**
     * <pre>
     * The size of the font, in scaled pixels (sp). If not specified, defaults to
     * the size of the system's "body" font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
     */
    @java.lang.Override
    public boolean hasSize() {
      return size_ != null;
    }
    /**
     * <pre>
     * The size of the font, in scaled pixels (sp). If not specified, defaults to
     * the size of the system's "body" font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.SpProp getSize() {
      return size_ == null ? androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance() : size_;
    }
    /**
     * <pre>
     * The size of the font, in scaled pixels (sp). If not specified, defaults to
     * the size of the system's "body" font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
     */
    private void setSize(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  size_ = value;
      
      }
    /**
     * <pre>
     * The size of the font, in scaled pixels (sp). If not specified, defaults to
     * the size of the system's "body" font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSize(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  if (size_ != null &&
          size_ != androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance()) {
        size_ =
          androidx.wear.protolayout.proto.DimensionProto.SpProp.newBuilder(size_).mergeFrom(value).buildPartial();
      } else {
        size_ = value;
      }
      
    }
    /**
     * <pre>
     * The size of the font, in scaled pixels (sp). If not specified, defaults to
     * the size of the system's "body" font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
     */
    private void clearSize() {  size_ = null;
      
    }

    public static final int ITALIC_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.TypesProto.BoolProp italic_;
    /**
     * <pre>
     * Whether the text should be rendered in a italic typeface. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
     */
    @java.lang.Override
    public boolean hasItalic() {
      return italic_ != null;
    }
    /**
     * <pre>
     * Whether the text should be rendered in a italic typeface. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.BoolProp getItalic() {
      return italic_ == null ? androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance() : italic_;
    }
    /**
     * <pre>
     * Whether the text should be rendered in a italic typeface. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
     */
    private void setItalic(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  italic_ = value;
      
      }
    /**
     * <pre>
     * Whether the text should be rendered in a italic typeface. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeItalic(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  if (italic_ != null &&
          italic_ != androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance()) {
        italic_ =
          androidx.wear.protolayout.proto.TypesProto.BoolProp.newBuilder(italic_).mergeFrom(value).buildPartial();
      } else {
        italic_ = value;
      }
      
    }
    /**
     * <pre>
     * Whether the text should be rendered in a italic typeface. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
     */
    private void clearItalic() {  italic_ = null;
      
    }

    public static final int UNDERLINE_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.TypesProto.BoolProp underline_;
    /**
     * <pre>
     * Whether the text should be rendered with an underline. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
     */
    @java.lang.Override
    public boolean hasUnderline() {
      return underline_ != null;
    }
    /**
     * <pre>
     * Whether the text should be rendered with an underline. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.BoolProp getUnderline() {
      return underline_ == null ? androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance() : underline_;
    }
    /**
     * <pre>
     * Whether the text should be rendered with an underline. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
     */
    private void setUnderline(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  underline_ = value;
      
      }
    /**
     * <pre>
     * Whether the text should be rendered with an underline. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeUnderline(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  if (underline_ != null &&
          underline_ != androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance()) {
        underline_ =
          androidx.wear.protolayout.proto.TypesProto.BoolProp.newBuilder(underline_).mergeFrom(value).buildPartial();
      } else {
        underline_ = value;
      }
      
    }
    /**
     * <pre>
     * Whether the text should be rendered with an underline. If not specified,
     * defaults to "false".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
     */
    private void clearUnderline() {  underline_ = null;
      
    }

    public static final int COLOR_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.ColorProto.ColorProp color_;
    /**
     * <pre>
     * The text color. If not defined, defaults to white.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
     */
    @java.lang.Override
    public boolean hasColor() {
      return color_ != null;
    }
    /**
     * <pre>
     * The text color. If not defined, defaults to white.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
      return color_ == null ? androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance() : color_;
    }
    /**
     * <pre>
     * The text color. If not defined, defaults to white.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
     */
    private void setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  color_ = value;
      
      }
    /**
     * <pre>
     * The text color. If not defined, defaults to white.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  if (color_ != null &&
          color_ != androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance()) {
        color_ =
          androidx.wear.protolayout.proto.ColorProto.ColorProp.newBuilder(color_).mergeFrom(value).buildPartial();
      } else {
        color_ = value;
      }
      
    }
    /**
     * <pre>
     * The text color. If not defined, defaults to white.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
     */
    private void clearColor() {  color_ = null;
      
    }

    public static final int WEIGHT_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp weight_;
    /**
     * <pre>
     * The weight of the font. If the provided value is not supported on a
     * platform, the nearest supported value will be used. If not defined, or
     * when set to an invalid value, defaults to "normal".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
     */
    @java.lang.Override
    public boolean hasWeight() {
      return weight_ != null;
    }
    /**
     * <pre>
     * The weight of the font. If the provided value is not supported on a
     * platform, the nearest supported value will be used. If not defined, or
     * when set to an invalid value, defaults to "normal".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp getWeight() {
      return weight_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp.getDefaultInstance() : weight_;
    }
    /**
     * <pre>
     * The weight of the font. If the provided value is not supported on a
     * platform, the nearest supported value will be used. If not defined, or
     * when set to an invalid value, defaults to "normal".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
     */
    private void setWeight(androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp value) {
      value.getClass();
  weight_ = value;
      
      }
    /**
     * <pre>
     * The weight of the font. If the provided value is not supported on a
     * platform, the nearest supported value will be used. If not defined, or
     * when set to an invalid value, defaults to "normal".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWeight(androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp value) {
      value.getClass();
  if (weight_ != null &&
          weight_ != androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp.getDefaultInstance()) {
        weight_ =
          androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp.newBuilder(weight_).mergeFrom(value).buildPartial();
      } else {
        weight_ = value;
      }
      
    }
    /**
     * <pre>
     * The weight of the font. If the provided value is not supported on a
     * platform, the nearest supported value will be used. If not defined, or
     * when set to an invalid value, defaults to "normal".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
     */
    private void clearWeight() {  weight_ = null;
      
    }

    public static final int LETTER_SPACING_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.DimensionProto.EmProp letterSpacing_;
    /**
     * <pre>
     * The text letter-spacing. Positive numbers increase the space between
     * letters while negative numbers tighten the space. If not specified,
     * defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
     */
    @java.lang.Override
    public boolean hasLetterSpacing() {
      return letterSpacing_ != null;
    }
    /**
     * <pre>
     * The text letter-spacing. Positive numbers increase the space between
     * letters while negative numbers tighten the space. If not specified,
     * defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.EmProp getLetterSpacing() {
      return letterSpacing_ == null ? androidx.wear.protolayout.proto.DimensionProto.EmProp.getDefaultInstance() : letterSpacing_;
    }
    /**
     * <pre>
     * The text letter-spacing. Positive numbers increase the space between
     * letters while negative numbers tighten the space. If not specified,
     * defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
     */
    private void setLetterSpacing(androidx.wear.protolayout.proto.DimensionProto.EmProp value) {
      value.getClass();
  letterSpacing_ = value;
      
      }
    /**
     * <pre>
     * The text letter-spacing. Positive numbers increase the space between
     * letters while negative numbers tighten the space. If not specified,
     * defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLetterSpacing(androidx.wear.protolayout.proto.DimensionProto.EmProp value) {
      value.getClass();
  if (letterSpacing_ != null &&
          letterSpacing_ != androidx.wear.protolayout.proto.DimensionProto.EmProp.getDefaultInstance()) {
        letterSpacing_ =
          androidx.wear.protolayout.proto.DimensionProto.EmProp.newBuilder(letterSpacing_).mergeFrom(value).buildPartial();
      } else {
        letterSpacing_ = value;
      }
      
    }
    /**
     * <pre>
     * The text letter-spacing. Positive numbers increase the space between
     * letters while negative numbers tighten the space. If not specified,
     * defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
     */
    private void clearLetterSpacing() {  letterSpacing_ = null;
      
    }

    public static final int VARIANT_FIELD_NUMBER = 7;
    private androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp variant_;
    /**
     * <pre>
     * The variant of a font. Some renderers may use different fonts for title and
     * body text, which can be selected using this field. If not specified,
     * defaults to "body".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
     */
    @java.lang.Override
    public boolean hasVariant() {
      return variant_ != null;
    }
    /**
     * <pre>
     * The variant of a font. Some renderers may use different fonts for title and
     * body text, which can be selected using this field. If not specified,
     * defaults to "body".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp getVariant() {
      return variant_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp.getDefaultInstance() : variant_;
    }
    /**
     * <pre>
     * The variant of a font. Some renderers may use different fonts for title and
     * body text, which can be selected using this field. If not specified,
     * defaults to "body".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
     */
    private void setVariant(androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp value) {
      value.getClass();
  variant_ = value;
      
      }
    /**
     * <pre>
     * The variant of a font. Some renderers may use different fonts for title and
     * body text, which can be selected using this field. If not specified,
     * defaults to "body".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeVariant(androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp value) {
      value.getClass();
  if (variant_ != null &&
          variant_ != androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp.getDefaultInstance()) {
        variant_ =
          androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp.newBuilder(variant_).mergeFrom(value).buildPartial();
      } else {
        variant_ = value;
      }
      
    }
    /**
     * <pre>
     * The variant of a font. Some renderers may use different fonts for title and
     * body text, which can be selected using this field. If not specified,
     * defaults to "body".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
     */
    private void clearVariant() {  variant_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.FontStyle parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.FontStyle parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.FontStyle parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.FontStyle parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle 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(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The styling of a font (e.g. font size, and metrics).
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.FontStyle}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.FontStyle, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.FontStyle)
        androidx.wear.protolayout.proto.LayoutElementProto.FontStyleOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The size of the font, in scaled pixels (sp). If not specified, defaults to
       * the size of the system's "body" font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
       */
      @java.lang.Override
      public boolean hasSize() {
        return instance.hasSize();
      }
      /**
       * <pre>
       * The size of the font, in scaled pixels (sp). If not specified, defaults to
       * the size of the system's "body" font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.SpProp getSize() {
        return instance.getSize();
      }
      /**
       * <pre>
       * The size of the font, in scaled pixels (sp). If not specified, defaults to
       * the size of the system's "body" font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
       */
      public Builder setSize(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.setSize(value);
        return this;
        }
      /**
       * <pre>
       * The size of the font, in scaled pixels (sp). If not specified, defaults to
       * the size of the system's "body" font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
       */
      public Builder setSize(
          androidx.wear.protolayout.proto.DimensionProto.SpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setSize(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The size of the font, in scaled pixels (sp). If not specified, defaults to
       * the size of the system's "body" font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
       */
      public Builder mergeSize(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.mergeSize(value);
        return this;
      }
      /**
       * <pre>
       * The size of the font, in scaled pixels (sp). If not specified, defaults to
       * the size of the system's "body" font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp size = 1;</code>
       */
      public Builder clearSize() {  copyOnWrite();
        instance.clearSize();
        return this;
      }

      /**
       * <pre>
       * Whether the text should be rendered in a italic typeface. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
       */
      @java.lang.Override
      public boolean hasItalic() {
        return instance.hasItalic();
      }
      /**
       * <pre>
       * Whether the text should be rendered in a italic typeface. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.BoolProp getItalic() {
        return instance.getItalic();
      }
      /**
       * <pre>
       * Whether the text should be rendered in a italic typeface. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
       */
      public Builder setItalic(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.setItalic(value);
        return this;
        }
      /**
       * <pre>
       * Whether the text should be rendered in a italic typeface. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
       */
      public Builder setItalic(
          androidx.wear.protolayout.proto.TypesProto.BoolProp.Builder builderForValue) {
        copyOnWrite();
        instance.setItalic(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Whether the text should be rendered in a italic typeface. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
       */
      public Builder mergeItalic(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.mergeItalic(value);
        return this;
      }
      /**
       * <pre>
       * Whether the text should be rendered in a italic typeface. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp italic = 2;</code>
       */
      public Builder clearItalic() {  copyOnWrite();
        instance.clearItalic();
        return this;
      }

      /**
       * <pre>
       * Whether the text should be rendered with an underline. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
       */
      @java.lang.Override
      public boolean hasUnderline() {
        return instance.hasUnderline();
      }
      /**
       * <pre>
       * Whether the text should be rendered with an underline. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.BoolProp getUnderline() {
        return instance.getUnderline();
      }
      /**
       * <pre>
       * Whether the text should be rendered with an underline. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
       */
      public Builder setUnderline(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.setUnderline(value);
        return this;
        }
      /**
       * <pre>
       * Whether the text should be rendered with an underline. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
       */
      public Builder setUnderline(
          androidx.wear.protolayout.proto.TypesProto.BoolProp.Builder builderForValue) {
        copyOnWrite();
        instance.setUnderline(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Whether the text should be rendered with an underline. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
       */
      public Builder mergeUnderline(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.mergeUnderline(value);
        return this;
      }
      /**
       * <pre>
       * Whether the text should be rendered with an underline. If not specified,
       * defaults to "false".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp underline = 3;</code>
       */
      public Builder clearUnderline() {  copyOnWrite();
        instance.clearUnderline();
        return this;
      }

      /**
       * <pre>
       * The text color. If not defined, defaults to white.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
       */
      @java.lang.Override
      public boolean hasColor() {
        return instance.hasColor();
      }
      /**
       * <pre>
       * The text color. If not defined, defaults to white.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
        return instance.getColor();
      }
      /**
       * <pre>
       * The text color. If not defined, defaults to white.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
       */
      public Builder setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.setColor(value);
        return this;
        }
      /**
       * <pre>
       * The text color. If not defined, defaults to white.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
       */
      public Builder setColor(
          androidx.wear.protolayout.proto.ColorProto.ColorProp.Builder builderForValue) {
        copyOnWrite();
        instance.setColor(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The text color. If not defined, defaults to white.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
       */
      public Builder mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.mergeColor(value);
        return this;
      }
      /**
       * <pre>
       * The text color. If not defined, defaults to white.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 4;</code>
       */
      public Builder clearColor() {  copyOnWrite();
        instance.clearColor();
        return this;
      }

      /**
       * <pre>
       * The weight of the font. If the provided value is not supported on a
       * platform, the nearest supported value will be used. If not defined, or
       * when set to an invalid value, defaults to "normal".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
       */
      @java.lang.Override
      public boolean hasWeight() {
        return instance.hasWeight();
      }
      /**
       * <pre>
       * The weight of the font. If the provided value is not supported on a
       * platform, the nearest supported value will be used. If not defined, or
       * when set to an invalid value, defaults to "normal".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp getWeight() {
        return instance.getWeight();
      }
      /**
       * <pre>
       * The weight of the font. If the provided value is not supported on a
       * platform, the nearest supported value will be used. If not defined, or
       * when set to an invalid value, defaults to "normal".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
       */
      public Builder setWeight(androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp value) {
        copyOnWrite();
        instance.setWeight(value);
        return this;
        }
      /**
       * <pre>
       * The weight of the font. If the provided value is not supported on a
       * platform, the nearest supported value will be used. If not defined, or
       * when set to an invalid value, defaults to "normal".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
       */
      public Builder setWeight(
          androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp.Builder builderForValue) {
        copyOnWrite();
        instance.setWeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The weight of the font. If the provided value is not supported on a
       * platform, the nearest supported value will be used. If not defined, or
       * when set to an invalid value, defaults to "normal".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
       */
      public Builder mergeWeight(androidx.wear.protolayout.proto.LayoutElementProto.FontWeightProp value) {
        copyOnWrite();
        instance.mergeWeight(value);
        return this;
      }
      /**
       * <pre>
       * The weight of the font. If the provided value is not supported on a
       * platform, the nearest supported value will be used. If not defined, or
       * when set to an invalid value, defaults to "normal".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontWeightProp weight = 5;</code>
       */
      public Builder clearWeight() {  copyOnWrite();
        instance.clearWeight();
        return this;
      }

      /**
       * <pre>
       * The text letter-spacing. Positive numbers increase the space between
       * letters while negative numbers tighten the space. If not specified,
       * defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
       */
      @java.lang.Override
      public boolean hasLetterSpacing() {
        return instance.hasLetterSpacing();
      }
      /**
       * <pre>
       * The text letter-spacing. Positive numbers increase the space between
       * letters while negative numbers tighten the space. If not specified,
       * defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.EmProp getLetterSpacing() {
        return instance.getLetterSpacing();
      }
      /**
       * <pre>
       * The text letter-spacing. Positive numbers increase the space between
       * letters while negative numbers tighten the space. If not specified,
       * defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
       */
      public Builder setLetterSpacing(androidx.wear.protolayout.proto.DimensionProto.EmProp value) {
        copyOnWrite();
        instance.setLetterSpacing(value);
        return this;
        }
      /**
       * <pre>
       * The text letter-spacing. Positive numbers increase the space between
       * letters while negative numbers tighten the space. If not specified,
       * defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
       */
      public Builder setLetterSpacing(
          androidx.wear.protolayout.proto.DimensionProto.EmProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLetterSpacing(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The text letter-spacing. Positive numbers increase the space between
       * letters while negative numbers tighten the space. If not specified,
       * defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
       */
      public Builder mergeLetterSpacing(androidx.wear.protolayout.proto.DimensionProto.EmProp value) {
        copyOnWrite();
        instance.mergeLetterSpacing(value);
        return this;
      }
      /**
       * <pre>
       * The text letter-spacing. Positive numbers increase the space between
       * letters while negative numbers tighten the space. If not specified,
       * defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.EmProp letter_spacing = 6;</code>
       */
      public Builder clearLetterSpacing() {  copyOnWrite();
        instance.clearLetterSpacing();
        return this;
      }

      /**
       * <pre>
       * The variant of a font. Some renderers may use different fonts for title and
       * body text, which can be selected using this field. If not specified,
       * defaults to "body".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
       */
      @java.lang.Override
      public boolean hasVariant() {
        return instance.hasVariant();
      }
      /**
       * <pre>
       * The variant of a font. Some renderers may use different fonts for title and
       * body text, which can be selected using this field. If not specified,
       * defaults to "body".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp getVariant() {
        return instance.getVariant();
      }
      /**
       * <pre>
       * The variant of a font. Some renderers may use different fonts for title and
       * body text, which can be selected using this field. If not specified,
       * defaults to "body".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
       */
      public Builder setVariant(androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp value) {
        copyOnWrite();
        instance.setVariant(value);
        return this;
        }
      /**
       * <pre>
       * The variant of a font. Some renderers may use different fonts for title and
       * body text, which can be selected using this field. If not specified,
       * defaults to "body".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
       */
      public Builder setVariant(
          androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp.Builder builderForValue) {
        copyOnWrite();
        instance.setVariant(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The variant of a font. Some renderers may use different fonts for title and
       * body text, which can be selected using this field. If not specified,
       * defaults to "body".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
       */
      public Builder mergeVariant(androidx.wear.protolayout.proto.LayoutElementProto.FontVariantProp value) {
        copyOnWrite();
        instance.mergeVariant(value);
        return this;
      }
      /**
       * <pre>
       * The variant of a font. Some renderers may use different fonts for title and
       * body text, which can be selected using this field. If not specified,
       * defaults to "body".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontVariantProp variant = 7;</code>
       */
      public Builder clearVariant() {  copyOnWrite();
        instance.clearVariant();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.FontStyle)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.FontStyle();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "size_",
              "italic_",
              "underline_",
              "color_",
              "weight_",
              "letterSpacing_",
              "variant_",
            };
            java.lang.String info =
                "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t\u0005\t\u0006\t\u0007\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.FontStyle> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.FontStyle>(
                        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:androidx.wear.protolayout.proto.FontStyle)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.FontStyle DEFAULT_INSTANCE;
    static {
      FontStyle defaultInstance = new FontStyle();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        FontStyle.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface TextOverflowPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.TextOverflowProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    int getValueValue();
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
     * @return The value.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow getValue();
  }
  /**
   * <pre>
   * An extensible TextOverflow property.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.TextOverflowProp}
   */
  public  static final class TextOverflowProp extends
      com.google.protobuf.GeneratedMessageLite<
          TextOverflowProp, TextOverflowProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.TextOverflowProp)
      TextOverflowPropOrBuilder {
    private TextOverflowProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    @java.lang.Override
    public int getValueValue() {
      return value_;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow getValue() {
      androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow result = androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow.forNumber(value_);
      return result == null ? androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
     * @param value The enum numeric value on the wire for value to set.
     */
    private void setValueValue(int value) {
        value_ = value;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow value) {
      value_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
     */
    private void clearValue() {
      
      value_ = 0;
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp 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 androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp 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 androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp 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 androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp 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 androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp 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(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An extensible TextOverflow property.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.TextOverflowProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.TextOverflowProp)
        androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
       * @return The enum numeric value on the wire for value.
       */
      @java.lang.Override
      public int getValueValue() {
        return instance.getValueValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValueValue(int value) {
        copyOnWrite();
        instance.setValueValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
       * @param value The enum numeric value on the wire for value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflow value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflow value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.TextOverflowProp)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp>(
                        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:androidx.wear.protolayout.proto.TextOverflowProp)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp DEFAULT_INSTANCE;
    static {
      TextOverflowProp defaultInstance = new TextOverflowProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        TextOverflowProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface AndroidTextStyleOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.AndroidTextStyle)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Whether the Text excludes extra top and bottom padding above the normal
     * ascent and descent. The default is false.
     * </pre>
     *
     * <code>bool exclude_font_padding = 1;</code>
     * @return The excludeFontPadding.
     */
    boolean getExcludeFontPadding();
  }
  /**
   * <pre>
   * An Android platform specific text style configuration options for styling and
   * compatibility.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.AndroidTextStyle}
   */
  public  static final class AndroidTextStyle extends
      com.google.protobuf.GeneratedMessageLite<
          AndroidTextStyle, AndroidTextStyle.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.AndroidTextStyle)
      AndroidTextStyleOrBuilder {
    private AndroidTextStyle() {
    }
    public static final int EXCLUDE_FONT_PADDING_FIELD_NUMBER = 1;
    private boolean excludeFontPadding_;
    /**
     * <pre>
     * Whether the Text excludes extra top and bottom padding above the normal
     * ascent and descent. The default is false.
     * </pre>
     *
     * <code>bool exclude_font_padding = 1;</code>
     * @return The excludeFontPadding.
     */
    @java.lang.Override
    public boolean getExcludeFontPadding() {
      return excludeFontPadding_;
    }
    /**
     * <pre>
     * Whether the Text excludes extra top and bottom padding above the normal
     * ascent and descent. The default is false.
     * </pre>
     *
     * <code>bool exclude_font_padding = 1;</code>
     * @param value The excludeFontPadding to set.
     */
    private void setExcludeFontPadding(boolean value) {
      
      excludeFontPadding_ = value;
    }
    /**
     * <pre>
     * Whether the Text excludes extra top and bottom padding above the normal
     * ascent and descent. The default is false.
     * </pre>
     *
     * <code>bool exclude_font_padding = 1;</code>
     */
    private void clearExcludeFontPadding() {
      
      excludeFontPadding_ = false;
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle 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 androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle 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(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An Android platform specific text style configuration options for styling and
     * compatibility.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.AndroidTextStyle}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.AndroidTextStyle)
        androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyleOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Whether the Text excludes extra top and bottom padding above the normal
       * ascent and descent. The default is false.
       * </pre>
       *
       * <code>bool exclude_font_padding = 1;</code>
       * @return The excludeFontPadding.
       */
      @java.lang.Override
      public boolean getExcludeFontPadding() {
        return instance.getExcludeFontPadding();
      }
      /**
       * <pre>
       * Whether the Text excludes extra top and bottom padding above the normal
       * ascent and descent. The default is false.
       * </pre>
       *
       * <code>bool exclude_font_padding = 1;</code>
       * @param value The excludeFontPadding to set.
       * @return This builder for chaining.
       */
      public Builder setExcludeFontPadding(boolean value) {
        copyOnWrite();
        instance.setExcludeFontPadding(value);
        return this;
      }
      /**
       * <pre>
       * Whether the Text excludes extra top and bottom padding above the normal
       * ascent and descent. The default is false.
       * </pre>
       *
       * <code>bool exclude_font_padding = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearExcludeFontPadding() {
        copyOnWrite();
        instance.clearExcludeFontPadding();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.AndroidTextStyle)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "excludeFontPadding_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0007";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle>(
                        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:androidx.wear.protolayout.proto.AndroidTextStyle)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle DEFAULT_INSTANCE;
    static {
      AndroidTextStyle defaultInstance = new AndroidTextStyle();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AndroidTextStyle.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface TextOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Text)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     * @return Whether the text field is set.
     */
    boolean hasText();
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     * @return The text.
     */
    androidx.wear.protolayout.proto.TypesProto.StringProp getText();

    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     * @return Whether the fontStyle field is set.
     */
    boolean hasFontStyle();
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     * @return The fontStyle.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();

    /**
     * <pre>
     * The maximum number of lines that can be represented by the Text element.
     * If not defined, the Text element will be treated as a single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
     * @return Whether the maxLines field is set.
     */
    boolean hasMaxLines();
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Text element.
     * If not defined, the Text element will be treated as a single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
     * @return The maxLines.
     */
    androidx.wear.protolayout.proto.TypesProto.Int32Prop getMaxLines();

    /**
     * <pre>
     * Alignment of the text within its bounds. Note that a Text element will size
     * itself to wrap its contents, so this option is meaningless for single-line
     * text (for that, use alignment of the outer container). For multi-line text,
     * however, this will set the alignment of lines relative to the Text element
     * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
     * @return Whether the multilineAlignment field is set.
     */
    boolean hasMultilineAlignment();
    /**
     * <pre>
     * Alignment of the text within its bounds. Note that a Text element will size
     * itself to wrap its contents, so this option is meaningless for single-line
     * text (for that, use alignment of the outer container). For multi-line text,
     * however, this will set the alignment of lines relative to the Text element
     * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
     * @return The multilineAlignment.
     */
    androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp getMultilineAlignment();

    /**
     * <pre>
     * How to handle text which overflows the bound of the Text element.
     * A Text element will grow as large as possible inside its parent container
     * (while still respecting max_lines); if it cannot grow large  enough to
     * render all of its text, the text which cannot fit inside its container will
     * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
     * @return Whether the overflow field is set.
     */
    boolean hasOverflow();
    /**
     * <pre>
     * How to handle text which overflows the bound of the Text element.
     * A Text element will grow as large as possible inside its parent container
     * (while still respecting max_lines); if it cannot grow large  enough to
     * render all of its text, the text which cannot fit inside its container will
     * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
     * @return The overflow.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp getOverflow();

    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     * @return Whether the lineHeight field is set.
     */
    boolean hasLineHeight();
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     * @return The lineHeight.
     */
    androidx.wear.protolayout.proto.DimensionProto.SpProp getLineHeight();

    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
     * @return Whether the androidTextStyle field is set.
     */
    boolean hasAndroidTextStyle();
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
     * @return The androidTextStyle.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle getAndroidTextStyle();
  }
  /**
   * <pre>
   * A text string.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Text}
   */
  public  static final class Text extends
      com.google.protobuf.GeneratedMessageLite<
          Text, Text.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Text)
      TextOrBuilder {
    private Text() {
    }
    public static final int TEXT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.StringProp text_;
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.Override
    public boolean hasText() {
      return text_ != null;
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.StringProp getText() {
      return text_ == null ? androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance() : text_;
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    private void setText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  text_ = value;
      
      }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  if (text_ != null &&
          text_ != androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance()) {
        text_ =
          androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder(text_).mergeFrom(value).buildPartial();
      } else {
        text_ = value;
      }
      
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    private void clearText() {  text_ = null;
      
    }

    public static final int FONT_STYLE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.LayoutElementProto.FontStyle fontStyle_;
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.Override
    public boolean hasFontStyle() {
      return fontStyle_ != null;
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle() {
      return fontStyle_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.getDefaultInstance() : fontStyle_;
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    private void setFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
      value.getClass();
  fontStyle_ = value;
      
      }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
      value.getClass();
  if (fontStyle_ != null &&
          fontStyle_ != androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.getDefaultInstance()) {
        fontStyle_ =
          androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.newBuilder(fontStyle_).mergeFrom(value).buildPartial();
      } else {
        fontStyle_ = value;
      }
      
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    private void clearFontStyle() {  fontStyle_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int MAX_LINES_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.TypesProto.Int32Prop maxLines_;
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Text element.
     * If not defined, the Text element will be treated as a single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
     */
    @java.lang.Override
    public boolean hasMaxLines() {
      return maxLines_ != null;
    }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Text element.
     * If not defined, the Text element will be treated as a single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.Int32Prop getMaxLines() {
      return maxLines_ == null ? androidx.wear.protolayout.proto.TypesProto.Int32Prop.getDefaultInstance() : maxLines_;
    }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Text element.
     * If not defined, the Text element will be treated as a single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
     */
    private void setMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
      value.getClass();
  maxLines_ = value;
      
      }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Text element.
     * If not defined, the Text element will be treated as a single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
      value.getClass();
  if (maxLines_ != null &&
          maxLines_ != androidx.wear.protolayout.proto.TypesProto.Int32Prop.getDefaultInstance()) {
        maxLines_ =
          androidx.wear.protolayout.proto.TypesProto.Int32Prop.newBuilder(maxLines_).mergeFrom(value).buildPartial();
      } else {
        maxLines_ = value;
      }
      
    }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Text element.
     * If not defined, the Text element will be treated as a single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
     */
    private void clearMaxLines() {  maxLines_ = null;
      
    }

    public static final int MULTILINE_ALIGNMENT_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp multilineAlignment_;
    /**
     * <pre>
     * Alignment of the text within its bounds. Note that a Text element will size
     * itself to wrap its contents, so this option is meaningless for single-line
     * text (for that, use alignment of the outer container). For multi-line text,
     * however, this will set the alignment of lines relative to the Text element
     * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
     */
    @java.lang.Override
    public boolean hasMultilineAlignment() {
      return multilineAlignment_ != null;
    }
    /**
     * <pre>
     * Alignment of the text within its bounds. Note that a Text element will size
     * itself to wrap its contents, so this option is meaningless for single-line
     * text (for that, use alignment of the outer container). For multi-line text,
     * however, this will set the alignment of lines relative to the Text element
     * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp getMultilineAlignment() {
      return multilineAlignment_ == null ? androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp.getDefaultInstance() : multilineAlignment_;
    }
    /**
     * <pre>
     * Alignment of the text within its bounds. Note that a Text element will size
     * itself to wrap its contents, so this option is meaningless for single-line
     * text (for that, use alignment of the outer container). For multi-line text,
     * however, this will set the alignment of lines relative to the Text element
     * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
     */
    private void setMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp value) {
      value.getClass();
  multilineAlignment_ = value;
      
      }
    /**
     * <pre>
     * Alignment of the text within its bounds. Note that a Text element will size
     * itself to wrap its contents, so this option is meaningless for single-line
     * text (for that, use alignment of the outer container). For multi-line text,
     * however, this will set the alignment of lines relative to the Text element
     * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp value) {
      value.getClass();
  if (multilineAlignment_ != null &&
          multilineAlignment_ != androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp.getDefaultInstance()) {
        multilineAlignment_ =
          androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp.newBuilder(multilineAlignment_).mergeFrom(value).buildPartial();
      } else {
        multilineAlignment_ = value;
      }
      
    }
    /**
     * <pre>
     * Alignment of the text within its bounds. Note that a Text element will size
     * itself to wrap its contents, so this option is meaningless for single-line
     * text (for that, use alignment of the outer container). For multi-line text,
     * however, this will set the alignment of lines relative to the Text element
     * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
     */
    private void clearMultilineAlignment() {  multilineAlignment_ = null;
      
    }

    public static final int OVERFLOW_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp overflow_;
    /**
     * <pre>
     * How to handle text which overflows the bound of the Text element.
     * A Text element will grow as large as possible inside its parent container
     * (while still respecting max_lines); if it cannot grow large  enough to
     * render all of its text, the text which cannot fit inside its container will
     * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
     */
    @java.lang.Override
    public boolean hasOverflow() {
      return overflow_ != null;
    }
    /**
     * <pre>
     * How to handle text which overflows the bound of the Text element.
     * A Text element will grow as large as possible inside its parent container
     * (while still respecting max_lines); if it cannot grow large  enough to
     * render all of its text, the text which cannot fit inside its container will
     * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp getOverflow() {
      return overflow_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.getDefaultInstance() : overflow_;
    }
    /**
     * <pre>
     * How to handle text which overflows the bound of the Text element.
     * A Text element will grow as large as possible inside its parent container
     * (while still respecting max_lines); if it cannot grow large  enough to
     * render all of its text, the text which cannot fit inside its container will
     * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
     */
    private void setOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
      value.getClass();
  overflow_ = value;
      
      }
    /**
     * <pre>
     * How to handle text which overflows the bound of the Text element.
     * A Text element will grow as large as possible inside its parent container
     * (while still respecting max_lines); if it cannot grow large  enough to
     * render all of its text, the text which cannot fit inside its container will
     * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
      value.getClass();
  if (overflow_ != null &&
          overflow_ != androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.getDefaultInstance()) {
        overflow_ =
          androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.newBuilder(overflow_).mergeFrom(value).buildPartial();
      } else {
        overflow_ = value;
      }
      
    }
    /**
     * <pre>
     * How to handle text which overflows the bound of the Text element.
     * A Text element will grow as large as possible inside its parent container
     * (while still respecting max_lines); if it cannot grow large  enough to
     * render all of its text, the text which cannot fit inside its container will
     * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
     */
    private void clearOverflow() {  overflow_ = null;
      
    }

    public static final int LINE_HEIGHT_FIELD_NUMBER = 7;
    private androidx.wear.protolayout.proto.DimensionProto.SpProp lineHeight_;
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    @java.lang.Override
    public boolean hasLineHeight() {
      return lineHeight_ != null;
    }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.SpProp getLineHeight() {
      return lineHeight_ == null ? androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance() : lineHeight_;
    }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    private void setLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  lineHeight_ = value;
      
      }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  if (lineHeight_ != null &&
          lineHeight_ != androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance()) {
        lineHeight_ =
          androidx.wear.protolayout.proto.DimensionProto.SpProp.newBuilder(lineHeight_).mergeFrom(value).buildPartial();
      } else {
        lineHeight_ = value;
      }
      
    }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    private void clearLineHeight() {  lineHeight_ = null;
      
    }

    public static final int ANDROID_TEXT_STYLE_FIELD_NUMBER = 8;
    private androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle androidTextStyle_;
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
     */
    @java.lang.Override
    public boolean hasAndroidTextStyle() {
      return androidTextStyle_ != null;
    }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle getAndroidTextStyle() {
      return androidTextStyle_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.getDefaultInstance() : androidTextStyle_;
    }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
     */
    private void setAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
      value.getClass();
  androidTextStyle_ = value;
      
      }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
      value.getClass();
  if (androidTextStyle_ != null &&
          androidTextStyle_ != androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.getDefaultInstance()) {
        androidTextStyle_ =
          androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.newBuilder(androidTextStyle_).mergeFrom(value).buildPartial();
      } else {
        androidTextStyle_ = value;
      }
      
    }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
     */
    private void clearAndroidTextStyle() {  androidTextStyle_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Text parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Text 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 androidx.wear.protolayout.proto.LayoutElementProto.Text parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Text 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 androidx.wear.protolayout.proto.LayoutElementProto.Text parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Text 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 androidx.wear.protolayout.proto.LayoutElementProto.Text parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Text 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 androidx.wear.protolayout.proto.LayoutElementProto.Text parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Text parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Text parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Text 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(androidx.wear.protolayout.proto.LayoutElementProto.Text prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A text string.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Text}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Text, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Text)
        androidx.wear.protolayout.proto.LayoutElementProto.TextOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Text.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      @java.lang.Override
      public boolean hasText() {
        return instance.hasText();
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.StringProp getText() {
        return instance.getText();
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder setText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.setText(value);
        return this;
        }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder setText(
          androidx.wear.protolayout.proto.TypesProto.StringProp.Builder builderForValue) {
        copyOnWrite();
        instance.setText(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder mergeText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.mergeText(value);
        return this;
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder clearText() {  copyOnWrite();
        instance.clearText();
        return this;
      }

      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      @java.lang.Override
      public boolean hasFontStyle() {
        return instance.hasFontStyle();
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle() {
        return instance.getFontStyle();
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder setFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
        copyOnWrite();
        instance.setFontStyle(value);
        return this;
        }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder setFontStyle(
          androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.Builder builderForValue) {
        copyOnWrite();
        instance.setFontStyle(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder mergeFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
        copyOnWrite();
        instance.mergeFontStyle(value);
        return this;
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder clearFontStyle() {  copyOnWrite();
        instance.clearFontStyle();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * The maximum number of lines that can be represented by the Text element.
       * If not defined, the Text element will be treated as a single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
       */
      @java.lang.Override
      public boolean hasMaxLines() {
        return instance.hasMaxLines();
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Text element.
       * If not defined, the Text element will be treated as a single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.Int32Prop getMaxLines() {
        return instance.getMaxLines();
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Text element.
       * If not defined, the Text element will be treated as a single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
       */
      public Builder setMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
        copyOnWrite();
        instance.setMaxLines(value);
        return this;
        }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Text element.
       * If not defined, the Text element will be treated as a single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
       */
      public Builder setMaxLines(
          androidx.wear.protolayout.proto.TypesProto.Int32Prop.Builder builderForValue) {
        copyOnWrite();
        instance.setMaxLines(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Text element.
       * If not defined, the Text element will be treated as a single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
       */
      public Builder mergeMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
        copyOnWrite();
        instance.mergeMaxLines(value);
        return this;
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Text element.
       * If not defined, the Text element will be treated as a single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 4;</code>
       */
      public Builder clearMaxLines() {  copyOnWrite();
        instance.clearMaxLines();
        return this;
      }

      /**
       * <pre>
       * Alignment of the text within its bounds. Note that a Text element will size
       * itself to wrap its contents, so this option is meaningless for single-line
       * text (for that, use alignment of the outer container). For multi-line text,
       * however, this will set the alignment of lines relative to the Text element
       * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
       */
      @java.lang.Override
      public boolean hasMultilineAlignment() {
        return instance.hasMultilineAlignment();
      }
      /**
       * <pre>
       * Alignment of the text within its bounds. Note that a Text element will size
       * itself to wrap its contents, so this option is meaningless for single-line
       * text (for that, use alignment of the outer container). For multi-line text,
       * however, this will set the alignment of lines relative to the Text element
       * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp getMultilineAlignment() {
        return instance.getMultilineAlignment();
      }
      /**
       * <pre>
       * Alignment of the text within its bounds. Note that a Text element will size
       * itself to wrap its contents, so this option is meaningless for single-line
       * text (for that, use alignment of the outer container). For multi-line text,
       * however, this will set the alignment of lines relative to the Text element
       * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
       */
      public Builder setMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp value) {
        copyOnWrite();
        instance.setMultilineAlignment(value);
        return this;
        }
      /**
       * <pre>
       * Alignment of the text within its bounds. Note that a Text element will size
       * itself to wrap its contents, so this option is meaningless for single-line
       * text (for that, use alignment of the outer container). For multi-line text,
       * however, this will set the alignment of lines relative to the Text element
       * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
       */
      public Builder setMultilineAlignment(
          androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setMultilineAlignment(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Alignment of the text within its bounds. Note that a Text element will size
       * itself to wrap its contents, so this option is meaningless for single-line
       * text (for that, use alignment of the outer container). For multi-line text,
       * however, this will set the alignment of lines relative to the Text element
       * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
       */
      public Builder mergeMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.TextAlignmentProp value) {
        copyOnWrite();
        instance.mergeMultilineAlignment(value);
        return this;
      }
      /**
       * <pre>
       * Alignment of the text within its bounds. Note that a Text element will size
       * itself to wrap its contents, so this option is meaningless for single-line
       * text (for that, use alignment of the outer container). For multi-line text,
       * however, this will set the alignment of lines relative to the Text element
       * bounds. If not defined, defaults to TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextAlignmentProp multiline_alignment = 5;</code>
       */
      public Builder clearMultilineAlignment() {  copyOnWrite();
        instance.clearMultilineAlignment();
        return this;
      }

      /**
       * <pre>
       * How to handle text which overflows the bound of the Text element.
       * A Text element will grow as large as possible inside its parent container
       * (while still respecting max_lines); if it cannot grow large  enough to
       * render all of its text, the text which cannot fit inside its container will
       * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
       */
      @java.lang.Override
      public boolean hasOverflow() {
        return instance.hasOverflow();
      }
      /**
       * <pre>
       * How to handle text which overflows the bound of the Text element.
       * A Text element will grow as large as possible inside its parent container
       * (while still respecting max_lines); if it cannot grow large  enough to
       * render all of its text, the text which cannot fit inside its container will
       * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp getOverflow() {
        return instance.getOverflow();
      }
      /**
       * <pre>
       * How to handle text which overflows the bound of the Text element.
       * A Text element will grow as large as possible inside its parent container
       * (while still respecting max_lines); if it cannot grow large  enough to
       * render all of its text, the text which cannot fit inside its container will
       * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
       */
      public Builder setOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
        copyOnWrite();
        instance.setOverflow(value);
        return this;
        }
      /**
       * <pre>
       * How to handle text which overflows the bound of the Text element.
       * A Text element will grow as large as possible inside its parent container
       * (while still respecting max_lines); if it cannot grow large  enough to
       * render all of its text, the text which cannot fit inside its container will
       * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
       */
      public Builder setOverflow(
          androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.Builder builderForValue) {
        copyOnWrite();
        instance.setOverflow(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * How to handle text which overflows the bound of the Text element.
       * A Text element will grow as large as possible inside its parent container
       * (while still respecting max_lines); if it cannot grow large  enough to
       * render all of its text, the text which cannot fit inside its container will
       * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
       */
      public Builder mergeOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
        copyOnWrite();
        instance.mergeOverflow(value);
        return this;
      }
      /**
       * <pre>
       * How to handle text which overflows the bound of the Text element.
       * A Text element will grow as large as possible inside its parent container
       * (while still respecting max_lines); if it cannot grow large  enough to
       * render all of its text, the text which cannot fit inside its container will
       * be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 6;</code>
       */
      public Builder clearOverflow() {  copyOnWrite();
        instance.clearOverflow();
        return this;
      }

      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      @java.lang.Override
      public boolean hasLineHeight() {
        return instance.hasLineHeight();
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.SpProp getLineHeight() {
        return instance.getLineHeight();
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder setLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.setLineHeight(value);
        return this;
        }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder setLineHeight(
          androidx.wear.protolayout.proto.DimensionProto.SpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLineHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder mergeLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.mergeLineHeight(value);
        return this;
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder clearLineHeight() {  copyOnWrite();
        instance.clearLineHeight();
        return this;
      }

      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
       */
      @java.lang.Override
      public boolean hasAndroidTextStyle() {
        return instance.hasAndroidTextStyle();
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle getAndroidTextStyle() {
        return instance.getAndroidTextStyle();
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
       */
      public Builder setAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
        copyOnWrite();
        instance.setAndroidTextStyle(value);
        return this;
        }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
       */
      public Builder setAndroidTextStyle(
          androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.Builder builderForValue) {
        copyOnWrite();
        instance.setAndroidTextStyle(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
       */
      public Builder mergeAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
        copyOnWrite();
        instance.mergeAndroidTextStyle(value);
        return this;
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 8;</code>
       */
      public Builder clearAndroidTextStyle() {  copyOnWrite();
        instance.clearAndroidTextStyle();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Text)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Text();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "text_",
              "fontStyle_",
              "modifiers_",
              "maxLines_",
              "multilineAlignment_",
              "overflow_",
              "lineHeight_",
              "androidTextStyle_",
            };
            java.lang.String info =
                "\u0000\b\u0000\u0000\u0001\b\b\u0000\u0000\u0000\u0001\t\u0002\t\u0003\t\u0004\t" +
                "\u0005\t\u0006\t\u0007\t\b\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Text> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Text.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Text>(
                        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:androidx.wear.protolayout.proto.Text)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Text DEFAULT_INSTANCE;
    static {
      Text defaultInstance = new Text();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Text.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Text getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ContentScaleModePropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ContentScaleModeProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    int getValueValue();
    /**
     * <pre>
     * The value
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
     * @return The value.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode getValue();
  }
  /**
   * <pre>
   * An extensible ContentScaleMode property.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ContentScaleModeProp}
   */
  public  static final class ContentScaleModeProp extends
      com.google.protobuf.GeneratedMessageLite<
          ContentScaleModeProp, ContentScaleModeProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ContentScaleModeProp)
      ContentScaleModePropOrBuilder {
    private ContentScaleModeProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <pre>
     * The value
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    @java.lang.Override
    public int getValueValue() {
      return value_;
    }
    /**
     * <pre>
     * The value
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode getValue() {
      androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode result = androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode.forNumber(value_);
      return result == null ? androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The value
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
     * @param value The enum numeric value on the wire for value to set.
     */
    private void setValueValue(int value) {
        value_ = value;
    }
    /**
     * <pre>
     * The value
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode value) {
      value_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The value
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
     */
    private void clearValue() {
      
      value_ = 0;
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp 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 androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp 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 androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp 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 androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp 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 androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp 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(androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An extensible ContentScaleMode property.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ContentScaleModeProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ContentScaleModeProp)
        androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModePropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
       * @return The enum numeric value on the wire for value.
       */
      @java.lang.Override
      public int getValueValue() {
        return instance.getValueValue();
      }
      /**
       * <pre>
       * The value
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValueValue(int value) {
        copyOnWrite();
        instance.setValueValue(value);
        return this;
      }
      /**
       * <pre>
       * The value
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
       * @param value The enum numeric value on the wire for value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleMode value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleMode value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ContentScaleModeProp)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp>(
                        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:androidx.wear.protolayout.proto.ContentScaleModeProp)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp DEFAULT_INSTANCE;
    static {
      ContentScaleModeProp defaultInstance = new ContentScaleModeProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ContentScaleModeProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ColorFilterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ColorFilter)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The tint color to use. If specified, the image will be tinted, using
     * SRC_IN blending (that is, all color information will be stripped from the
     * target image, and only the alpha channel will be blended with the requested
     * color).
     * Note that only Android image resources can be tinted; Inline images will
     * not be tinted, and this property will have no effect.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
     * @return Whether the tint field is set.
     */
    boolean hasTint();
    /**
     * <pre>
     * The tint color to use. If specified, the image will be tinted, using
     * SRC_IN blending (that is, all color information will be stripped from the
     * target image, and only the alpha channel will be blended with the requested
     * color).
     * Note that only Android image resources can be tinted; Inline images will
     * not be tinted, and this property will have no effect.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
     * @return The tint.
     */
    androidx.wear.protolayout.proto.ColorProto.ColorProp getTint();
  }
  /**
   * <pre>
   * Filtering parameters used for images. This can be used to apply a color tint
   * to images.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ColorFilter}
   */
  public  static final class ColorFilter extends
      com.google.protobuf.GeneratedMessageLite<
          ColorFilter, ColorFilter.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ColorFilter)
      ColorFilterOrBuilder {
    private ColorFilter() {
    }
    public static final int TINT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.ColorProto.ColorProp tint_;
    /**
     * <pre>
     * The tint color to use. If specified, the image will be tinted, using
     * SRC_IN blending (that is, all color information will be stripped from the
     * target image, and only the alpha channel will be blended with the requested
     * color).
     * Note that only Android image resources can be tinted; Inline images will
     * not be tinted, and this property will have no effect.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
     */
    @java.lang.Override
    public boolean hasTint() {
      return tint_ != null;
    }
    /**
     * <pre>
     * The tint color to use. If specified, the image will be tinted, using
     * SRC_IN blending (that is, all color information will be stripped from the
     * target image, and only the alpha channel will be blended with the requested
     * color).
     * Note that only Android image resources can be tinted; Inline images will
     * not be tinted, and this property will have no effect.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ColorProto.ColorProp getTint() {
      return tint_ == null ? androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance() : tint_;
    }
    /**
     * <pre>
     * The tint color to use. If specified, the image will be tinted, using
     * SRC_IN blending (that is, all color information will be stripped from the
     * target image, and only the alpha channel will be blended with the requested
     * color).
     * Note that only Android image resources can be tinted; Inline images will
     * not be tinted, and this property will have no effect.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
     */
    private void setTint(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  tint_ = value;
      
      }
    /**
     * <pre>
     * The tint color to use. If specified, the image will be tinted, using
     * SRC_IN blending (that is, all color information will be stripped from the
     * target image, and only the alpha channel will be blended with the requested
     * color).
     * Note that only Android image resources can be tinted; Inline images will
     * not be tinted, and this property will have no effect.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTint(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  if (tint_ != null &&
          tint_ != androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance()) {
        tint_ =
          androidx.wear.protolayout.proto.ColorProto.ColorProp.newBuilder(tint_).mergeFrom(value).buildPartial();
      } else {
        tint_ = value;
      }
      
    }
    /**
     * <pre>
     * The tint color to use. If specified, the image will be tinted, using
     * SRC_IN blending (that is, all color information will be stripped from the
     * target image, and only the alpha channel will be blended with the requested
     * color).
     * Note that only Android image resources can be tinted; Inline images will
     * not be tinted, and this property will have no effect.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
     */
    private void clearTint() {  tint_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter 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 androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter 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 androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter 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 androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter 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 androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter 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(androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Filtering parameters used for images. This can be used to apply a color tint
     * to images.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ColorFilter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ColorFilter)
        androidx.wear.protolayout.proto.LayoutElementProto.ColorFilterOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The tint color to use. If specified, the image will be tinted, using
       * SRC_IN blending (that is, all color information will be stripped from the
       * target image, and only the alpha channel will be blended with the requested
       * color).
       * Note that only Android image resources can be tinted; Inline images will
       * not be tinted, and this property will have no effect.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
       */
      @java.lang.Override
      public boolean hasTint() {
        return instance.hasTint();
      }
      /**
       * <pre>
       * The tint color to use. If specified, the image will be tinted, using
       * SRC_IN blending (that is, all color information will be stripped from the
       * target image, and only the alpha channel will be blended with the requested
       * color).
       * Note that only Android image resources can be tinted; Inline images will
       * not be tinted, and this property will have no effect.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ColorProto.ColorProp getTint() {
        return instance.getTint();
      }
      /**
       * <pre>
       * The tint color to use. If specified, the image will be tinted, using
       * SRC_IN blending (that is, all color information will be stripped from the
       * target image, and only the alpha channel will be blended with the requested
       * color).
       * Note that only Android image resources can be tinted; Inline images will
       * not be tinted, and this property will have no effect.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
       */
      public Builder setTint(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.setTint(value);
        return this;
        }
      /**
       * <pre>
       * The tint color to use. If specified, the image will be tinted, using
       * SRC_IN blending (that is, all color information will be stripped from the
       * target image, and only the alpha channel will be blended with the requested
       * color).
       * Note that only Android image resources can be tinted; Inline images will
       * not be tinted, and this property will have no effect.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
       */
      public Builder setTint(
          androidx.wear.protolayout.proto.ColorProto.ColorProp.Builder builderForValue) {
        copyOnWrite();
        instance.setTint(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The tint color to use. If specified, the image will be tinted, using
       * SRC_IN blending (that is, all color information will be stripped from the
       * target image, and only the alpha channel will be blended with the requested
       * color).
       * Note that only Android image resources can be tinted; Inline images will
       * not be tinted, and this property will have no effect.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
       */
      public Builder mergeTint(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.mergeTint(value);
        return this;
      }
      /**
       * <pre>
       * The tint color to use. If specified, the image will be tinted, using
       * SRC_IN blending (that is, all color information will be stripped from the
       * target image, and only the alpha channel will be blended with the requested
       * color).
       * Note that only Android image resources can be tinted; Inline images will
       * not be tinted, and this property will have no effect.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp tint = 1;</code>
       */
      public Builder clearTint() {  copyOnWrite();
        instance.clearTint();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ColorFilter)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "tint_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter>(
                        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:androidx.wear.protolayout.proto.ColorFilter)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter DEFAULT_INSTANCE;
    static {
      ColorFilter defaultInstance = new ColorFilter();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ColorFilter.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ImageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Image)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     * @return Whether the resourceId field is set.
     */
    boolean hasResourceId();
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     * @return The resourceId.
     */
    androidx.wear.protolayout.proto.TypesProto.StringProp getResourceId();

    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
     * @return Whether the width field is set.
     */
    boolean hasWidth();
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
     * @return The width.
     */
    androidx.wear.protolayout.proto.DimensionProto.ImageDimension getWidth();

    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
     * @return Whether the height field is set.
     */
    boolean hasHeight();
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
     * @return The height.
     */
    androidx.wear.protolayout.proto.DimensionProto.ImageDimension getHeight();

    /**
     * <pre>
     * How to scale the image resource inside the bounds specified by width/height
     * if its size does not match those bounds. Defaults to
     * CONTENT_SCALE_MODE_FIT.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
     * @return Whether the contentScaleMode field is set.
     */
    boolean hasContentScaleMode();
    /**
     * <pre>
     * How to scale the image resource inside the bounds specified by width/height
     * if its size does not match those bounds. Defaults to
     * CONTENT_SCALE_MODE_FIT.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
     * @return The contentScaleMode.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp getContentScaleMode();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();

    /**
     * <pre>
     * Filtering parameters for this image. If not specified, defaults to no
     * filtering.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
     * @return Whether the colorFilter field is set.
     */
    boolean hasColorFilter();
    /**
     * <pre>
     * Filtering parameters for this image. If not specified, defaults to no
     * filtering.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
     * @return The colorFilter.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter getColorFilter();
  }
  /**
   * <pre>
   * An image.
   * Images used in this element must exist in the resource bundle that
   * corresponds to this layout. Images must have their dimension specified, and
   * will be rendered at this width and height, regardless of their native
   * dimension.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Image}
   */
  public  static final class Image extends
      com.google.protobuf.GeneratedMessageLite<
          Image, Image.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Image)
      ImageOrBuilder {
    private Image() {
    }
    public static final int RESOURCE_ID_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.StringProp resourceId_;
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    @java.lang.Override
    public boolean hasResourceId() {
      return resourceId_ != null;
    }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.StringProp getResourceId() {
      return resourceId_ == null ? androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance() : resourceId_;
    }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    private void setResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  resourceId_ = value;
      
      }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  if (resourceId_ != null &&
          resourceId_ != androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance()) {
        resourceId_ =
          androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder(resourceId_).mergeFrom(value).buildPartial();
      } else {
        resourceId_ = value;
      }
      
    }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    private void clearResourceId() {  resourceId_ = null;
      
    }

    public static final int WIDTH_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.ImageDimension width_;
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
     */
    @java.lang.Override
    public boolean hasWidth() {
      return width_ != null;
    }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ImageDimension getWidth() {
      return width_ == null ? androidx.wear.protolayout.proto.DimensionProto.ImageDimension.getDefaultInstance() : width_;
    }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
     */
    private void setWidth(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
      value.getClass();
  width_ = value;
      
      }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
      value.getClass();
  if (width_ != null &&
          width_ != androidx.wear.protolayout.proto.DimensionProto.ImageDimension.getDefaultInstance()) {
        width_ =
          androidx.wear.protolayout.proto.DimensionProto.ImageDimension.newBuilder(width_).mergeFrom(value).buildPartial();
      } else {
        width_ = value;
      }
      
    }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
     */
    private void clearWidth() {  width_ = null;
      
    }

    public static final int HEIGHT_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.DimensionProto.ImageDimension height_;
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
     */
    @java.lang.Override
    public boolean hasHeight() {
      return height_ != null;
    }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ImageDimension getHeight() {
      return height_ == null ? androidx.wear.protolayout.proto.DimensionProto.ImageDimension.getDefaultInstance() : height_;
    }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
     */
    private void setHeight(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
      value.getClass();
  height_ = value;
      
      }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
      value.getClass();
  if (height_ != null &&
          height_ != androidx.wear.protolayout.proto.DimensionProto.ImageDimension.getDefaultInstance()) {
        height_ =
          androidx.wear.protolayout.proto.DimensionProto.ImageDimension.newBuilder(height_).mergeFrom(value).buildPartial();
      } else {
        height_ = value;
      }
      
    }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
     */
    private void clearHeight() {  height_ = null;
      
    }

    public static final int CONTENT_SCALE_MODE_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp contentScaleMode_;
    /**
     * <pre>
     * How to scale the image resource inside the bounds specified by width/height
     * if its size does not match those bounds. Defaults to
     * CONTENT_SCALE_MODE_FIT.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
     */
    @java.lang.Override
    public boolean hasContentScaleMode() {
      return contentScaleMode_ != null;
    }
    /**
     * <pre>
     * How to scale the image resource inside the bounds specified by width/height
     * if its size does not match those bounds. Defaults to
     * CONTENT_SCALE_MODE_FIT.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp getContentScaleMode() {
      return contentScaleMode_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp.getDefaultInstance() : contentScaleMode_;
    }
    /**
     * <pre>
     * How to scale the image resource inside the bounds specified by width/height
     * if its size does not match those bounds. Defaults to
     * CONTENT_SCALE_MODE_FIT.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
     */
    private void setContentScaleMode(androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp value) {
      value.getClass();
  contentScaleMode_ = value;
      
      }
    /**
     * <pre>
     * How to scale the image resource inside the bounds specified by width/height
     * if its size does not match those bounds. Defaults to
     * CONTENT_SCALE_MODE_FIT.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeContentScaleMode(androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp value) {
      value.getClass();
  if (contentScaleMode_ != null &&
          contentScaleMode_ != androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp.getDefaultInstance()) {
        contentScaleMode_ =
          androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp.newBuilder(contentScaleMode_).mergeFrom(value).buildPartial();
      } else {
        contentScaleMode_ = value;
      }
      
    }
    /**
     * <pre>
     * How to scale the image resource inside the bounds specified by width/height
     * if its size does not match those bounds. Defaults to
     * CONTENT_SCALE_MODE_FIT.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
     */
    private void clearContentScaleMode() {  contentScaleMode_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int COLOR_FILTER_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter colorFilter_;
    /**
     * <pre>
     * Filtering parameters for this image. If not specified, defaults to no
     * filtering.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
     */
    @java.lang.Override
    public boolean hasColorFilter() {
      return colorFilter_ != null;
    }
    /**
     * <pre>
     * Filtering parameters for this image. If not specified, defaults to no
     * filtering.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter getColorFilter() {
      return colorFilter_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter.getDefaultInstance() : colorFilter_;
    }
    /**
     * <pre>
     * Filtering parameters for this image. If not specified, defaults to no
     * filtering.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
     */
    private void setColorFilter(androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter value) {
      value.getClass();
  colorFilter_ = value;
      
      }
    /**
     * <pre>
     * Filtering parameters for this image. If not specified, defaults to no
     * filtering.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeColorFilter(androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter value) {
      value.getClass();
  if (colorFilter_ != null &&
          colorFilter_ != androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter.getDefaultInstance()) {
        colorFilter_ =
          androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter.newBuilder(colorFilter_).mergeFrom(value).buildPartial();
      } else {
        colorFilter_ = value;
      }
      
    }
    /**
     * <pre>
     * Filtering parameters for this image. If not specified, defaults to no
     * filtering.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
     */
    private void clearColorFilter() {  colorFilter_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Image parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Image 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 androidx.wear.protolayout.proto.LayoutElementProto.Image parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Image 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 androidx.wear.protolayout.proto.LayoutElementProto.Image parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Image 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 androidx.wear.protolayout.proto.LayoutElementProto.Image parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Image 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 androidx.wear.protolayout.proto.LayoutElementProto.Image parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Image parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Image parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Image 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(androidx.wear.protolayout.proto.LayoutElementProto.Image prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An image.
     * Images used in this element must exist in the resource bundle that
     * corresponds to this layout. Images must have their dimension specified, and
     * will be rendered at this width and height, regardless of their native
     * dimension.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Image}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Image, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Image)
        androidx.wear.protolayout.proto.LayoutElementProto.ImageOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Image.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      @java.lang.Override
      public boolean hasResourceId() {
        return instance.hasResourceId();
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.StringProp getResourceId() {
        return instance.getResourceId();
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder setResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.setResourceId(value);
        return this;
        }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder setResourceId(
          androidx.wear.protolayout.proto.TypesProto.StringProp.Builder builderForValue) {
        copyOnWrite();
        instance.setResourceId(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder mergeResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.mergeResourceId(value);
        return this;
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder clearResourceId() {  copyOnWrite();
        instance.clearResourceId();
        return this;
      }

      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
       */
      @java.lang.Override
      public boolean hasWidth() {
        return instance.hasWidth();
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ImageDimension getWidth() {
        return instance.getWidth();
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
       */
      public Builder setWidth(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
        copyOnWrite();
        instance.setWidth(value);
        return this;
        }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
       */
      public Builder setWidth(
          androidx.wear.protolayout.proto.DimensionProto.ImageDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
       */
      public Builder mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
        copyOnWrite();
        instance.mergeWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension width = 2;</code>
       */
      public Builder clearWidth() {  copyOnWrite();
        instance.clearWidth();
        return this;
      }

      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
       */
      @java.lang.Override
      public boolean hasHeight() {
        return instance.hasHeight();
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ImageDimension getHeight() {
        return instance.getHeight();
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
       */
      public Builder setHeight(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
        }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
       */
      public Builder setHeight(
          androidx.wear.protolayout.proto.DimensionProto.ImageDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
       */
      public Builder mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ImageDimension value) {
        copyOnWrite();
        instance.mergeHeight(value);
        return this;
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ImageDimension height = 3;</code>
       */
      public Builder clearHeight() {  copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <pre>
       * How to scale the image resource inside the bounds specified by width/height
       * if its size does not match those bounds. Defaults to
       * CONTENT_SCALE_MODE_FIT.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
       */
      @java.lang.Override
      public boolean hasContentScaleMode() {
        return instance.hasContentScaleMode();
      }
      /**
       * <pre>
       * How to scale the image resource inside the bounds specified by width/height
       * if its size does not match those bounds. Defaults to
       * CONTENT_SCALE_MODE_FIT.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp getContentScaleMode() {
        return instance.getContentScaleMode();
      }
      /**
       * <pre>
       * How to scale the image resource inside the bounds specified by width/height
       * if its size does not match those bounds. Defaults to
       * CONTENT_SCALE_MODE_FIT.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
       */
      public Builder setContentScaleMode(androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp value) {
        copyOnWrite();
        instance.setContentScaleMode(value);
        return this;
        }
      /**
       * <pre>
       * How to scale the image resource inside the bounds specified by width/height
       * if its size does not match those bounds. Defaults to
       * CONTENT_SCALE_MODE_FIT.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
       */
      public Builder setContentScaleMode(
          androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp.Builder builderForValue) {
        copyOnWrite();
        instance.setContentScaleMode(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * How to scale the image resource inside the bounds specified by width/height
       * if its size does not match those bounds. Defaults to
       * CONTENT_SCALE_MODE_FIT.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
       */
      public Builder mergeContentScaleMode(androidx.wear.protolayout.proto.LayoutElementProto.ContentScaleModeProp value) {
        copyOnWrite();
        instance.mergeContentScaleMode(value);
        return this;
      }
      /**
       * <pre>
       * How to scale the image resource inside the bounds specified by width/height
       * if its size does not match those bounds. Defaults to
       * CONTENT_SCALE_MODE_FIT.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContentScaleModeProp content_scale_mode = 4;</code>
       */
      public Builder clearContentScaleMode() {  copyOnWrite();
        instance.clearContentScaleMode();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * Filtering parameters for this image. If not specified, defaults to no
       * filtering.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
       */
      @java.lang.Override
      public boolean hasColorFilter() {
        return instance.hasColorFilter();
      }
      /**
       * <pre>
       * Filtering parameters for this image. If not specified, defaults to no
       * filtering.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter getColorFilter() {
        return instance.getColorFilter();
      }
      /**
       * <pre>
       * Filtering parameters for this image. If not specified, defaults to no
       * filtering.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
       */
      public Builder setColorFilter(androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter value) {
        copyOnWrite();
        instance.setColorFilter(value);
        return this;
        }
      /**
       * <pre>
       * Filtering parameters for this image. If not specified, defaults to no
       * filtering.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
       */
      public Builder setColorFilter(
          androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter.Builder builderForValue) {
        copyOnWrite();
        instance.setColorFilter(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Filtering parameters for this image. If not specified, defaults to no
       * filtering.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
       */
      public Builder mergeColorFilter(androidx.wear.protolayout.proto.LayoutElementProto.ColorFilter value) {
        copyOnWrite();
        instance.mergeColorFilter(value);
        return this;
      }
      /**
       * <pre>
       * Filtering parameters for this image. If not specified, defaults to no
       * filtering.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorFilter color_filter = 6;</code>
       */
      public Builder clearColorFilter() {  copyOnWrite();
        instance.clearColorFilter();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Image)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Image();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "resourceId_",
              "width_",
              "height_",
              "contentScaleMode_",
              "modifiers_",
              "colorFilter_",
            };
            java.lang.String info =
                "\u0000\u0006\u0000\u0000\u0001\u0006\u0006\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t\u0005\t\u0006\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Image> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Image.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Image>(
                        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:androidx.wear.protolayout.proto.Image)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Image DEFAULT_INSTANCE;
    static {
      Image defaultInstance = new Image();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Image.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Image getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SpacerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Spacer)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The width of this Spacer. When this is added as the direct child of an Arc,
     * this must be specified as an angular dimension, otherwise a linear
     * dimension must be used. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
     * @return Whether the width field is set.
     */
    boolean hasWidth();
    /**
     * <pre>
     * The width of this Spacer. When this is added as the direct child of an Arc,
     * this must be specified as an angular dimension, otherwise a linear
     * dimension must be used. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
     * @return The width.
     */
    androidx.wear.protolayout.proto.DimensionProto.SpacerDimension getWidth();

    /**
     * <pre>
     * The height of this spacer. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
     * @return Whether the height field is set.
     */
    boolean hasHeight();
    /**
     * <pre>
     * The height of this spacer. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
     * @return The height.
     */
    androidx.wear.protolayout.proto.DimensionProto.SpacerDimension getHeight();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();
  }
  /**
   * <pre>
   * A simple spacer, typically used to provide padding between adjacent elements.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Spacer}
   */
  public  static final class Spacer extends
      com.google.protobuf.GeneratedMessageLite<
          Spacer, Spacer.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Spacer)
      SpacerOrBuilder {
    private Spacer() {
    }
    public static final int WIDTH_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.SpacerDimension width_;
    /**
     * <pre>
     * The width of this Spacer. When this is added as the direct child of an Arc,
     * this must be specified as an angular dimension, otherwise a linear
     * dimension must be used. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
     */
    @java.lang.Override
    public boolean hasWidth() {
      return width_ != null;
    }
    /**
     * <pre>
     * The width of this Spacer. When this is added as the direct child of an Arc,
     * this must be specified as an angular dimension, otherwise a linear
     * dimension must be used. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.SpacerDimension getWidth() {
      return width_ == null ? androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.getDefaultInstance() : width_;
    }
    /**
     * <pre>
     * The width of this Spacer. When this is added as the direct child of an Arc,
     * this must be specified as an angular dimension, otherwise a linear
     * dimension must be used. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
     */
    private void setWidth(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
      value.getClass();
  width_ = value;
      
      }
    /**
     * <pre>
     * The width of this Spacer. When this is added as the direct child of an Arc,
     * this must be specified as an angular dimension, otherwise a linear
     * dimension must be used. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWidth(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
      value.getClass();
  if (width_ != null &&
          width_ != androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.getDefaultInstance()) {
        width_ =
          androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.newBuilder(width_).mergeFrom(value).buildPartial();
      } else {
        width_ = value;
      }
      
    }
    /**
     * <pre>
     * The width of this Spacer. When this is added as the direct child of an Arc,
     * this must be specified as an angular dimension, otherwise a linear
     * dimension must be used. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
     */
    private void clearWidth() {  width_ = null;
      
    }

    public static final int HEIGHT_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.SpacerDimension height_;
    /**
     * <pre>
     * The height of this spacer. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
     */
    @java.lang.Override
    public boolean hasHeight() {
      return height_ != null;
    }
    /**
     * <pre>
     * The height of this spacer. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.SpacerDimension getHeight() {
      return height_ == null ? androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.getDefaultInstance() : height_;
    }
    /**
     * <pre>
     * The height of this spacer. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
     */
    private void setHeight(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
      value.getClass();
  height_ = value;
      
      }
    /**
     * <pre>
     * The height of this spacer. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHeight(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
      value.getClass();
  if (height_ != null &&
          height_ != androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.getDefaultInstance()) {
        height_ =
          androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.newBuilder(height_).mergeFrom(value).buildPartial();
      } else {
        height_ = value;
      }
      
    }
    /**
     * <pre>
     * The height of this spacer. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
     */
    private void clearHeight() {  height_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer 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 androidx.wear.protolayout.proto.LayoutElementProto.Spacer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer 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 androidx.wear.protolayout.proto.LayoutElementProto.Spacer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer 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 androidx.wear.protolayout.proto.LayoutElementProto.Spacer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer 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 androidx.wear.protolayout.proto.LayoutElementProto.Spacer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer 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(androidx.wear.protolayout.proto.LayoutElementProto.Spacer prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A simple spacer, typically used to provide padding between adjacent elements.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Spacer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Spacer, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Spacer)
        androidx.wear.protolayout.proto.LayoutElementProto.SpacerOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Spacer.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The width of this Spacer. When this is added as the direct child of an Arc,
       * this must be specified as an angular dimension, otherwise a linear
       * dimension must be used. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
       */
      @java.lang.Override
      public boolean hasWidth() {
        return instance.hasWidth();
      }
      /**
       * <pre>
       * The width of this Spacer. When this is added as the direct child of an Arc,
       * this must be specified as an angular dimension, otherwise a linear
       * dimension must be used. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.SpacerDimension getWidth() {
        return instance.getWidth();
      }
      /**
       * <pre>
       * The width of this Spacer. When this is added as the direct child of an Arc,
       * this must be specified as an angular dimension, otherwise a linear
       * dimension must be used. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
       */
      public Builder setWidth(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
        copyOnWrite();
        instance.setWidth(value);
        return this;
        }
      /**
       * <pre>
       * The width of this Spacer. When this is added as the direct child of an Arc,
       * this must be specified as an angular dimension, otherwise a linear
       * dimension must be used. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
       */
      public Builder setWidth(
          androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The width of this Spacer. When this is added as the direct child of an Arc,
       * this must be specified as an angular dimension, otherwise a linear
       * dimension must be used. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
       */
      public Builder mergeWidth(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
        copyOnWrite();
        instance.mergeWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width of this Spacer. When this is added as the direct child of an Arc,
       * this must be specified as an angular dimension, otherwise a linear
       * dimension must be used. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension width = 1;</code>
       */
      public Builder clearWidth() {  copyOnWrite();
        instance.clearWidth();
        return this;
      }

      /**
       * <pre>
       * The height of this spacer. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
       */
      @java.lang.Override
      public boolean hasHeight() {
        return instance.hasHeight();
      }
      /**
       * <pre>
       * The height of this spacer. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.SpacerDimension getHeight() {
        return instance.getHeight();
      }
      /**
       * <pre>
       * The height of this spacer. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
       */
      public Builder setHeight(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
        }
      /**
       * <pre>
       * The height of this spacer. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
       */
      public Builder setHeight(
          androidx.wear.protolayout.proto.DimensionProto.SpacerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The height of this spacer. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
       */
      public Builder mergeHeight(androidx.wear.protolayout.proto.DimensionProto.SpacerDimension value) {
        copyOnWrite();
        instance.mergeHeight(value);
        return this;
      }
      /**
       * <pre>
       * The height of this spacer. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpacerDimension height = 2;</code>
       */
      public Builder clearHeight() {  copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 3;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Spacer)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Spacer();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "width_",
              "height_",
              "modifiers_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Spacer> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Spacer.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Spacer>(
                        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:androidx.wear.protolayout.proto.Spacer)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Spacer DEFAULT_INSTANCE;
    static {
      Spacer defaultInstance = new Spacer();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Spacer.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Spacer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface BoxOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Box)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> 
        getContentsList();
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index);
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    int getContentsCount();

    /**
     * <pre>
     * The height of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
     * @return Whether the height field is set.
     */
    boolean hasHeight();
    /**
     * <pre>
     * The height of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
     * @return The height.
     */
    androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight();

    /**
     * <pre>
     * The width of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     * @return Whether the width field is set.
     */
    boolean hasWidth();
    /**
     * <pre>
     * The width of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     * @return The width.
     */
    androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth();

    /**
     * <pre>
     * The horizontal alignment of the element inside this Box. If not defined,
     * defaults to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
     * @return Whether the horizontalAlignment field is set.
     */
    boolean hasHorizontalAlignment();
    /**
     * <pre>
     * The horizontal alignment of the element inside this Box. If not defined,
     * defaults to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
     * @return The horizontalAlignment.
     */
    androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getHorizontalAlignment();

    /**
     * <pre>
     * The vertical alignment of the element inside this Box. If not defined,
     * defaults to VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
     * @return Whether the verticalAlignment field is set.
     */
    boolean hasVerticalAlignment();
    /**
     * <pre>
     * The vertical alignment of the element inside this Box. If not defined,
     * defaults to VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
     * @return The verticalAlignment.
     */
    androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlignment();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();
  }
  /**
   * <pre>
   * A container which stacks all of its children on top of one another. This also
   * allows to add a background color, or to have a border around them with some
   * padding.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Box}
   */
  public  static final class Box extends
      com.google.protobuf.GeneratedMessageLite<
          Box, Box.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Box)
      BoxOrBuilder {
    private Box() {
      contents_ = emptyProtobufList();
    }
    public static final int CONTENTS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> contents_;
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> getContentsList() {
      return contents_;
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    public java.util.List<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElementOrBuilder> 
        getContentsOrBuilderList() {
      return contents_;
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public int getContentsCount() {
      return contents_.size();
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index) {
      return contents_.get(index);
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElementOrBuilder getContentsOrBuilder(
        int index) {
      return contents_.get(index);
    }
    private void ensureContentsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> tmp = contents_;
      if (!tmp.isModifiable()) {
        contents_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void setContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.set(index, value);
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addContents(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(value);
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(index, value);
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addAllContents(
        java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> values) {
      ensureContentsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, contents_);
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void clearContents() {
      contents_ = emptyProtobufList();
    }
    /**
     * <pre>
     * The child element(s) to wrap.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void removeContents(int index) {
      ensureContentsIsMutable();
      contents_.remove(index);
    }

    public static final int HEIGHT_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.ContainerDimension height_;
    /**
     * <pre>
     * The height of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
     */
    @java.lang.Override
    public boolean hasHeight() {
      return height_ != null;
    }
    /**
     * <pre>
     * The height of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight() {
      return height_ == null ? androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance() : height_;
    }
    /**
     * <pre>
     * The height of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
     */
    private void setHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  height_ = value;
      
      }
    /**
     * <pre>
     * The height of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  if (height_ != null &&
          height_ != androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance()) {
        height_ =
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.newBuilder(height_).mergeFrom(value).buildPartial();
      } else {
        height_ = value;
      }
      
    }
    /**
     * <pre>
     * The height of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
     */
    private void clearHeight() {  height_ = null;
      
    }

    public static final int WIDTH_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.DimensionProto.ContainerDimension width_;
    /**
     * <pre>
     * The width of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.Override
    public boolean hasWidth() {
      return width_ != null;
    }
    /**
     * <pre>
     * The width of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth() {
      return width_ == null ? androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance() : width_;
    }
    /**
     * <pre>
     * The width of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    private void setWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  width_ = value;
      
      }
    /**
     * <pre>
     * The width of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  if (width_ != null &&
          width_ != androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance()) {
        width_ =
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.newBuilder(width_).mergeFrom(value).buildPartial();
      } else {
        width_ = value;
      }
      
    }
    /**
     * <pre>
     * The width of this Box. If not defined, this will size itself to fit all of
     * its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    private void clearWidth() {  width_ = null;
      
    }

    public static final int HORIZONTAL_ALIGNMENT_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp horizontalAlignment_;
    /**
     * <pre>
     * The horizontal alignment of the element inside this Box. If not defined,
     * defaults to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
     */
    @java.lang.Override
    public boolean hasHorizontalAlignment() {
      return horizontalAlignment_ != null;
    }
    /**
     * <pre>
     * The horizontal alignment of the element inside this Box. If not defined,
     * defaults to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getHorizontalAlignment() {
      return horizontalAlignment_ == null ? androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.getDefaultInstance() : horizontalAlignment_;
    }
    /**
     * <pre>
     * The horizontal alignment of the element inside this Box. If not defined,
     * defaults to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
     */
    private void setHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
      value.getClass();
  horizontalAlignment_ = value;
      
      }
    /**
     * <pre>
     * The horizontal alignment of the element inside this Box. If not defined,
     * defaults to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
      value.getClass();
  if (horizontalAlignment_ != null &&
          horizontalAlignment_ != androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.getDefaultInstance()) {
        horizontalAlignment_ =
          androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.newBuilder(horizontalAlignment_).mergeFrom(value).buildPartial();
      } else {
        horizontalAlignment_ = value;
      }
      
    }
    /**
     * <pre>
     * The horizontal alignment of the element inside this Box. If not defined,
     * defaults to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
     */
    private void clearHorizontalAlignment() {  horizontalAlignment_ = null;
      
    }

    public static final int VERTICAL_ALIGNMENT_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp verticalAlignment_;
    /**
     * <pre>
     * The vertical alignment of the element inside this Box. If not defined,
     * defaults to VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
     */
    @java.lang.Override
    public boolean hasVerticalAlignment() {
      return verticalAlignment_ != null;
    }
    /**
     * <pre>
     * The vertical alignment of the element inside this Box. If not defined,
     * defaults to VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlignment() {
      return verticalAlignment_ == null ? androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.getDefaultInstance() : verticalAlignment_;
    }
    /**
     * <pre>
     * The vertical alignment of the element inside this Box. If not defined,
     * defaults to VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
     */
    private void setVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
      value.getClass();
  verticalAlignment_ = value;
      
      }
    /**
     * <pre>
     * The vertical alignment of the element inside this Box. If not defined,
     * defaults to VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
      value.getClass();
  if (verticalAlignment_ != null &&
          verticalAlignment_ != androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.getDefaultInstance()) {
        verticalAlignment_ =
          androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.newBuilder(verticalAlignment_).mergeFrom(value).buildPartial();
      } else {
        verticalAlignment_ = value;
      }
      
    }
    /**
     * <pre>
     * The vertical alignment of the element inside this Box. If not defined,
     * defaults to VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
     */
    private void clearVerticalAlignment() {  verticalAlignment_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Box parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Box 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 androidx.wear.protolayout.proto.LayoutElementProto.Box parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Box 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 androidx.wear.protolayout.proto.LayoutElementProto.Box parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Box 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 androidx.wear.protolayout.proto.LayoutElementProto.Box parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Box 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 androidx.wear.protolayout.proto.LayoutElementProto.Box parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Box parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Box parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Box 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(androidx.wear.protolayout.proto.LayoutElementProto.Box prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A container which stacks all of its children on top of one another. This also
     * allows to add a background color, or to have a border around them with some
     * padding.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Box}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Box, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Box)
        androidx.wear.protolayout.proto.LayoutElementProto.BoxOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Box.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> getContentsList() {
        return java.util.Collections.unmodifiableList(
            instance.getContentsList());
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public int getContentsCount() {
        return instance.getContentsCount();
      }/**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index) {
        return instance.getContents(index);
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.setContents(index, value);
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.setContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.addContents(value);
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.addContents(index, value);
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addAllContents(
          java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> values) {
        copyOnWrite();
        instance.addAllContents(values);
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder clearContents() {
        copyOnWrite();
        instance.clearContents();
        return this;
      }
      /**
       * <pre>
       * The child element(s) to wrap.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder removeContents(int index) {
        copyOnWrite();
        instance.removeContents(index);
        return this;
      }

      /**
       * <pre>
       * The height of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
       */
      @java.lang.Override
      public boolean hasHeight() {
        return instance.hasHeight();
      }
      /**
       * <pre>
       * The height of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight() {
        return instance.getHeight();
      }
      /**
       * <pre>
       * The height of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
       */
      public Builder setHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
        }
      /**
       * <pre>
       * The height of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
       */
      public Builder setHeight(
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The height of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
       */
      public Builder mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.mergeHeight(value);
        return this;
      }
      /**
       * <pre>
       * The height of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 2;</code>
       */
      public Builder clearHeight() {  copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <pre>
       * The width of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      @java.lang.Override
      public boolean hasWidth() {
        return instance.hasWidth();
      }
      /**
       * <pre>
       * The width of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth() {
        return instance.getWidth();
      }
      /**
       * <pre>
       * The width of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder setWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.setWidth(value);
        return this;
        }
      /**
       * <pre>
       * The width of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder setWidth(
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The width of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.mergeWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width of this Box. If not defined, this will size itself to fit all of
       * its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder clearWidth() {  copyOnWrite();
        instance.clearWidth();
        return this;
      }

      /**
       * <pre>
       * The horizontal alignment of the element inside this Box. If not defined,
       * defaults to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
       */
      @java.lang.Override
      public boolean hasHorizontalAlignment() {
        return instance.hasHorizontalAlignment();
      }
      /**
       * <pre>
       * The horizontal alignment of the element inside this Box. If not defined,
       * defaults to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getHorizontalAlignment() {
        return instance.getHorizontalAlignment();
      }
      /**
       * <pre>
       * The horizontal alignment of the element inside this Box. If not defined,
       * defaults to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
       */
      public Builder setHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
        copyOnWrite();
        instance.setHorizontalAlignment(value);
        return this;
        }
      /**
       * <pre>
       * The horizontal alignment of the element inside this Box. If not defined,
       * defaults to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
       */
      public Builder setHorizontalAlignment(
          androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setHorizontalAlignment(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The horizontal alignment of the element inside this Box. If not defined,
       * defaults to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
       */
      public Builder mergeHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
        copyOnWrite();
        instance.mergeHorizontalAlignment(value);
        return this;
      }
      /**
       * <pre>
       * The horizontal alignment of the element inside this Box. If not defined,
       * defaults to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 4;</code>
       */
      public Builder clearHorizontalAlignment() {  copyOnWrite();
        instance.clearHorizontalAlignment();
        return this;
      }

      /**
       * <pre>
       * The vertical alignment of the element inside this Box. If not defined,
       * defaults to VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
       */
      @java.lang.Override
      public boolean hasVerticalAlignment() {
        return instance.hasVerticalAlignment();
      }
      /**
       * <pre>
       * The vertical alignment of the element inside this Box. If not defined,
       * defaults to VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlignment() {
        return instance.getVerticalAlignment();
      }
      /**
       * <pre>
       * The vertical alignment of the element inside this Box. If not defined,
       * defaults to VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
       */
      public Builder setVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
        copyOnWrite();
        instance.setVerticalAlignment(value);
        return this;
        }
      /**
       * <pre>
       * The vertical alignment of the element inside this Box. If not defined,
       * defaults to VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
       */
      public Builder setVerticalAlignment(
          androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setVerticalAlignment(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The vertical alignment of the element inside this Box. If not defined,
       * defaults to VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
       */
      public Builder mergeVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
        copyOnWrite();
        instance.mergeVerticalAlignment(value);
        return this;
      }
      /**
       * <pre>
       * The vertical alignment of the element inside this Box. If not defined,
       * defaults to VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 5;</code>
       */
      public Builder clearVerticalAlignment() {  copyOnWrite();
        instance.clearVerticalAlignment();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 6;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Box)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Box();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "contents_",
              androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.class,
              "height_",
              "width_",
              "horizontalAlignment_",
              "verticalAlignment_",
              "modifiers_",
            };
            java.lang.String info =
                "\u0000\u0006\u0000\u0000\u0001\u0006\u0006\u0000\u0001\u0000\u0001\u001b\u0002\t" +
                "\u0003\t\u0004\t\u0005\t\u0006\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Box> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Box.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Box>(
                        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:androidx.wear.protolayout.proto.Box)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Box DEFAULT_INSTANCE;
    static {
      Box defaultInstance = new Box();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Box.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Box getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SpanTextOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SpanText)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     * @return Whether the text field is set.
     */
    boolean hasText();
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     * @return The text.
     */
    androidx.wear.protolayout.proto.TypesProto.StringProp getText();

    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     * @return Whether the fontStyle field is set.
     */
    boolean hasFontStyle();
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     * @return The fontStyle.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers getModifiers();

    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
     * @return Whether the androidTextStyle field is set.
     */
    boolean hasAndroidTextStyle();
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
     * @return The androidTextStyle.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle getAndroidTextStyle();
  }
  /**
   * <pre>
   * A portion of text which can be added to a Span. Two different SpanText
   * elements on the same line will be aligned to the same baseline, regardless of
   * the size of each SpanText.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SpanText}
   */
  public  static final class SpanText extends
      com.google.protobuf.GeneratedMessageLite<
          SpanText, SpanText.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SpanText)
      SpanTextOrBuilder {
    private SpanText() {
    }
    public static final int TEXT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.StringProp text_;
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.Override
    public boolean hasText() {
      return text_ != null;
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.StringProp getText() {
      return text_ == null ? androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance() : text_;
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    private void setText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  text_ = value;
      
      }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  if (text_ != null &&
          text_ != androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance()) {
        text_ =
          androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder(text_).mergeFrom(value).buildPartial();
      } else {
        text_ = value;
      }
      
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    private void clearText() {  text_ = null;
      
    }

    public static final int FONT_STYLE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.LayoutElementProto.FontStyle fontStyle_;
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.Override
    public boolean hasFontStyle() {
      return fontStyle_ != null;
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle() {
      return fontStyle_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.getDefaultInstance() : fontStyle_;
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    private void setFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
      value.getClass();
  fontStyle_ = value;
      
      }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
      value.getClass();
  if (fontStyle_ != null &&
          fontStyle_ != androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.getDefaultInstance()) {
        fontStyle_ =
          androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.newBuilder(fontStyle_).mergeFrom(value).buildPartial();
      } else {
        fontStyle_ = value;
      }
      
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    private void clearFontStyle() {  fontStyle_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int ANDROID_TEXT_STYLE_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle androidTextStyle_;
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
     */
    @java.lang.Override
    public boolean hasAndroidTextStyle() {
      return androidTextStyle_ != null;
    }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle getAndroidTextStyle() {
      return androidTextStyle_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.getDefaultInstance() : androidTextStyle_;
    }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
     */
    private void setAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
      value.getClass();
  androidTextStyle_ = value;
      
      }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
      value.getClass();
  if (androidTextStyle_ != null &&
          androidTextStyle_ != androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.getDefaultInstance()) {
        androidTextStyle_ =
          androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.newBuilder(androidTextStyle_).mergeFrom(value).buildPartial();
      } else {
        androidTextStyle_ = value;
      }
      
    }
    /**
     * <pre>
     * An Android platform specific text style configuration options for styling
     * and compatibility.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
     */
    private void clearAndroidTextStyle() {  androidTextStyle_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanText parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanText parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanText parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanText parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText 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(androidx.wear.protolayout.proto.LayoutElementProto.SpanText prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A portion of text which can be added to a Span. Two different SpanText
     * elements on the same line will be aligned to the same baseline, regardless of
     * the size of each SpanText.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SpanText}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.SpanText, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SpanText)
        androidx.wear.protolayout.proto.LayoutElementProto.SpanTextOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.SpanText.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      @java.lang.Override
      public boolean hasText() {
        return instance.hasText();
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.StringProp getText() {
        return instance.getText();
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder setText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.setText(value);
        return this;
        }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder setText(
          androidx.wear.protolayout.proto.TypesProto.StringProp.Builder builderForValue) {
        copyOnWrite();
        instance.setText(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder mergeText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.mergeText(value);
        return this;
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder clearText() {  copyOnWrite();
        instance.clearText();
        return this;
      }

      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      @java.lang.Override
      public boolean hasFontStyle() {
        return instance.hasFontStyle();
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle() {
        return instance.getFontStyle();
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder setFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
        copyOnWrite();
        instance.setFontStyle(value);
        return this;
        }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder setFontStyle(
          androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.Builder builderForValue) {
        copyOnWrite();
        instance.setFontStyle(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder mergeFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
        copyOnWrite();
        instance.mergeFontStyle(value);
        return this;
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder clearFontStyle() {  copyOnWrite();
        instance.clearFontStyle();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 3;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
       */
      @java.lang.Override
      public boolean hasAndroidTextStyle() {
        return instance.hasAndroidTextStyle();
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle getAndroidTextStyle() {
        return instance.getAndroidTextStyle();
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
       */
      public Builder setAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
        copyOnWrite();
        instance.setAndroidTextStyle(value);
        return this;
        }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
       */
      public Builder setAndroidTextStyle(
          androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle.Builder builderForValue) {
        copyOnWrite();
        instance.setAndroidTextStyle(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
       */
      public Builder mergeAndroidTextStyle(androidx.wear.protolayout.proto.LayoutElementProto.AndroidTextStyle value) {
        copyOnWrite();
        instance.mergeAndroidTextStyle(value);
        return this;
      }
      /**
       * <pre>
       * An Android platform specific text style configuration options for styling
       * and compatibility.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.AndroidTextStyle android_text_style = 4;</code>
       */
      public Builder clearAndroidTextStyle() {  copyOnWrite();
        instance.clearAndroidTextStyle();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SpanText)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.SpanText();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "text_",
              "fontStyle_",
              "modifiers_",
              "androidTextStyle_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.SpanText> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.SpanText.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.SpanText>(
                        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:androidx.wear.protolayout.proto.SpanText)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.SpanText DEFAULT_INSTANCE;
    static {
      SpanText defaultInstance = new SpanText();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SpanText.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanText getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SpanImageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.SpanImage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     * @return Whether the resourceId field is set.
     */
    boolean hasResourceId();
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     * @return The resourceId.
     */
    androidx.wear.protolayout.proto.TypesProto.StringProp getResourceId();

    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
     * @return Whether the width field is set.
     */
    boolean hasWidth();
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
     * @return The width.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getWidth();

    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
     * @return Whether the height field is set.
     */
    boolean hasHeight();
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
     * @return The height.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getHeight();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers getModifiers();

    /**
     * <pre>
     * Alignment of this image within the line height of the surrounding
     * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
     * @return Whether the alignment field is set.
     */
    boolean hasAlignment();
    /**
     * <pre>
     * Alignment of this image within the line height of the surrounding
     * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
     * @return The alignment.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp getAlignment();
  }
  /**
   * <pre>
   * An image which can be added to a Span.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.SpanImage}
   */
  public  static final class SpanImage extends
      com.google.protobuf.GeneratedMessageLite<
          SpanImage, SpanImage.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.SpanImage)
      SpanImageOrBuilder {
    private SpanImage() {
    }
    public static final int RESOURCE_ID_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.StringProp resourceId_;
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    @java.lang.Override
    public boolean hasResourceId() {
      return resourceId_ != null;
    }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.StringProp getResourceId() {
      return resourceId_ == null ? androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance() : resourceId_;
    }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    private void setResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  resourceId_ = value;
      
      }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  if (resourceId_ != null &&
          resourceId_ != androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance()) {
        resourceId_ =
          androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder(resourceId_).mergeFrom(value).buildPartial();
      } else {
        resourceId_ = value;
      }
      
    }
    /**
     * <pre>
     * The resource_id of the image to render. This must exist in the supplied
     * resource bundle.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
     */
    private void clearResourceId() {  resourceId_ = null;
      
    }

    public static final int WIDTH_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp width_;
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
     */
    @java.lang.Override
    public boolean hasWidth() {
      return width_ != null;
    }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getWidth() {
      return width_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : width_;
    }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
     */
    private void setWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  width_ = value;
      
      }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (width_ != null &&
          width_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        width_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(width_).mergeFrom(value).buildPartial();
      } else {
        width_ = value;
      }
      
    }
    /**
     * <pre>
     * The width of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
     */
    private void clearWidth() {  width_ = null;
      
    }

    public static final int HEIGHT_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp height_;
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
     */
    @java.lang.Override
    public boolean hasHeight() {
      return height_ != null;
    }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getHeight() {
      return height_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : height_;
    }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
     */
    private void setHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  height_ = value;
      
      }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (height_ != null &&
          height_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        height_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(height_).mergeFrom(value).buildPartial();
      } else {
        height_ = value;
      }
      
    }
    /**
     * <pre>
     * The height of this image. If not defined, the image will not be rendered.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
     */
    private void clearHeight() {  height_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int ALIGNMENT_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp alignment_;
    /**
     * <pre>
     * Alignment of this image within the line height of the surrounding
     * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
     */
    @java.lang.Override
    public boolean hasAlignment() {
      return alignment_ != null;
    }
    /**
     * <pre>
     * Alignment of this image within the line height of the surrounding
     * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp getAlignment() {
      return alignment_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp.getDefaultInstance() : alignment_;
    }
    /**
     * <pre>
     * Alignment of this image within the line height of the surrounding
     * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
     */
    private void setAlignment(androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp value) {
      value.getClass();
  alignment_ = value;
      
      }
    /**
     * <pre>
     * Alignment of this image within the line height of the surrounding
     * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAlignment(androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp value) {
      value.getClass();
  if (alignment_ != null &&
          alignment_ != androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp.getDefaultInstance()) {
        alignment_ =
          androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp.newBuilder(alignment_).mergeFrom(value).buildPartial();
      } else {
        alignment_ = value;
      }
      
    }
    /**
     * <pre>
     * Alignment of this image within the line height of the surrounding
     * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
     */
    private void clearAlignment() {  alignment_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanImage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanImage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanImage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage 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 androidx.wear.protolayout.proto.LayoutElementProto.SpanImage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage 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(androidx.wear.protolayout.proto.LayoutElementProto.SpanImage prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An image which can be added to a Span.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.SpanImage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.SpanImage, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.SpanImage)
        androidx.wear.protolayout.proto.LayoutElementProto.SpanImageOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.SpanImage.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      @java.lang.Override
      public boolean hasResourceId() {
        return instance.hasResourceId();
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.StringProp getResourceId() {
        return instance.getResourceId();
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder setResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.setResourceId(value);
        return this;
        }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder setResourceId(
          androidx.wear.protolayout.proto.TypesProto.StringProp.Builder builderForValue) {
        copyOnWrite();
        instance.setResourceId(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder mergeResourceId(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.mergeResourceId(value);
        return this;
      }
      /**
       * <pre>
       * The resource_id of the image to render. This must exist in the supplied
       * resource bundle.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp resource_id = 1;</code>
       */
      public Builder clearResourceId() {  copyOnWrite();
        instance.clearResourceId();
        return this;
      }

      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
       */
      @java.lang.Override
      public boolean hasWidth() {
        return instance.hasWidth();
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getWidth() {
        return instance.getWidth();
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
       */
      public Builder setWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setWidth(value);
        return this;
        }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
       */
      public Builder setWidth(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
       */
      public Builder mergeWidth(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp width = 2;</code>
       */
      public Builder clearWidth() {  copyOnWrite();
        instance.clearWidth();
        return this;
      }

      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
       */
      @java.lang.Override
      public boolean hasHeight() {
        return instance.hasHeight();
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getHeight() {
        return instance.getHeight();
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
       */
      public Builder setHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
        }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
       */
      public Builder setHeight(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
       */
      public Builder mergeHeight(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeHeight(value);
        return this;
      }
      /**
       * <pre>
       * The height of this image. If not defined, the image will not be rendered.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp height = 3;</code>
       */
      public Builder clearHeight() {  copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.SpanModifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanModifiers modifiers = 4;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * Alignment of this image within the line height of the surrounding
       * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
       */
      @java.lang.Override
      public boolean hasAlignment() {
        return instance.hasAlignment();
      }
      /**
       * <pre>
       * Alignment of this image within the line height of the surrounding
       * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp getAlignment() {
        return instance.getAlignment();
      }
      /**
       * <pre>
       * Alignment of this image within the line height of the surrounding
       * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
       */
      public Builder setAlignment(androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp value) {
        copyOnWrite();
        instance.setAlignment(value);
        return this;
        }
      /**
       * <pre>
       * Alignment of this image within the line height of the surrounding
       * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
       */
      public Builder setAlignment(
          androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setAlignment(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Alignment of this image within the line height of the surrounding
       * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
       */
      public Builder mergeAlignment(androidx.wear.protolayout.proto.LayoutElementProto.SpanVerticalAlignmentProp value) {
        copyOnWrite();
        instance.mergeAlignment(value);
        return this;
      }
      /**
       * <pre>
       * Alignment of this image within the line height of the surrounding
       * Spannable. If undefined, defaults to SPAN_VERTICAL_ALIGN_BOTTOM.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpanVerticalAlignmentProp alignment = 5;</code>
       */
      public Builder clearAlignment() {  copyOnWrite();
        instance.clearAlignment();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.SpanImage)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.SpanImage();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "resourceId_",
              "width_",
              "height_",
              "modifiers_",
              "alignment_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t\u0005\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.SpanImage> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.SpanImage.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.SpanImage>(
                        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:androidx.wear.protolayout.proto.SpanImage)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.SpanImage DEFAULT_INSTANCE;
    static {
      SpanImage defaultInstance = new SpanImage();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SpanImage.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.SpanImage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SpanOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Span)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
     * @return Whether the text field is set.
     */
    boolean hasText();
    /**
     * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
     * @return The text.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.SpanText getText();

    /**
     * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
     * @return Whether the image field is set.
     */
    boolean hasImage();
    /**
     * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
     * @return The image.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.SpanImage getImage();

    public androidx.wear.protolayout.proto.LayoutElementProto.Span.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * A single Span. Each Span forms part of a larger Spannable widget. At the
   * moment, the only widgets which can be added to Spannable containers are
   * SpanText and SpanImage elements.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Span}
   */
  public  static final class Span extends
      com.google.protobuf.GeneratedMessageLite<
          Span, Span.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Span)
      SpanOrBuilder {
    private Span() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      TEXT(1),
      IMAGE(2),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return TEXT;
          case 2: return IMAGE;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int TEXT_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
     */
    @java.lang.Override
    public boolean hasText() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.SpanText getText() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.SpanText) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.SpanText.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
     */
    private void setText(androidx.wear.protolayout.proto.LayoutElementProto.SpanText value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
     */
    private void mergeText(androidx.wear.protolayout.proto.LayoutElementProto.SpanText value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.SpanText.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.SpanText.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.SpanText) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
     */
    private void clearText() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int IMAGE_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
     */
    @java.lang.Override
    public boolean hasImage() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.SpanImage getImage() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.SpanImage) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.SpanImage.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
     */
    private void setImage(androidx.wear.protolayout.proto.LayoutElementProto.SpanImage value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
     */
    private void mergeImage(androidx.wear.protolayout.proto.LayoutElementProto.SpanImage value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.SpanImage.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.SpanImage.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.SpanImage) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
     */
    private void clearImage() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Span parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Span 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 androidx.wear.protolayout.proto.LayoutElementProto.Span parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Span 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 androidx.wear.protolayout.proto.LayoutElementProto.Span parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Span 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 androidx.wear.protolayout.proto.LayoutElementProto.Span parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Span 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 androidx.wear.protolayout.proto.LayoutElementProto.Span parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Span parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Span parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Span 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(androidx.wear.protolayout.proto.LayoutElementProto.Span prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A single Span. Each Span forms part of a larger Spannable widget. At the
     * moment, the only widgets which can be added to Spannable containers are
     * SpanText and SpanImage elements.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Span}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Span, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Span)
        androidx.wear.protolayout.proto.LayoutElementProto.SpanOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Span.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
       */
      @java.lang.Override
      public boolean hasText() {
        return instance.hasText();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.SpanText getText() {
        return instance.getText();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
       */
      public Builder setText(androidx.wear.protolayout.proto.LayoutElementProto.SpanText value) {
        copyOnWrite();
        instance.setText(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
       */
      public Builder setText(
          androidx.wear.protolayout.proto.LayoutElementProto.SpanText.Builder builderForValue) {
        copyOnWrite();
        instance.setText(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
       */
      public Builder mergeText(androidx.wear.protolayout.proto.LayoutElementProto.SpanText value) {
        copyOnWrite();
        instance.mergeText(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanText text = 1;</code>
       */
      public Builder clearText() {
        copyOnWrite();
        instance.clearText();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
       */
      @java.lang.Override
      public boolean hasImage() {
        return instance.hasImage();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.SpanImage getImage() {
        return instance.getImage();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
       */
      public Builder setImage(androidx.wear.protolayout.proto.LayoutElementProto.SpanImage value) {
        copyOnWrite();
        instance.setImage(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
       */
      public Builder setImage(
          androidx.wear.protolayout.proto.LayoutElementProto.SpanImage.Builder builderForValue) {
        copyOnWrite();
        instance.setImage(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
       */
      public Builder mergeImage(androidx.wear.protolayout.proto.LayoutElementProto.SpanImage value) {
        copyOnWrite();
        instance.mergeImage(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.SpanImage image = 2;</code>
       */
      public Builder clearImage() {
        copyOnWrite();
        instance.clearImage();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Span)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Span();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.LayoutElementProto.SpanText.class,
              androidx.wear.protolayout.proto.LayoutElementProto.SpanImage.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0001\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Span> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Span.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Span>(
                        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:androidx.wear.protolayout.proto.Span)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Span DEFAULT_INSTANCE;
    static {
      Span defaultInstance = new Span();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Span.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Span getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface SpannableOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Spannable)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.Span> 
        getSpansList();
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Span getSpans(int index);
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    int getSpansCount();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();

    /**
     * <pre>
     * The maximum number of lines that can be represented by the Spannable
     * element. If not defined, the Spannable element will be treated as a
     * single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
     * @return Whether the maxLines field is set.
     */
    boolean hasMaxLines();
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Spannable
     * element. If not defined, the Spannable element will be treated as a
     * single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
     * @return The maxLines.
     */
    androidx.wear.protolayout.proto.TypesProto.Int32Prop getMaxLines();

    /**
     * <pre>
     * Alignment of the Spannable content within its bounds. Note that a Spannable
     * element will size itself to wrap its contents, so this option is
     * meaningless for single-line content (for that, use alignment of the outer
     * container). For multi-line content, however, this will set the alignment of
     * lines relative to the Spannable element bounds. If not defined, defaults to
     * TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
     * @return Whether the multilineAlignment field is set.
     */
    boolean hasMultilineAlignment();
    /**
     * <pre>
     * Alignment of the Spannable content within its bounds. Note that a Spannable
     * element will size itself to wrap its contents, so this option is
     * meaningless for single-line content (for that, use alignment of the outer
     * container). For multi-line content, however, this will set the alignment of
     * lines relative to the Spannable element bounds. If not defined, defaults to
     * TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
     * @return The multilineAlignment.
     */
    androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getMultilineAlignment();

    /**
     * <pre>
     * How to handle content which overflows the bound of the Spannable element.
     * A Spannable element will grow as large as possible inside its parent
     * container (while still respecting max_lines); if it cannot grow large
     * enough to render all of its content, the content which cannot fit inside
     * its container will  be truncated. If not defined, defaults to
     * TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
     * @return Whether the overflow field is set.
     */
    boolean hasOverflow();
    /**
     * <pre>
     * How to handle content which overflows the bound of the Spannable element.
     * A Spannable element will grow as large as possible inside its parent
     * container (while still respecting max_lines); if it cannot grow large
     * enough to render all of its content, the content which cannot fit inside
     * its container will  be truncated. If not defined, defaults to
     * TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
     * @return The overflow.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp getOverflow();

    /**
     * <pre>
     * Extra spacing to add between each line. This will apply to all
     * spans regardless of their font size. This is in addition to original
     * line heights. Note that this won't add any additional space before the
     * first line or after the last line. The default value is zero and negative
     * values will decrease the interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
     * @return Whether the lineSpacing field is set.
     */
    boolean hasLineSpacing();
    /**
     * <pre>
     * Extra spacing to add between each line. This will apply to all
     * spans regardless of their font size. This is in addition to original
     * line heights. Note that this won't add any additional space before the
     * first line or after the last line. The default value is zero and negative
     * values will decrease the interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
     * @return The lineSpacing.
     */
    androidx.wear.protolayout.proto.DimensionProto.SpProp getLineSpacing();

    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     * @return Whether the lineHeight field is set.
     */
    boolean hasLineHeight();
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     * @return The lineHeight.
     */
    androidx.wear.protolayout.proto.DimensionProto.SpProp getLineHeight();
  }
  /**
   * <pre>
   * A container of Span elements. Currently, this supports SpanImage and SpanText
   * elements, where each individual Span can have different styling applied to it
   * but the resulting text will flow naturally. This allows sections of a
   * paragraph of text to have different styling applied to it, for example,
   * making one or two words bold or italic.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Spannable}
   */
  public  static final class Spannable extends
      com.google.protobuf.GeneratedMessageLite<
          Spannable, Spannable.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Spannable)
      SpannableOrBuilder {
    private Spannable() {
      spans_ = emptyProtobufList();
    }
    public static final int SPANS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.Span> spans_;
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    @java.lang.Override
    public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.Span> getSpansList() {
      return spans_;
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    public java.util.List<? extends androidx.wear.protolayout.proto.LayoutElementProto.SpanOrBuilder> 
        getSpansOrBuilderList() {
      return spans_;
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    @java.lang.Override
    public int getSpansCount() {
      return spans_.size();
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Span getSpans(int index) {
      return spans_.get(index);
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    public androidx.wear.protolayout.proto.LayoutElementProto.SpanOrBuilder getSpansOrBuilder(
        int index) {
      return spans_.get(index);
    }
    private void ensureSpansIsMutable() {
      com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.Span> tmp = spans_;
      if (!tmp.isModifiable()) {
        spans_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    private void setSpans(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.Span value) {
      value.getClass();
  ensureSpansIsMutable();
      spans_.set(index, value);
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    private void addSpans(androidx.wear.protolayout.proto.LayoutElementProto.Span value) {
      value.getClass();
  ensureSpansIsMutable();
      spans_.add(value);
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    private void addSpans(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.Span value) {
      value.getClass();
  ensureSpansIsMutable();
      spans_.add(index, value);
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    private void addAllSpans(
        java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.Span> values) {
      ensureSpansIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, spans_);
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    private void clearSpans() {
      spans_ = emptyProtobufList();
    }
    /**
     * <pre>
     * The Span elements that form this Spannable.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
     */
    private void removeSpans(int index) {
      ensureSpansIsMutable();
      spans_.remove(index);
    }

    public static final int MODIFIERS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int MAX_LINES_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.TypesProto.Int32Prop maxLines_;
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Spannable
     * element. If not defined, the Spannable element will be treated as a
     * single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
     */
    @java.lang.Override
    public boolean hasMaxLines() {
      return maxLines_ != null;
    }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Spannable
     * element. If not defined, the Spannable element will be treated as a
     * single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.Int32Prop getMaxLines() {
      return maxLines_ == null ? androidx.wear.protolayout.proto.TypesProto.Int32Prop.getDefaultInstance() : maxLines_;
    }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Spannable
     * element. If not defined, the Spannable element will be treated as a
     * single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
     */
    private void setMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
      value.getClass();
  maxLines_ = value;
      
      }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Spannable
     * element. If not defined, the Spannable element will be treated as a
     * single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
      value.getClass();
  if (maxLines_ != null &&
          maxLines_ != androidx.wear.protolayout.proto.TypesProto.Int32Prop.getDefaultInstance()) {
        maxLines_ =
          androidx.wear.protolayout.proto.TypesProto.Int32Prop.newBuilder(maxLines_).mergeFrom(value).buildPartial();
      } else {
        maxLines_ = value;
      }
      
    }
    /**
     * <pre>
     * The maximum number of lines that can be represented by the Spannable
     * element. If not defined, the Spannable element will be treated as a
     * single-line element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
     */
    private void clearMaxLines() {  maxLines_ = null;
      
    }

    public static final int MULTILINE_ALIGNMENT_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp multilineAlignment_;
    /**
     * <pre>
     * Alignment of the Spannable content within its bounds. Note that a Spannable
     * element will size itself to wrap its contents, so this option is
     * meaningless for single-line content (for that, use alignment of the outer
     * container). For multi-line content, however, this will set the alignment of
     * lines relative to the Spannable element bounds. If not defined, defaults to
     * TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
     */
    @java.lang.Override
    public boolean hasMultilineAlignment() {
      return multilineAlignment_ != null;
    }
    /**
     * <pre>
     * Alignment of the Spannable content within its bounds. Note that a Spannable
     * element will size itself to wrap its contents, so this option is
     * meaningless for single-line content (for that, use alignment of the outer
     * container). For multi-line content, however, this will set the alignment of
     * lines relative to the Spannable element bounds. If not defined, defaults to
     * TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getMultilineAlignment() {
      return multilineAlignment_ == null ? androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.getDefaultInstance() : multilineAlignment_;
    }
    /**
     * <pre>
     * Alignment of the Spannable content within its bounds. Note that a Spannable
     * element will size itself to wrap its contents, so this option is
     * meaningless for single-line content (for that, use alignment of the outer
     * container). For multi-line content, however, this will set the alignment of
     * lines relative to the Spannable element bounds. If not defined, defaults to
     * TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
     */
    private void setMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
      value.getClass();
  multilineAlignment_ = value;
      
      }
    /**
     * <pre>
     * Alignment of the Spannable content within its bounds. Note that a Spannable
     * element will size itself to wrap its contents, so this option is
     * meaningless for single-line content (for that, use alignment of the outer
     * container). For multi-line content, however, this will set the alignment of
     * lines relative to the Spannable element bounds. If not defined, defaults to
     * TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
      value.getClass();
  if (multilineAlignment_ != null &&
          multilineAlignment_ != androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.getDefaultInstance()) {
        multilineAlignment_ =
          androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.newBuilder(multilineAlignment_).mergeFrom(value).buildPartial();
      } else {
        multilineAlignment_ = value;
      }
      
    }
    /**
     * <pre>
     * Alignment of the Spannable content within its bounds. Note that a Spannable
     * element will size itself to wrap its contents, so this option is
     * meaningless for single-line content (for that, use alignment of the outer
     * container). For multi-line content, however, this will set the alignment of
     * lines relative to the Spannable element bounds. If not defined, defaults to
     * TEXT_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
     */
    private void clearMultilineAlignment() {  multilineAlignment_ = null;
      
    }

    public static final int OVERFLOW_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp overflow_;
    /**
     * <pre>
     * How to handle content which overflows the bound of the Spannable element.
     * A Spannable element will grow as large as possible inside its parent
     * container (while still respecting max_lines); if it cannot grow large
     * enough to render all of its content, the content which cannot fit inside
     * its container will  be truncated. If not defined, defaults to
     * TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
     */
    @java.lang.Override
    public boolean hasOverflow() {
      return overflow_ != null;
    }
    /**
     * <pre>
     * How to handle content which overflows the bound of the Spannable element.
     * A Spannable element will grow as large as possible inside its parent
     * container (while still respecting max_lines); if it cannot grow large
     * enough to render all of its content, the content which cannot fit inside
     * its container will  be truncated. If not defined, defaults to
     * TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp getOverflow() {
      return overflow_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.getDefaultInstance() : overflow_;
    }
    /**
     * <pre>
     * How to handle content which overflows the bound of the Spannable element.
     * A Spannable element will grow as large as possible inside its parent
     * container (while still respecting max_lines); if it cannot grow large
     * enough to render all of its content, the content which cannot fit inside
     * its container will  be truncated. If not defined, defaults to
     * TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
     */
    private void setOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
      value.getClass();
  overflow_ = value;
      
      }
    /**
     * <pre>
     * How to handle content which overflows the bound of the Spannable element.
     * A Spannable element will grow as large as possible inside its parent
     * container (while still respecting max_lines); if it cannot grow large
     * enough to render all of its content, the content which cannot fit inside
     * its container will  be truncated. If not defined, defaults to
     * TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
      value.getClass();
  if (overflow_ != null &&
          overflow_ != androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.getDefaultInstance()) {
        overflow_ =
          androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.newBuilder(overflow_).mergeFrom(value).buildPartial();
      } else {
        overflow_ = value;
      }
      
    }
    /**
     * <pre>
     * How to handle content which overflows the bound of the Spannable element.
     * A Spannable element will grow as large as possible inside its parent
     * container (while still respecting max_lines); if it cannot grow large
     * enough to render all of its content, the content which cannot fit inside
     * its container will  be truncated. If not defined, defaults to
     * TEXT_OVERFLOW_TRUNCATE.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
     */
    private void clearOverflow() {  overflow_ = null;
      
    }

    public static final int LINE_SPACING_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.DimensionProto.SpProp lineSpacing_;
    /**
     * <pre>
     * Extra spacing to add between each line. This will apply to all
     * spans regardless of their font size. This is in addition to original
     * line heights. Note that this won't add any additional space before the
     * first line or after the last line. The default value is zero and negative
     * values will decrease the interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
     */
    @java.lang.Override
    public boolean hasLineSpacing() {
      return lineSpacing_ != null;
    }
    /**
     * <pre>
     * Extra spacing to add between each line. This will apply to all
     * spans regardless of their font size. This is in addition to original
     * line heights. Note that this won't add any additional space before the
     * first line or after the last line. The default value is zero and negative
     * values will decrease the interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.SpProp getLineSpacing() {
      return lineSpacing_ == null ? androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance() : lineSpacing_;
    }
    /**
     * <pre>
     * Extra spacing to add between each line. This will apply to all
     * spans regardless of their font size. This is in addition to original
     * line heights. Note that this won't add any additional space before the
     * first line or after the last line. The default value is zero and negative
     * values will decrease the interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
     */
    private void setLineSpacing(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  lineSpacing_ = value;
      
      }
    /**
     * <pre>
     * Extra spacing to add between each line. This will apply to all
     * spans regardless of their font size. This is in addition to original
     * line heights. Note that this won't add any additional space before the
     * first line or after the last line. The default value is zero and negative
     * values will decrease the interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLineSpacing(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  if (lineSpacing_ != null &&
          lineSpacing_ != androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance()) {
        lineSpacing_ =
          androidx.wear.protolayout.proto.DimensionProto.SpProp.newBuilder(lineSpacing_).mergeFrom(value).buildPartial();
      } else {
        lineSpacing_ = value;
      }
      
    }
    /**
     * <pre>
     * Extra spacing to add between each line. This will apply to all
     * spans regardless of their font size. This is in addition to original
     * line heights. Note that this won't add any additional space before the
     * first line or after the last line. The default value is zero and negative
     * values will decrease the interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
     */
    private void clearLineSpacing() {  lineSpacing_ = null;
      
    }

    public static final int LINE_HEIGHT_FIELD_NUMBER = 7;
    private androidx.wear.protolayout.proto.DimensionProto.SpProp lineHeight_;
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    @java.lang.Override
    public boolean hasLineHeight() {
      return lineHeight_ != null;
    }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.SpProp getLineHeight() {
      return lineHeight_ == null ? androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance() : lineHeight_;
    }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    private void setLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  lineHeight_ = value;
      
      }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
      value.getClass();
  if (lineHeight_ != null &&
          lineHeight_ != androidx.wear.protolayout.proto.DimensionProto.SpProp.getDefaultInstance()) {
        lineHeight_ =
          androidx.wear.protolayout.proto.DimensionProto.SpProp.newBuilder(lineHeight_).mergeFrom(value).buildPartial();
      } else {
        lineHeight_ = value;
      }
      
    }
    /**
     * <pre>
     * The explicit height between lines of text. This is equivalent to the
     * vertical distance between subsequent baselines. If not specified, defaults
     * the font's recommended interline spacing.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
     */
    private void clearLineHeight() {  lineHeight_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable 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 androidx.wear.protolayout.proto.LayoutElementProto.Spannable parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable 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 androidx.wear.protolayout.proto.LayoutElementProto.Spannable parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable 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 androidx.wear.protolayout.proto.LayoutElementProto.Spannable parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable 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 androidx.wear.protolayout.proto.LayoutElementProto.Spannable parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable 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(androidx.wear.protolayout.proto.LayoutElementProto.Spannable prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A container of Span elements. Currently, this supports SpanImage and SpanText
     * elements, where each individual Span can have different styling applied to it
     * but the resulting text will flow naturally. This allows sections of a
     * paragraph of text to have different styling applied to it, for example,
     * making one or two words bold or italic.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Spannable}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Spannable, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Spannable)
        androidx.wear.protolayout.proto.LayoutElementProto.SpannableOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Spannable.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.Span> getSpansList() {
        return java.util.Collections.unmodifiableList(
            instance.getSpansList());
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      @java.lang.Override
      public int getSpansCount() {
        return instance.getSpansCount();
      }/**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Span getSpans(int index) {
        return instance.getSpans(index);
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder setSpans(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.Span value) {
        copyOnWrite();
        instance.setSpans(index, value);
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder setSpans(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.Span.Builder builderForValue) {
        copyOnWrite();
        instance.setSpans(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder addSpans(androidx.wear.protolayout.proto.LayoutElementProto.Span value) {
        copyOnWrite();
        instance.addSpans(value);
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder addSpans(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.Span value) {
        copyOnWrite();
        instance.addSpans(index, value);
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder addSpans(
          androidx.wear.protolayout.proto.LayoutElementProto.Span.Builder builderForValue) {
        copyOnWrite();
        instance.addSpans(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder addSpans(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.Span.Builder builderForValue) {
        copyOnWrite();
        instance.addSpans(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder addAllSpans(
          java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.Span> values) {
        copyOnWrite();
        instance.addAllSpans(values);
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder clearSpans() {
        copyOnWrite();
        instance.clearSpans();
        return this;
      }
      /**
       * <pre>
       * The Span elements that form this Spannable.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.Span spans = 1;</code>
       */
      public Builder removeSpans(int index) {
        copyOnWrite();
        instance.removeSpans(index);
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 2;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * The maximum number of lines that can be represented by the Spannable
       * element. If not defined, the Spannable element will be treated as a
       * single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
       */
      @java.lang.Override
      public boolean hasMaxLines() {
        return instance.hasMaxLines();
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Spannable
       * element. If not defined, the Spannable element will be treated as a
       * single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.Int32Prop getMaxLines() {
        return instance.getMaxLines();
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Spannable
       * element. If not defined, the Spannable element will be treated as a
       * single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
       */
      public Builder setMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
        copyOnWrite();
        instance.setMaxLines(value);
        return this;
        }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Spannable
       * element. If not defined, the Spannable element will be treated as a
       * single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
       */
      public Builder setMaxLines(
          androidx.wear.protolayout.proto.TypesProto.Int32Prop.Builder builderForValue) {
        copyOnWrite();
        instance.setMaxLines(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Spannable
       * element. If not defined, the Spannable element will be treated as a
       * single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
       */
      public Builder mergeMaxLines(androidx.wear.protolayout.proto.TypesProto.Int32Prop value) {
        copyOnWrite();
        instance.mergeMaxLines(value);
        return this;
      }
      /**
       * <pre>
       * The maximum number of lines that can be represented by the Spannable
       * element. If not defined, the Spannable element will be treated as a
       * single-line element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Int32Prop max_lines = 3;</code>
       */
      public Builder clearMaxLines() {  copyOnWrite();
        instance.clearMaxLines();
        return this;
      }

      /**
       * <pre>
       * Alignment of the Spannable content within its bounds. Note that a Spannable
       * element will size itself to wrap its contents, so this option is
       * meaningless for single-line content (for that, use alignment of the outer
       * container). For multi-line content, however, this will set the alignment of
       * lines relative to the Spannable element bounds. If not defined, defaults to
       * TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
       */
      @java.lang.Override
      public boolean hasMultilineAlignment() {
        return instance.hasMultilineAlignment();
      }
      /**
       * <pre>
       * Alignment of the Spannable content within its bounds. Note that a Spannable
       * element will size itself to wrap its contents, so this option is
       * meaningless for single-line content (for that, use alignment of the outer
       * container). For multi-line content, however, this will set the alignment of
       * lines relative to the Spannable element bounds. If not defined, defaults to
       * TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getMultilineAlignment() {
        return instance.getMultilineAlignment();
      }
      /**
       * <pre>
       * Alignment of the Spannable content within its bounds. Note that a Spannable
       * element will size itself to wrap its contents, so this option is
       * meaningless for single-line content (for that, use alignment of the outer
       * container). For multi-line content, however, this will set the alignment of
       * lines relative to the Spannable element bounds. If not defined, defaults to
       * TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
       */
      public Builder setMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
        copyOnWrite();
        instance.setMultilineAlignment(value);
        return this;
        }
      /**
       * <pre>
       * Alignment of the Spannable content within its bounds. Note that a Spannable
       * element will size itself to wrap its contents, so this option is
       * meaningless for single-line content (for that, use alignment of the outer
       * container). For multi-line content, however, this will set the alignment of
       * lines relative to the Spannable element bounds. If not defined, defaults to
       * TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
       */
      public Builder setMultilineAlignment(
          androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setMultilineAlignment(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Alignment of the Spannable content within its bounds. Note that a Spannable
       * element will size itself to wrap its contents, so this option is
       * meaningless for single-line content (for that, use alignment of the outer
       * container). For multi-line content, however, this will set the alignment of
       * lines relative to the Spannable element bounds. If not defined, defaults to
       * TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
       */
      public Builder mergeMultilineAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
        copyOnWrite();
        instance.mergeMultilineAlignment(value);
        return this;
      }
      /**
       * <pre>
       * Alignment of the Spannable content within its bounds. Note that a Spannable
       * element will size itself to wrap its contents, so this option is
       * meaningless for single-line content (for that, use alignment of the outer
       * container). For multi-line content, however, this will set the alignment of
       * lines relative to the Spannable element bounds. If not defined, defaults to
       * TEXT_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp multiline_alignment = 4;</code>
       */
      public Builder clearMultilineAlignment() {  copyOnWrite();
        instance.clearMultilineAlignment();
        return this;
      }

      /**
       * <pre>
       * How to handle content which overflows the bound of the Spannable element.
       * A Spannable element will grow as large as possible inside its parent
       * container (while still respecting max_lines); if it cannot grow large
       * enough to render all of its content, the content which cannot fit inside
       * its container will  be truncated. If not defined, defaults to
       * TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
       */
      @java.lang.Override
      public boolean hasOverflow() {
        return instance.hasOverflow();
      }
      /**
       * <pre>
       * How to handle content which overflows the bound of the Spannable element.
       * A Spannable element will grow as large as possible inside its parent
       * container (while still respecting max_lines); if it cannot grow large
       * enough to render all of its content, the content which cannot fit inside
       * its container will  be truncated. If not defined, defaults to
       * TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp getOverflow() {
        return instance.getOverflow();
      }
      /**
       * <pre>
       * How to handle content which overflows the bound of the Spannable element.
       * A Spannable element will grow as large as possible inside its parent
       * container (while still respecting max_lines); if it cannot grow large
       * enough to render all of its content, the content which cannot fit inside
       * its container will  be truncated. If not defined, defaults to
       * TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
       */
      public Builder setOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
        copyOnWrite();
        instance.setOverflow(value);
        return this;
        }
      /**
       * <pre>
       * How to handle content which overflows the bound of the Spannable element.
       * A Spannable element will grow as large as possible inside its parent
       * container (while still respecting max_lines); if it cannot grow large
       * enough to render all of its content, the content which cannot fit inside
       * its container will  be truncated. If not defined, defaults to
       * TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
       */
      public Builder setOverflow(
          androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp.Builder builderForValue) {
        copyOnWrite();
        instance.setOverflow(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * How to handle content which overflows the bound of the Spannable element.
       * A Spannable element will grow as large as possible inside its parent
       * container (while still respecting max_lines); if it cannot grow large
       * enough to render all of its content, the content which cannot fit inside
       * its container will  be truncated. If not defined, defaults to
       * TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
       */
      public Builder mergeOverflow(androidx.wear.protolayout.proto.LayoutElementProto.TextOverflowProp value) {
        copyOnWrite();
        instance.mergeOverflow(value);
        return this;
      }
      /**
       * <pre>
       * How to handle content which overflows the bound of the Spannable element.
       * A Spannable element will grow as large as possible inside its parent
       * container (while still respecting max_lines); if it cannot grow large
       * enough to render all of its content, the content which cannot fit inside
       * its container will  be truncated. If not defined, defaults to
       * TEXT_OVERFLOW_TRUNCATE.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TextOverflowProp overflow = 5;</code>
       */
      public Builder clearOverflow() {  copyOnWrite();
        instance.clearOverflow();
        return this;
      }

      /**
       * <pre>
       * Extra spacing to add between each line. This will apply to all
       * spans regardless of their font size. This is in addition to original
       * line heights. Note that this won't add any additional space before the
       * first line or after the last line. The default value is zero and negative
       * values will decrease the interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
       */
      @java.lang.Override
      public boolean hasLineSpacing() {
        return instance.hasLineSpacing();
      }
      /**
       * <pre>
       * Extra spacing to add between each line. This will apply to all
       * spans regardless of their font size. This is in addition to original
       * line heights. Note that this won't add any additional space before the
       * first line or after the last line. The default value is zero and negative
       * values will decrease the interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.SpProp getLineSpacing() {
        return instance.getLineSpacing();
      }
      /**
       * <pre>
       * Extra spacing to add between each line. This will apply to all
       * spans regardless of their font size. This is in addition to original
       * line heights. Note that this won't add any additional space before the
       * first line or after the last line. The default value is zero and negative
       * values will decrease the interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
       */
      public Builder setLineSpacing(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.setLineSpacing(value);
        return this;
        }
      /**
       * <pre>
       * Extra spacing to add between each line. This will apply to all
       * spans regardless of their font size. This is in addition to original
       * line heights. Note that this won't add any additional space before the
       * first line or after the last line. The default value is zero and negative
       * values will decrease the interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
       */
      public Builder setLineSpacing(
          androidx.wear.protolayout.proto.DimensionProto.SpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLineSpacing(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Extra spacing to add between each line. This will apply to all
       * spans regardless of their font size. This is in addition to original
       * line heights. Note that this won't add any additional space before the
       * first line or after the last line. The default value is zero and negative
       * values will decrease the interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
       */
      public Builder mergeLineSpacing(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.mergeLineSpacing(value);
        return this;
      }
      /**
       * <pre>
       * Extra spacing to add between each line. This will apply to all
       * spans regardless of their font size. This is in addition to original
       * line heights. Note that this won't add any additional space before the
       * first line or after the last line. The default value is zero and negative
       * values will decrease the interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_spacing = 6;</code>
       */
      public Builder clearLineSpacing() {  copyOnWrite();
        instance.clearLineSpacing();
        return this;
      }

      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      @java.lang.Override
      public boolean hasLineHeight() {
        return instance.hasLineHeight();
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.SpProp getLineHeight() {
        return instance.getLineHeight();
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder setLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.setLineHeight(value);
        return this;
        }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder setLineHeight(
          androidx.wear.protolayout.proto.DimensionProto.SpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLineHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder mergeLineHeight(androidx.wear.protolayout.proto.DimensionProto.SpProp value) {
        copyOnWrite();
        instance.mergeLineHeight(value);
        return this;
      }
      /**
       * <pre>
       * The explicit height between lines of text. This is equivalent to the
       * vertical distance between subsequent baselines. If not specified, defaults
       * the font's recommended interline spacing.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.SpProp line_height = 7;</code>
       */
      public Builder clearLineHeight() {  copyOnWrite();
        instance.clearLineHeight();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Spannable)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Spannable();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "spans_",
              androidx.wear.protolayout.proto.LayoutElementProto.Span.class,
              "modifiers_",
              "maxLines_",
              "multilineAlignment_",
              "overflow_",
              "lineSpacing_",
              "lineHeight_",
            };
            java.lang.String info =
                "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0001\u0000\u0001\u001b\u0002\t" +
                "\u0003\t\u0004\t\u0005\t\u0006\t\u0007\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Spannable> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Spannable.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Spannable>(
                        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:androidx.wear.protolayout.proto.Spannable)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Spannable DEFAULT_INSTANCE;
    static {
      Spannable defaultInstance = new Spannable();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Spannable.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Spannable getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ColumnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Column)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> 
        getContentsList();
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index);
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    int getContentsCount();

    /**
     * <pre>
     * The horizontal alignment of elements inside this column, if they are
     * narrower than the resulting width of the column. If not defined, defaults
     * to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
     * @return Whether the horizontalAlignment field is set.
     */
    boolean hasHorizontalAlignment();
    /**
     * <pre>
     * The horizontal alignment of elements inside this column, if they are
     * narrower than the resulting width of the column. If not defined, defaults
     * to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
     * @return The horizontalAlignment.
     */
    androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getHorizontalAlignment();

    /**
     * <pre>
     * The width of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     * @return Whether the width field is set.
     */
    boolean hasWidth();
    /**
     * <pre>
     * The width of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     * @return The width.
     */
    androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth();

    /**
     * <pre>
     * The height of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     * @return Whether the height field is set.
     */
    boolean hasHeight();
    /**
     * <pre>
     * The height of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     * @return The height.
     */
    androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();
  }
  /**
   * <pre>
   * A column of elements. Each child element will be laid out vertically, one
   * after another (i.e. stacking down). This element will size itself to the
   * smallest size required to hold all of its children (e.g. if it contains three
   * elements sized 10x10, 20x20 and 30x30, the resulting column will be 30x60).
   * If specified, horizontal_alignment can be used to control the gravity inside
   * the container, affecting the horizontal placement of children whose width are
   * smaller than the resulting column width.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Column}
   */
  public  static final class Column extends
      com.google.protobuf.GeneratedMessageLite<
          Column, Column.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Column)
      ColumnOrBuilder {
    private Column() {
      contents_ = emptyProtobufList();
    }
    public static final int CONTENTS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> contents_;
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> getContentsList() {
      return contents_;
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    public java.util.List<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElementOrBuilder> 
        getContentsOrBuilderList() {
      return contents_;
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public int getContentsCount() {
      return contents_.size();
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index) {
      return contents_.get(index);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElementOrBuilder getContentsOrBuilder(
        int index) {
      return contents_.get(index);
    }
    private void ensureContentsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> tmp = contents_;
      if (!tmp.isModifiable()) {
        contents_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void setContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.set(index, value);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addContents(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(value);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(index, value);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addAllContents(
        java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> values) {
      ensureContentsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, contents_);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void clearContents() {
      contents_ = emptyProtobufList();
    }
    /**
     * <pre>
     * The list of child elements to place inside this Column.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void removeContents(int index) {
      ensureContentsIsMutable();
      contents_.remove(index);
    }

    public static final int HORIZONTAL_ALIGNMENT_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp horizontalAlignment_;
    /**
     * <pre>
     * The horizontal alignment of elements inside this column, if they are
     * narrower than the resulting width of the column. If not defined, defaults
     * to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
     */
    @java.lang.Override
    public boolean hasHorizontalAlignment() {
      return horizontalAlignment_ != null;
    }
    /**
     * <pre>
     * The horizontal alignment of elements inside this column, if they are
     * narrower than the resulting width of the column. If not defined, defaults
     * to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getHorizontalAlignment() {
      return horizontalAlignment_ == null ? androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.getDefaultInstance() : horizontalAlignment_;
    }
    /**
     * <pre>
     * The horizontal alignment of elements inside this column, if they are
     * narrower than the resulting width of the column. If not defined, defaults
     * to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
     */
    private void setHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
      value.getClass();
  horizontalAlignment_ = value;
      
      }
    /**
     * <pre>
     * The horizontal alignment of elements inside this column, if they are
     * narrower than the resulting width of the column. If not defined, defaults
     * to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
      value.getClass();
  if (horizontalAlignment_ != null &&
          horizontalAlignment_ != androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.getDefaultInstance()) {
        horizontalAlignment_ =
          androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.newBuilder(horizontalAlignment_).mergeFrom(value).buildPartial();
      } else {
        horizontalAlignment_ = value;
      }
      
    }
    /**
     * <pre>
     * The horizontal alignment of elements inside this column, if they are
     * narrower than the resulting width of the column. If not defined, defaults
     * to HORIZONTAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
     */
    private void clearHorizontalAlignment() {  horizontalAlignment_ = null;
      
    }

    public static final int WIDTH_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.DimensionProto.ContainerDimension width_;
    /**
     * <pre>
     * The width of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.Override
    public boolean hasWidth() {
      return width_ != null;
    }
    /**
     * <pre>
     * The width of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth() {
      return width_ == null ? androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance() : width_;
    }
    /**
     * <pre>
     * The width of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    private void setWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  width_ = value;
      
      }
    /**
     * <pre>
     * The width of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  if (width_ != null &&
          width_ != androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance()) {
        width_ =
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.newBuilder(width_).mergeFrom(value).buildPartial();
      } else {
        width_ = value;
      }
      
    }
    /**
     * <pre>
     * The width of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    private void clearWidth() {  width_ = null;
      
    }

    public static final int HEIGHT_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.DimensionProto.ContainerDimension height_;
    /**
     * <pre>
     * The height of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    @java.lang.Override
    public boolean hasHeight() {
      return height_ != null;
    }
    /**
     * <pre>
     * The height of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight() {
      return height_ == null ? androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance() : height_;
    }
    /**
     * <pre>
     * The height of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    private void setHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  height_ = value;
      
      }
    /**
     * <pre>
     * The height of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  if (height_ != null &&
          height_ != androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance()) {
        height_ =
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.newBuilder(height_).mergeFrom(value).buildPartial();
      } else {
        height_ = value;
      }
      
    }
    /**
     * <pre>
     * The height of this column. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    private void clearHeight() {  height_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Column parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Column 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 androidx.wear.protolayout.proto.LayoutElementProto.Column parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Column 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 androidx.wear.protolayout.proto.LayoutElementProto.Column parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Column 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 androidx.wear.protolayout.proto.LayoutElementProto.Column parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Column 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 androidx.wear.protolayout.proto.LayoutElementProto.Column parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Column parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Column parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Column 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(androidx.wear.protolayout.proto.LayoutElementProto.Column prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A column of elements. Each child element will be laid out vertically, one
     * after another (i.e. stacking down). This element will size itself to the
     * smallest size required to hold all of its children (e.g. if it contains three
     * elements sized 10x10, 20x20 and 30x30, the resulting column will be 30x60).
     * If specified, horizontal_alignment can be used to control the gravity inside
     * the container, affecting the horizontal placement of children whose width are
     * smaller than the resulting column width.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Column}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Column, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Column)
        androidx.wear.protolayout.proto.LayoutElementProto.ColumnOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Column.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> getContentsList() {
        return java.util.Collections.unmodifiableList(
            instance.getContentsList());
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public int getContentsCount() {
        return instance.getContentsCount();
      }/**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index) {
        return instance.getContents(index);
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.setContents(index, value);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.setContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.addContents(value);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.addContents(index, value);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addAllContents(
          java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> values) {
        copyOnWrite();
        instance.addAllContents(values);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder clearContents() {
        copyOnWrite();
        instance.clearContents();
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Column.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder removeContents(int index) {
        copyOnWrite();
        instance.removeContents(index);
        return this;
      }

      /**
       * <pre>
       * The horizontal alignment of elements inside this column, if they are
       * narrower than the resulting width of the column. If not defined, defaults
       * to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
       */
      @java.lang.Override
      public boolean hasHorizontalAlignment() {
        return instance.hasHorizontalAlignment();
      }
      /**
       * <pre>
       * The horizontal alignment of elements inside this column, if they are
       * narrower than the resulting width of the column. If not defined, defaults
       * to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp getHorizontalAlignment() {
        return instance.getHorizontalAlignment();
      }
      /**
       * <pre>
       * The horizontal alignment of elements inside this column, if they are
       * narrower than the resulting width of the column. If not defined, defaults
       * to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
       */
      public Builder setHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
        copyOnWrite();
        instance.setHorizontalAlignment(value);
        return this;
        }
      /**
       * <pre>
       * The horizontal alignment of elements inside this column, if they are
       * narrower than the resulting width of the column. If not defined, defaults
       * to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
       */
      public Builder setHorizontalAlignment(
          androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setHorizontalAlignment(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The horizontal alignment of elements inside this column, if they are
       * narrower than the resulting width of the column. If not defined, defaults
       * to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
       */
      public Builder mergeHorizontalAlignment(androidx.wear.protolayout.proto.AlignmentProto.HorizontalAlignmentProp value) {
        copyOnWrite();
        instance.mergeHorizontalAlignment(value);
        return this;
      }
      /**
       * <pre>
       * The horizontal alignment of elements inside this column, if they are
       * narrower than the resulting width of the column. If not defined, defaults
       * to HORIZONTAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.HorizontalAlignmentProp horizontal_alignment = 2;</code>
       */
      public Builder clearHorizontalAlignment() {  copyOnWrite();
        instance.clearHorizontalAlignment();
        return this;
      }

      /**
       * <pre>
       * The width of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      @java.lang.Override
      public boolean hasWidth() {
        return instance.hasWidth();
      }
      /**
       * <pre>
       * The width of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth() {
        return instance.getWidth();
      }
      /**
       * <pre>
       * The width of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder setWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.setWidth(value);
        return this;
        }
      /**
       * <pre>
       * The width of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder setWidth(
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The width of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.mergeWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder clearWidth() {  copyOnWrite();
        instance.clearWidth();
        return this;
      }

      /**
       * <pre>
       * The height of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      @java.lang.Override
      public boolean hasHeight() {
        return instance.hasHeight();
      }
      /**
       * <pre>
       * The height of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight() {
        return instance.getHeight();
      }
      /**
       * <pre>
       * The height of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder setHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
        }
      /**
       * <pre>
       * The height of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder setHeight(
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The height of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.mergeHeight(value);
        return this;
      }
      /**
       * <pre>
       * The height of this column. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder clearHeight() {  copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Column)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Column();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "contents_",
              androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.class,
              "horizontalAlignment_",
              "width_",
              "height_",
              "modifiers_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0000\u0001\u0000\u0001\u001b\u0002\t" +
                "\u0003\t\u0004\t\u0005\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Column> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Column.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Column>(
                        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:androidx.wear.protolayout.proto.Column)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Column DEFAULT_INSTANCE;
    static {
      Column defaultInstance = new Column();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Column.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Column getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface RowOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Row)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> 
        getContentsList();
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index);
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    int getContentsCount();

    /**
     * <pre>
     * The vertical alignment of elements inside this row, if they are narrower
     * than the resulting height of the row. If not defined, defaults to
     * VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
     * @return Whether the verticalAlignment field is set.
     */
    boolean hasVerticalAlignment();
    /**
     * <pre>
     * The vertical alignment of elements inside this row, if they are narrower
     * than the resulting height of the row. If not defined, defaults to
     * VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
     * @return The verticalAlignment.
     */
    androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlignment();

    /**
     * <pre>
     * The width of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     * @return Whether the width field is set.
     */
    boolean hasWidth();
    /**
     * <pre>
     * The width of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     * @return The width.
     */
    androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth();

    /**
     * <pre>
     * The height of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     * @return Whether the height field is set.
     */
    boolean hasHeight();
    /**
     * <pre>
     * The height of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     * @return The height.
     */
    androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();
  }
  /**
   * <pre>
   * A row of elements. Each child will be laid out horizontally, one after
   * another (i.e. stacking to the right). This element will size itself to the
   * smallest size required to hold all of its children (e.g. if it contains three
   * elements sized 10x10, 20x20 and 30x30, the resulting row will be 60x30).
   * If specified, vertical_alignment can be used to control the gravity inside
   * the container, affecting the vertical placement of children whose width are
   * smaller than the resulting row height.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Row}
   */
  public  static final class Row extends
      com.google.protobuf.GeneratedMessageLite<
          Row, Row.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Row)
      RowOrBuilder {
    private Row() {
      contents_ = emptyProtobufList();
    }
    public static final int CONTENTS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> contents_;
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> getContentsList() {
      return contents_;
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    public java.util.List<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElementOrBuilder> 
        getContentsOrBuilderList() {
      return contents_;
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public int getContentsCount() {
      return contents_.size();
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index) {
      return contents_.get(index);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElementOrBuilder getContentsOrBuilder(
        int index) {
      return contents_.get(index);
    }
    private void ensureContentsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> tmp = contents_;
      if (!tmp.isModifiable()) {
        contents_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void setContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.set(index, value);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addContents(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(value);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(index, value);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void addAllContents(
        java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> values) {
      ensureContentsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, contents_);
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void clearContents() {
      contents_ = emptyProtobufList();
    }
    /**
     * <pre>
     * The list of child elements to place inside this Row.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
     */
    private void removeContents(int index) {
      ensureContentsIsMutable();
      contents_.remove(index);
    }

    public static final int VERTICAL_ALIGNMENT_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp verticalAlignment_;
    /**
     * <pre>
     * The vertical alignment of elements inside this row, if they are narrower
     * than the resulting height of the row. If not defined, defaults to
     * VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
     */
    @java.lang.Override
    public boolean hasVerticalAlignment() {
      return verticalAlignment_ != null;
    }
    /**
     * <pre>
     * The vertical alignment of elements inside this row, if they are narrower
     * than the resulting height of the row. If not defined, defaults to
     * VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlignment() {
      return verticalAlignment_ == null ? androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.getDefaultInstance() : verticalAlignment_;
    }
    /**
     * <pre>
     * The vertical alignment of elements inside this row, if they are narrower
     * than the resulting height of the row. If not defined, defaults to
     * VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
     */
    private void setVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
      value.getClass();
  verticalAlignment_ = value;
      
      }
    /**
     * <pre>
     * The vertical alignment of elements inside this row, if they are narrower
     * than the resulting height of the row. If not defined, defaults to
     * VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
      value.getClass();
  if (verticalAlignment_ != null &&
          verticalAlignment_ != androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.getDefaultInstance()) {
        verticalAlignment_ =
          androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.newBuilder(verticalAlignment_).mergeFrom(value).buildPartial();
      } else {
        verticalAlignment_ = value;
      }
      
    }
    /**
     * <pre>
     * The vertical alignment of elements inside this row, if they are narrower
     * than the resulting height of the row. If not defined, defaults to
     * VERTICAL_ALIGN_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
     */
    private void clearVerticalAlignment() {  verticalAlignment_ = null;
      
    }

    public static final int WIDTH_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.DimensionProto.ContainerDimension width_;
    /**
     * <pre>
     * The width of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.Override
    public boolean hasWidth() {
      return width_ != null;
    }
    /**
     * <pre>
     * The width of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth() {
      return width_ == null ? androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance() : width_;
    }
    /**
     * <pre>
     * The width of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    private void setWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  width_ = value;
      
      }
    /**
     * <pre>
     * The width of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  if (width_ != null &&
          width_ != androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance()) {
        width_ =
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.newBuilder(width_).mergeFrom(value).buildPartial();
      } else {
        width_ = value;
      }
      
    }
    /**
     * <pre>
     * The width of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
     */
    private void clearWidth() {  width_ = null;
      
    }

    public static final int HEIGHT_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.DimensionProto.ContainerDimension height_;
    /**
     * <pre>
     * The height of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    @java.lang.Override
    public boolean hasHeight() {
      return height_ != null;
    }
    /**
     * <pre>
     * The height of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight() {
      return height_ == null ? androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance() : height_;
    }
    /**
     * <pre>
     * The height of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    private void setHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  height_ = value;
      
      }
    /**
     * <pre>
     * The height of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
      value.getClass();
  if (height_ != null &&
          height_ != androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.getDefaultInstance()) {
        height_ =
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.newBuilder(height_).mergeFrom(value).buildPartial();
      } else {
        height_ = value;
      }
      
    }
    /**
     * <pre>
     * The height of this row. If not defined, this will size itself to fit
     * all of its children (i.e. a WrappedDimension).
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
     */
    private void clearHeight() {  height_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Row parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Row 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 androidx.wear.protolayout.proto.LayoutElementProto.Row parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Row 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 androidx.wear.protolayout.proto.LayoutElementProto.Row parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Row 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 androidx.wear.protolayout.proto.LayoutElementProto.Row parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Row 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 androidx.wear.protolayout.proto.LayoutElementProto.Row parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Row parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Row parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Row 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(androidx.wear.protolayout.proto.LayoutElementProto.Row prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A row of elements. Each child will be laid out horizontally, one after
     * another (i.e. stacking to the right). This element will size itself to the
     * smallest size required to hold all of its children (e.g. if it contains three
     * elements sized 10x10, 20x20 and 30x30, the resulting row will be 60x30).
     * If specified, vertical_alignment can be used to control the gravity inside
     * the container, affecting the vertical placement of children whose width are
     * smaller than the resulting row height.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Row}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Row, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Row)
        androidx.wear.protolayout.proto.LayoutElementProto.RowOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Row.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> getContentsList() {
        return java.util.Collections.unmodifiableList(
            instance.getContentsList());
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public int getContentsCount() {
        return instance.getContentsCount();
      }/**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContents(int index) {
        return instance.getContents(index);
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.setContents(index, value);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.setContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.addContents(value);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.addContents(index, value);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder addAllContents(
          java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> values) {
        copyOnWrite();
        instance.addAllContents(values);
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder clearContents() {
        copyOnWrite();
        instance.clearContents();
        return this;
      }
      /**
       * <pre>
       * The list of child elements to place inside this Row.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.LayoutElement contents = 1;</code>
       */
      public Builder removeContents(int index) {
        copyOnWrite();
        instance.removeContents(index);
        return this;
      }

      /**
       * <pre>
       * The vertical alignment of elements inside this row, if they are narrower
       * than the resulting height of the row. If not defined, defaults to
       * VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
       */
      @java.lang.Override
      public boolean hasVerticalAlignment() {
        return instance.hasVerticalAlignment();
      }
      /**
       * <pre>
       * The vertical alignment of elements inside this row, if they are narrower
       * than the resulting height of the row. If not defined, defaults to
       * VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlignment() {
        return instance.getVerticalAlignment();
      }
      /**
       * <pre>
       * The vertical alignment of elements inside this row, if they are narrower
       * than the resulting height of the row. If not defined, defaults to
       * VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
       */
      public Builder setVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
        copyOnWrite();
        instance.setVerticalAlignment(value);
        return this;
        }
      /**
       * <pre>
       * The vertical alignment of elements inside this row, if they are narrower
       * than the resulting height of the row. If not defined, defaults to
       * VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
       */
      public Builder setVerticalAlignment(
          androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setVerticalAlignment(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The vertical alignment of elements inside this row, if they are narrower
       * than the resulting height of the row. If not defined, defaults to
       * VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
       */
      public Builder mergeVerticalAlignment(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
        copyOnWrite();
        instance.mergeVerticalAlignment(value);
        return this;
      }
      /**
       * <pre>
       * The vertical alignment of elements inside this row, if they are narrower
       * than the resulting height of the row. If not defined, defaults to
       * VERTICAL_ALIGN_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_alignment = 2;</code>
       */
      public Builder clearVerticalAlignment() {  copyOnWrite();
        instance.clearVerticalAlignment();
        return this;
      }

      /**
       * <pre>
       * The width of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      @java.lang.Override
      public boolean hasWidth() {
        return instance.hasWidth();
      }
      /**
       * <pre>
       * The width of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getWidth() {
        return instance.getWidth();
      }
      /**
       * <pre>
       * The width of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder setWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.setWidth(value);
        return this;
        }
      /**
       * <pre>
       * The width of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder setWidth(
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setWidth(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The width of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder mergeWidth(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.mergeWidth(value);
        return this;
      }
      /**
       * <pre>
       * The width of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension width = 3;</code>
       */
      public Builder clearWidth() {  copyOnWrite();
        instance.clearWidth();
        return this;
      }

      /**
       * <pre>
       * The height of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      @java.lang.Override
      public boolean hasHeight() {
        return instance.hasHeight();
      }
      /**
       * <pre>
       * The height of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ContainerDimension getHeight() {
        return instance.getHeight();
      }
      /**
       * <pre>
       * The height of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder setHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
        }
      /**
       * <pre>
       * The height of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder setHeight(
          androidx.wear.protolayout.proto.DimensionProto.ContainerDimension.Builder builderForValue) {
        copyOnWrite();
        instance.setHeight(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The height of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder mergeHeight(androidx.wear.protolayout.proto.DimensionProto.ContainerDimension value) {
        copyOnWrite();
        instance.mergeHeight(value);
        return this;
      }
      /**
       * <pre>
       * The height of this row. If not defined, this will size itself to fit
       * all of its children (i.e. a WrappedDimension).
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ContainerDimension height = 4;</code>
       */
      public Builder clearHeight() {  copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Row)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Row();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "contents_",
              androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.class,
              "verticalAlignment_",
              "width_",
              "height_",
              "modifiers_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0000\u0001\u0000\u0001\u001b\u0002\t" +
                "\u0003\t\u0004\t\u0005\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Row> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Row.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Row>(
                        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:androidx.wear.protolayout.proto.Row)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Row DEFAULT_INSTANCE;
    static {
      Row defaultInstance = new Row();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Row.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Row getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ArcOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Arc)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> 
        getContentsList();
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement getContents(int index);
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    int getContentsCount();

    /**
     * <pre>
     * The angle for the anchor, used with anchor_type to determine where to draw
     * children. Note that 0 degrees is the 12 o clock position on a device, and
     * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
     * Values do not have to be clamped to the range 0-360; values less than 0
     * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
     * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
     * @return Whether the anchorAngle field is set.
     */
    boolean hasAnchorAngle();
    /**
     * <pre>
     * The angle for the anchor, used with anchor_type to determine where to draw
     * children. Note that 0 degrees is the 12 o clock position on a device, and
     * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
     * Values do not have to be clamped to the range 0-360; values less than 0
     * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
     * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
     * @return The anchorAngle.
     */
    androidx.wear.protolayout.proto.DimensionProto.DegreesProp getAnchorAngle();

    /**
     * <pre>
     * How to align the contents of this container relative to anchor_angle. If
     * not defined, defaults to ARC_ANCHOR_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
     * @return Whether the anchorType field is set.
     */
    boolean hasAnchorType();
    /**
     * <pre>
     * How to align the contents of this container relative to anchor_angle. If
     * not defined, defaults to ARC_ANCHOR_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
     * @return The anchorType.
     */
    androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp getAnchorType();

    /**
     * <pre>
     * Vertical alignment of elements within the arc. If the Arc's thickness is
     * larger than the thickness of the element being drawn, this controls whether
     * the element should be drawn towards the inner or outer edge of the arc, or
     * drawn in the center.
     * If not defined, defaults to VERTICAL_ALIGN_CENTER
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
     * @return Whether the verticalAlign field is set.
     */
    boolean hasVerticalAlign();
    /**
     * <pre>
     * Vertical alignment of elements within the arc. If the Arc's thickness is
     * larger than the thickness of the element being drawn, this controls whether
     * the element should be drawn towards the inner or outer edge of the arc, or
     * drawn in the center.
     * If not defined, defaults to VERTICAL_ALIGN_CENTER
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
     * @return The verticalAlign.
     */
    androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlign();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers();

    /**
     * <pre>
     * The target angle that will be used by the layout when expanding child
     * elements. NB a value of zero is interpreted to mean 360 degrees. This
     * target may not be achievable if other non-expandable elements bring us past
     * this value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
     * @return Whether the maxAngle field is set.
     */
    boolean hasMaxAngle();
    /**
     * <pre>
     * The target angle that will be used by the layout when expanding child
     * elements. NB a value of zero is interpreted to mean 360 degrees. This
     * target may not be achievable if other non-expandable elements bring us past
     * this value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
     * @return The maxAngle.
     */
    androidx.wear.protolayout.proto.DimensionProto.DegreesProp getMaxAngle();
  }
  /**
   * <pre>
   * An arc container. This container will fill itself to a circle, which fits
   * inside its parent container, and all of its children will be placed on that
   * circle. The fields anchor_angle and anchor_type can be used to specify where
   * to draw children within this circle.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Arc}
   */
  public  static final class Arc extends
      com.google.protobuf.GeneratedMessageLite<
          Arc, Arc.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Arc)
      ArcOrBuilder {
    private Arc() {
      contents_ = emptyProtobufList();
    }
    public static final int CONTENTS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> contents_;
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> getContentsList() {
      return contents_;
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    public java.util.List<? extends androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElementOrBuilder> 
        getContentsOrBuilderList() {
      return contents_;
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public int getContentsCount() {
      return contents_.size();
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement getContents(int index) {
      return contents_.get(index);
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    public androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElementOrBuilder getContentsOrBuilder(
        int index) {
      return contents_.get(index);
    }
    private void ensureContentsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> tmp = contents_;
      if (!tmp.isModifiable()) {
        contents_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    private void setContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.set(index, value);
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    private void addContents(androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(value);
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    private void addContents(
        int index, androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement value) {
      value.getClass();
  ensureContentsIsMutable();
      contents_.add(index, value);
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    private void addAllContents(
        java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> values) {
      ensureContentsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, contents_);
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    private void clearContents() {
      contents_ = emptyProtobufList();
    }
    /**
     * <pre>
     * Contents of this container.
     * </pre>
     *
     * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
     */
    private void removeContents(int index) {
      ensureContentsIsMutable();
      contents_.remove(index);
    }

    public static final int ANCHOR_ANGLE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.DegreesProp anchorAngle_;
    /**
     * <pre>
     * The angle for the anchor, used with anchor_type to determine where to draw
     * children. Note that 0 degrees is the 12 o clock position on a device, and
     * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
     * Values do not have to be clamped to the range 0-360; values less than 0
     * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
     * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
     */
    @java.lang.Override
    public boolean hasAnchorAngle() {
      return anchorAngle_ != null;
    }
    /**
     * <pre>
     * The angle for the anchor, used with anchor_type to determine where to draw
     * children. Note that 0 degrees is the 12 o clock position on a device, and
     * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
     * Values do not have to be clamped to the range 0-360; values less than 0
     * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
     * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getAnchorAngle() {
      return anchorAngle_ == null ? androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance() : anchorAngle_;
    }
    /**
     * <pre>
     * The angle for the anchor, used with anchor_type to determine where to draw
     * children. Note that 0 degrees is the 12 o clock position on a device, and
     * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
     * Values do not have to be clamped to the range 0-360; values less than 0
     * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
     * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
     */
    private void setAnchorAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  anchorAngle_ = value;
      
      }
    /**
     * <pre>
     * The angle for the anchor, used with anchor_type to determine where to draw
     * children. Note that 0 degrees is the 12 o clock position on a device, and
     * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
     * Values do not have to be clamped to the range 0-360; values less than 0
     * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
     * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnchorAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  if (anchorAngle_ != null &&
          anchorAngle_ != androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance()) {
        anchorAngle_ =
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder(anchorAngle_).mergeFrom(value).buildPartial();
      } else {
        anchorAngle_ = value;
      }
      
    }
    /**
     * <pre>
     * The angle for the anchor, used with anchor_type to determine where to draw
     * children. Note that 0 degrees is the 12 o clock position on a device, and
     * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
     * Values do not have to be clamped to the range 0-360; values less than 0
     * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
     * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
     */
    private void clearAnchorAngle() {  anchorAngle_ = null;
      
    }

    public static final int ANCHOR_TYPE_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp anchorType_;
    /**
     * <pre>
     * How to align the contents of this container relative to anchor_angle. If
     * not defined, defaults to ARC_ANCHOR_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
     */
    @java.lang.Override
    public boolean hasAnchorType() {
      return anchorType_ != null;
    }
    /**
     * <pre>
     * How to align the contents of this container relative to anchor_angle. If
     * not defined, defaults to ARC_ANCHOR_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp getAnchorType() {
      return anchorType_ == null ? androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp.getDefaultInstance() : anchorType_;
    }
    /**
     * <pre>
     * How to align the contents of this container relative to anchor_angle. If
     * not defined, defaults to ARC_ANCHOR_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
     */
    private void setAnchorType(androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp value) {
      value.getClass();
  anchorType_ = value;
      
      }
    /**
     * <pre>
     * How to align the contents of this container relative to anchor_angle. If
     * not defined, defaults to ARC_ANCHOR_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnchorType(androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp value) {
      value.getClass();
  if (anchorType_ != null &&
          anchorType_ != androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp.getDefaultInstance()) {
        anchorType_ =
          androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp.newBuilder(anchorType_).mergeFrom(value).buildPartial();
      } else {
        anchorType_ = value;
      }
      
    }
    /**
     * <pre>
     * How to align the contents of this container relative to anchor_angle. If
     * not defined, defaults to ARC_ANCHOR_CENTER.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
     */
    private void clearAnchorType() {  anchorType_ = null;
      
    }

    public static final int VERTICAL_ALIGN_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp verticalAlign_;
    /**
     * <pre>
     * Vertical alignment of elements within the arc. If the Arc's thickness is
     * larger than the thickness of the element being drawn, this controls whether
     * the element should be drawn towards the inner or outer edge of the arc, or
     * drawn in the center.
     * If not defined, defaults to VERTICAL_ALIGN_CENTER
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
     */
    @java.lang.Override
    public boolean hasVerticalAlign() {
      return verticalAlign_ != null;
    }
    /**
     * <pre>
     * Vertical alignment of elements within the arc. If the Arc's thickness is
     * larger than the thickness of the element being drawn, this controls whether
     * the element should be drawn towards the inner or outer edge of the arc, or
     * drawn in the center.
     * If not defined, defaults to VERTICAL_ALIGN_CENTER
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlign() {
      return verticalAlign_ == null ? androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.getDefaultInstance() : verticalAlign_;
    }
    /**
     * <pre>
     * Vertical alignment of elements within the arc. If the Arc's thickness is
     * larger than the thickness of the element being drawn, this controls whether
     * the element should be drawn towards the inner or outer edge of the arc, or
     * drawn in the center.
     * If not defined, defaults to VERTICAL_ALIGN_CENTER
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
     */
    private void setVerticalAlign(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
      value.getClass();
  verticalAlign_ = value;
      
      }
    /**
     * <pre>
     * Vertical alignment of elements within the arc. If the Arc's thickness is
     * larger than the thickness of the element being drawn, this controls whether
     * the element should be drawn towards the inner or outer edge of the arc, or
     * drawn in the center.
     * If not defined, defaults to VERTICAL_ALIGN_CENTER
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeVerticalAlign(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
      value.getClass();
  if (verticalAlign_ != null &&
          verticalAlign_ != androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.getDefaultInstance()) {
        verticalAlign_ =
          androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.newBuilder(verticalAlign_).mergeFrom(value).buildPartial();
      } else {
        verticalAlign_ = value;
      }
      
    }
    /**
     * <pre>
     * Vertical alignment of elements within the arc. If the Arc's thickness is
     * larger than the thickness of the element being drawn, this controls whether
     * the element should be drawn towards the inner or outer edge of the arc, or
     * drawn in the center.
     * If not defined, defaults to VERTICAL_ALIGN_CENTER
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
     */
    private void clearVerticalAlign() {  verticalAlign_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.ModifiersProto.Modifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.Modifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int MAX_ANGLE_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.DimensionProto.DegreesProp maxAngle_;
    /**
     * <pre>
     * The target angle that will be used by the layout when expanding child
     * elements. NB a value of zero is interpreted to mean 360 degrees. This
     * target may not be achievable if other non-expandable elements bring us past
     * this value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
     */
    @java.lang.Override
    public boolean hasMaxAngle() {
      return maxAngle_ != null;
    }
    /**
     * <pre>
     * The target angle that will be used by the layout when expanding child
     * elements. NB a value of zero is interpreted to mean 360 degrees. This
     * target may not be achievable if other non-expandable elements bring us past
     * this value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getMaxAngle() {
      return maxAngle_ == null ? androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance() : maxAngle_;
    }
    /**
     * <pre>
     * The target angle that will be used by the layout when expanding child
     * elements. NB a value of zero is interpreted to mean 360 degrees. This
     * target may not be achievable if other non-expandable elements bring us past
     * this value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
     */
    private void setMaxAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  maxAngle_ = value;
      
      }
    /**
     * <pre>
     * The target angle that will be used by the layout when expanding child
     * elements. NB a value of zero is interpreted to mean 360 degrees. This
     * target may not be achievable if other non-expandable elements bring us past
     * this value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMaxAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  if (maxAngle_ != null &&
          maxAngle_ != androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance()) {
        maxAngle_ =
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder(maxAngle_).mergeFrom(value).buildPartial();
      } else {
        maxAngle_ = value;
      }
      
    }
    /**
     * <pre>
     * The target angle that will be used by the layout when expanding child
     * elements. NB a value of zero is interpreted to mean 360 degrees. This
     * target may not be achievable if other non-expandable elements bring us past
     * this value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
     */
    private void clearMaxAngle() {  maxAngle_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc 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 androidx.wear.protolayout.proto.LayoutElementProto.Arc parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc 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 androidx.wear.protolayout.proto.LayoutElementProto.Arc parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc 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 androidx.wear.protolayout.proto.LayoutElementProto.Arc parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc 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 androidx.wear.protolayout.proto.LayoutElementProto.Arc parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc 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(androidx.wear.protolayout.proto.LayoutElementProto.Arc prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An arc container. This container will fill itself to a circle, which fits
     * inside its parent container, and all of its children will be placed on that
     * circle. The fields anchor_angle and anchor_type can be used to specify where
     * to draw children within this circle.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Arc}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Arc, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Arc)
        androidx.wear.protolayout.proto.LayoutElementProto.ArcOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Arc.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> getContentsList() {
        return java.util.Collections.unmodifiableList(
            instance.getContentsList());
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public int getContentsCount() {
        return instance.getContentsCount();
      }/**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement getContents(int index) {
        return instance.getContents(index);
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement value) {
        copyOnWrite();
        instance.setContents(index, value);
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder setContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.setContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder addContents(androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement value) {
        copyOnWrite();
        instance.addContents(value);
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement value) {
        copyOnWrite();
        instance.addContents(index, value);
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder addContents(
          androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder addContents(
          int index, androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.addContents(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder addAllContents(
          java.lang.Iterable<? extends androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> values) {
        copyOnWrite();
        instance.addAllContents(values);
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder clearContents() {
        copyOnWrite();
        instance.clearContents();
        return this;
      }
      /**
       * <pre>
       * Contents of this container.
       * </pre>
       *
       * <code>repeated .androidx.wear.protolayout.proto.ArcLayoutElement contents = 1;</code>
       */
      public Builder removeContents(int index) {
        copyOnWrite();
        instance.removeContents(index);
        return this;
      }

      /**
       * <pre>
       * The angle for the anchor, used with anchor_type to determine where to draw
       * children. Note that 0 degrees is the 12 o clock position on a device, and
       * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
       * Values do not have to be clamped to the range 0-360; values less than 0
       * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
       * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
       */
      @java.lang.Override
      public boolean hasAnchorAngle() {
        return instance.hasAnchorAngle();
      }
      /**
       * <pre>
       * The angle for the anchor, used with anchor_type to determine where to draw
       * children. Note that 0 degrees is the 12 o clock position on a device, and
       * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
       * Values do not have to be clamped to the range 0-360; values less than 0
       * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
       * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getAnchorAngle() {
        return instance.getAnchorAngle();
      }
      /**
       * <pre>
       * The angle for the anchor, used with anchor_type to determine where to draw
       * children. Note that 0 degrees is the 12 o clock position on a device, and
       * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
       * Values do not have to be clamped to the range 0-360; values less than 0
       * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
       * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
       */
      public Builder setAnchorAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.setAnchorAngle(value);
        return this;
        }
      /**
       * <pre>
       * The angle for the anchor, used with anchor_type to determine where to draw
       * children. Note that 0 degrees is the 12 o clock position on a device, and
       * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
       * Values do not have to be clamped to the range 0-360; values less than 0
       * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
       * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
       */
      public Builder setAnchorAngle(
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.Builder builderForValue) {
        copyOnWrite();
        instance.setAnchorAngle(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The angle for the anchor, used with anchor_type to determine where to draw
       * children. Note that 0 degrees is the 12 o clock position on a device, and
       * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
       * Values do not have to be clamped to the range 0-360; values less than 0
       * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
       * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
       */
      public Builder mergeAnchorAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.mergeAnchorAngle(value);
        return this;
      }
      /**
       * <pre>
       * The angle for the anchor, used with anchor_type to determine where to draw
       * children. Note that 0 degrees is the 12 o clock position on a device, and
       * the angle sweeps clockwise. If not defined, defaults to 0 degrees.
       * Values do not have to be clamped to the range 0-360; values less than 0
       * degrees will sweep anti-clockwise (i.e. -90 degrees is equivalent to 270
       * degrees), and values &gt;360 will be be placed at X mod 360 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp anchor_angle = 2;</code>
       */
      public Builder clearAnchorAngle() {  copyOnWrite();
        instance.clearAnchorAngle();
        return this;
      }

      /**
       * <pre>
       * How to align the contents of this container relative to anchor_angle. If
       * not defined, defaults to ARC_ANCHOR_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
       */
      @java.lang.Override
      public boolean hasAnchorType() {
        return instance.hasAnchorType();
      }
      /**
       * <pre>
       * How to align the contents of this container relative to anchor_angle. If
       * not defined, defaults to ARC_ANCHOR_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp getAnchorType() {
        return instance.getAnchorType();
      }
      /**
       * <pre>
       * How to align the contents of this container relative to anchor_angle. If
       * not defined, defaults to ARC_ANCHOR_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
       */
      public Builder setAnchorType(androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp value) {
        copyOnWrite();
        instance.setAnchorType(value);
        return this;
        }
      /**
       * <pre>
       * How to align the contents of this container relative to anchor_angle. If
       * not defined, defaults to ARC_ANCHOR_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
       */
      public Builder setAnchorType(
          androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp.Builder builderForValue) {
        copyOnWrite();
        instance.setAnchorType(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * How to align the contents of this container relative to anchor_angle. If
       * not defined, defaults to ARC_ANCHOR_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
       */
      public Builder mergeAnchorType(androidx.wear.protolayout.proto.AlignmentProto.ArcAnchorTypeProp value) {
        copyOnWrite();
        instance.mergeAnchorType(value);
        return this;
      }
      /**
       * <pre>
       * How to align the contents of this container relative to anchor_angle. If
       * not defined, defaults to ARC_ANCHOR_CENTER.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcAnchorTypeProp anchor_type = 3;</code>
       */
      public Builder clearAnchorType() {  copyOnWrite();
        instance.clearAnchorType();
        return this;
      }

      /**
       * <pre>
       * Vertical alignment of elements within the arc. If the Arc's thickness is
       * larger than the thickness of the element being drawn, this controls whether
       * the element should be drawn towards the inner or outer edge of the arc, or
       * drawn in the center.
       * If not defined, defaults to VERTICAL_ALIGN_CENTER
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
       */
      @java.lang.Override
      public boolean hasVerticalAlign() {
        return instance.hasVerticalAlign();
      }
      /**
       * <pre>
       * Vertical alignment of elements within the arc. If the Arc's thickness is
       * larger than the thickness of the element being drawn, this controls whether
       * the element should be drawn towards the inner or outer edge of the arc, or
       * drawn in the center.
       * If not defined, defaults to VERTICAL_ALIGN_CENTER
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp getVerticalAlign() {
        return instance.getVerticalAlign();
      }
      /**
       * <pre>
       * Vertical alignment of elements within the arc. If the Arc's thickness is
       * larger than the thickness of the element being drawn, this controls whether
       * the element should be drawn towards the inner or outer edge of the arc, or
       * drawn in the center.
       * If not defined, defaults to VERTICAL_ALIGN_CENTER
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
       */
      public Builder setVerticalAlign(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
        copyOnWrite();
        instance.setVerticalAlign(value);
        return this;
        }
      /**
       * <pre>
       * Vertical alignment of elements within the arc. If the Arc's thickness is
       * larger than the thickness of the element being drawn, this controls whether
       * the element should be drawn towards the inner or outer edge of the arc, or
       * drawn in the center.
       * If not defined, defaults to VERTICAL_ALIGN_CENTER
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
       */
      public Builder setVerticalAlign(
          androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp.Builder builderForValue) {
        copyOnWrite();
        instance.setVerticalAlign(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Vertical alignment of elements within the arc. If the Arc's thickness is
       * larger than the thickness of the element being drawn, this controls whether
       * the element should be drawn towards the inner or outer edge of the arc, or
       * drawn in the center.
       * If not defined, defaults to VERTICAL_ALIGN_CENTER
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
       */
      public Builder mergeVerticalAlign(androidx.wear.protolayout.proto.AlignmentProto.VerticalAlignmentProp value) {
        copyOnWrite();
        instance.mergeVerticalAlign(value);
        return this;
      }
      /**
       * <pre>
       * Vertical alignment of elements within the arc. If the Arc's thickness is
       * larger than the thickness of the element being drawn, this controls whether
       * the element should be drawn towards the inner or outer edge of the arc, or
       * drawn in the center.
       * If not defined, defaults to VERTICAL_ALIGN_CENTER
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.VerticalAlignmentProp vertical_align = 4;</code>
       */
      public Builder clearVerticalAlign() {  copyOnWrite();
        instance.clearVerticalAlign();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.Modifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.Modifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.Modifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.Modifiers modifiers = 5;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * The target angle that will be used by the layout when expanding child
       * elements. NB a value of zero is interpreted to mean 360 degrees. This
       * target may not be achievable if other non-expandable elements bring us past
       * this value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
       */
      @java.lang.Override
      public boolean hasMaxAngle() {
        return instance.hasMaxAngle();
      }
      /**
       * <pre>
       * The target angle that will be used by the layout when expanding child
       * elements. NB a value of zero is interpreted to mean 360 degrees. This
       * target may not be achievable if other non-expandable elements bring us past
       * this value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getMaxAngle() {
        return instance.getMaxAngle();
      }
      /**
       * <pre>
       * The target angle that will be used by the layout when expanding child
       * elements. NB a value of zero is interpreted to mean 360 degrees. This
       * target may not be achievable if other non-expandable elements bring us past
       * this value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
       */
      public Builder setMaxAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.setMaxAngle(value);
        return this;
        }
      /**
       * <pre>
       * The target angle that will be used by the layout when expanding child
       * elements. NB a value of zero is interpreted to mean 360 degrees. This
       * target may not be achievable if other non-expandable elements bring us past
       * this value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
       */
      public Builder setMaxAngle(
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.Builder builderForValue) {
        copyOnWrite();
        instance.setMaxAngle(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The target angle that will be used by the layout when expanding child
       * elements. NB a value of zero is interpreted to mean 360 degrees. This
       * target may not be achievable if other non-expandable elements bring us past
       * this value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
       */
      public Builder mergeMaxAngle(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.mergeMaxAngle(value);
        return this;
      }
      /**
       * <pre>
       * The target angle that will be used by the layout when expanding child
       * elements. NB a value of zero is interpreted to mean 360 degrees. This
       * target may not be achievable if other non-expandable elements bring us past
       * this value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp max_angle = 6;</code>
       */
      public Builder clearMaxAngle() {  copyOnWrite();
        instance.clearMaxAngle();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Arc)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Arc();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "contents_",
              androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement.class,
              "anchorAngle_",
              "anchorType_",
              "verticalAlign_",
              "modifiers_",
              "maxAngle_",
            };
            java.lang.String info =
                "\u0000\u0006\u0000\u0000\u0001\u0006\u0006\u0000\u0001\u0000\u0001\u001b\u0002\t" +
                "\u0003\t\u0004\t\u0005\t\u0006\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Arc> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Arc.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Arc>(
                        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:androidx.wear.protolayout.proto.Arc)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Arc DEFAULT_INSTANCE;
    static {
      Arc defaultInstance = new Arc();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Arc.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Arc getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ArcTextOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcText)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     * @return Whether the text field is set.
     */
    boolean hasText();
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     * @return The text.
     */
    androidx.wear.protolayout.proto.TypesProto.StringProp getText();

    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     * @return Whether the fontStyle field is set.
     */
    boolean hasFontStyle();
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     * @return The fontStyle.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers();
  }
  /**
   * <pre>
   * A text element that can be used in an Arc.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcText}
   */
  public  static final class ArcText extends
      com.google.protobuf.GeneratedMessageLite<
          ArcText, ArcText.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcText)
      ArcTextOrBuilder {
    private ArcText() {
    }
    public static final int TEXT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.TypesProto.StringProp text_;
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.Override
    public boolean hasText() {
      return text_ != null;
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.StringProp getText() {
      return text_ == null ? androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance() : text_;
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    private void setText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  text_ = value;
      
      }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
      value.getClass();
  if (text_ != null &&
          text_ != androidx.wear.protolayout.proto.TypesProto.StringProp.getDefaultInstance()) {
        text_ =
          androidx.wear.protolayout.proto.TypesProto.StringProp.newBuilder(text_).mergeFrom(value).buildPartial();
      } else {
        text_ = value;
      }
      
    }
    /**
     * <pre>
     * The text to render.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
     */
    private void clearText() {  text_ = null;
      
    }

    public static final int FONT_STYLE_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.LayoutElementProto.FontStyle fontStyle_;
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.Override
    public boolean hasFontStyle() {
      return fontStyle_ != null;
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle() {
      return fontStyle_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.getDefaultInstance() : fontStyle_;
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    private void setFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
      value.getClass();
  fontStyle_ = value;
      
      }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
      value.getClass();
  if (fontStyle_ != null &&
          fontStyle_ != androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.getDefaultInstance()) {
        fontStyle_ =
          androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.newBuilder(fontStyle_).mergeFrom(value).buildPartial();
      } else {
        fontStyle_ = value;
      }
      
    }
    /**
     * <pre>
     * The style of font to use (size, bold etc). If not specified, defaults to
     * the platform's default body font.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
     */
    private void clearFontStyle() {  fontStyle_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcText parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcText parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcText parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcText parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText 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(androidx.wear.protolayout.proto.LayoutElementProto.ArcText prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A text element that can be used in an Arc.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcText}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.ArcText, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcText)
        androidx.wear.protolayout.proto.LayoutElementProto.ArcTextOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.ArcText.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      @java.lang.Override
      public boolean hasText() {
        return instance.hasText();
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.StringProp getText() {
        return instance.getText();
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder setText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.setText(value);
        return this;
        }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder setText(
          androidx.wear.protolayout.proto.TypesProto.StringProp.Builder builderForValue) {
        copyOnWrite();
        instance.setText(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder mergeText(androidx.wear.protolayout.proto.TypesProto.StringProp value) {
        copyOnWrite();
        instance.mergeText(value);
        return this;
      }
      /**
       * <pre>
       * The text to render.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StringProp text = 1;</code>
       */
      public Builder clearText() {  copyOnWrite();
        instance.clearText();
        return this;
      }

      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      @java.lang.Override
      public boolean hasFontStyle() {
        return instance.hasFontStyle();
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.FontStyle getFontStyle() {
        return instance.getFontStyle();
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder setFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
        copyOnWrite();
        instance.setFontStyle(value);
        return this;
        }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder setFontStyle(
          androidx.wear.protolayout.proto.LayoutElementProto.FontStyle.Builder builderForValue) {
        copyOnWrite();
        instance.setFontStyle(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder mergeFontStyle(androidx.wear.protolayout.proto.LayoutElementProto.FontStyle value) {
        copyOnWrite();
        instance.mergeFontStyle(value);
        return this;
      }
      /**
       * <pre>
       * The style of font to use (size, bold etc). If not specified, defaults to
       * the platform's default body font.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.FontStyle font_style = 2;</code>
       */
      public Builder clearFontStyle() {  copyOnWrite();
        instance.clearFontStyle();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcText)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.ArcText();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "text_",
              "fontStyle_",
              "modifiers_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.ArcText> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.ArcText.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.ArcText>(
                        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:androidx.wear.protolayout.proto.ArcText)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.ArcText DEFAULT_INSTANCE;
    static {
      ArcText defaultInstance = new ArcText();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcText.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcText getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ArcLineOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcLine)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The length of this line, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     * @return Whether the length field is set.
     */
    boolean hasLength();
    /**
     * <pre>
     * The length of this line, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     * @return The length.
     */
    androidx.wear.protolayout.proto.DimensionProto.DegreesProp getLength();

    /**
     * <pre>
     * The thickness of this line. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     * @return Whether the thickness field is set.
     */
    boolean hasThickness();
    /**
     * <pre>
     * The thickness of this line. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     * @return The thickness.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getThickness();

    /**
     * <pre>
     * The color of this line.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
     * @return Whether the color field is set.
     */
    boolean hasColor();
    /**
     * <pre>
     * The color of this line.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
     * @return The color.
     */
    androidx.wear.protolayout.proto.ColorProto.ColorProp getColor();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers();

    /**
     * <pre>
     * The length of this line. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
     * @return Whether the angularLength field is set.
     */
    boolean hasAngularLength();
    /**
     * <pre>
     * The length of this line. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
     * @return The angularLength.
     */
    androidx.wear.protolayout.proto.DimensionProto.ArcLineLength getAngularLength();

    /**
     * <pre>
     * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
     * @return Whether the strokeCap field is set.
     */
    boolean hasStrokeCap();
    /**
     * <pre>
     * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
     * @return The strokeCap.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp getStrokeCap();
  }
  /**
   * <pre>
   * A line that can be used in an Arc and renders as a round progress bar.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcLine}
   */
  public  static final class ArcLine extends
      com.google.protobuf.GeneratedMessageLite<
          ArcLine, ArcLine.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcLine)
      ArcLineOrBuilder {
    private ArcLine() {
    }
    public static final int LENGTH_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DegreesProp length_;
    /**
     * <pre>
     * The length of this line, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    @java.lang.Override
    public boolean hasLength() {
      return length_ != null;
    }
    /**
     * <pre>
     * The length of this line, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getLength() {
      return length_ == null ? androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance() : length_;
    }
    /**
     * <pre>
     * The length of this line, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    private void setLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  length_ = value;
      
      }
    /**
     * <pre>
     * The length of this line, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  if (length_ != null &&
          length_ != androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance()) {
        length_ =
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder(length_).mergeFrom(value).buildPartial();
      } else {
        length_ = value;
      }
      
    }
    /**
     * <pre>
     * The length of this line, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    private void clearLength() {  length_ = null;
      
    }

    public static final int THICKNESS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp thickness_;
    /**
     * <pre>
     * The thickness of this line. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    @java.lang.Override
    public boolean hasThickness() {
      return thickness_ != null;
    }
    /**
     * <pre>
     * The thickness of this line. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getThickness() {
      return thickness_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : thickness_;
    }
    /**
     * <pre>
     * The thickness of this line. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    private void setThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  thickness_ = value;
      
      }
    /**
     * <pre>
     * The thickness of this line. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (thickness_ != null &&
          thickness_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        thickness_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(thickness_).mergeFrom(value).buildPartial();
      } else {
        thickness_ = value;
      }
      
    }
    /**
     * <pre>
     * The thickness of this line. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    private void clearThickness() {  thickness_ = null;
      
    }

    public static final int COLOR_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ColorProto.ColorProp color_;
    /**
     * <pre>
     * The color of this line.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
     */
    @java.lang.Override
    public boolean hasColor() {
      return color_ != null;
    }
    /**
     * <pre>
     * The color of this line.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
      return color_ == null ? androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance() : color_;
    }
    /**
     * <pre>
     * The color of this line.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
     */
    private void setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  color_ = value;
      
      }
    /**
     * <pre>
     * The color of this line.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
      value.getClass();
  if (color_ != null &&
          color_ != androidx.wear.protolayout.proto.ColorProto.ColorProp.getDefaultInstance()) {
        color_ =
          androidx.wear.protolayout.proto.ColorProto.ColorProp.newBuilder(color_).mergeFrom(value).buildPartial();
      } else {
        color_ = value;
      }
      
    }
    /**
     * <pre>
     * The color of this line.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
     */
    private void clearColor() {  color_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int ANGULAR_LENGTH_FIELD_NUMBER = 5;
    private androidx.wear.protolayout.proto.DimensionProto.ArcLineLength angularLength_;
    /**
     * <pre>
     * The length of this line. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
     */
    @java.lang.Override
    public boolean hasAngularLength() {
      return angularLength_ != null;
    }
    /**
     * <pre>
     * The length of this line. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ArcLineLength getAngularLength() {
      return angularLength_ == null ? androidx.wear.protolayout.proto.DimensionProto.ArcLineLength.getDefaultInstance() : angularLength_;
    }
    /**
     * <pre>
     * The length of this line. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
     */
    private void setAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcLineLength value) {
      value.getClass();
  angularLength_ = value;
      
      }
    /**
     * <pre>
     * The length of this line. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcLineLength value) {
      value.getClass();
  if (angularLength_ != null &&
          angularLength_ != androidx.wear.protolayout.proto.DimensionProto.ArcLineLength.getDefaultInstance()) {
        angularLength_ =
          androidx.wear.protolayout.proto.DimensionProto.ArcLineLength.newBuilder(angularLength_).mergeFrom(value).buildPartial();
      } else {
        angularLength_ = value;
      }
      
    }
    /**
     * <pre>
     * The length of this line. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
     */
    private void clearAngularLength() {  angularLength_ = null;
      
    }

    public static final int STROKE_CAP_FIELD_NUMBER = 6;
    private androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp strokeCap_;
    /**
     * <pre>
     * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
     */
    @java.lang.Override
    public boolean hasStrokeCap() {
      return strokeCap_ != null;
    }
    /**
     * <pre>
     * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp getStrokeCap() {
      return strokeCap_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp.getDefaultInstance() : strokeCap_;
    }
    /**
     * <pre>
     * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
     */
    private void setStrokeCap(androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp value) {
      value.getClass();
  strokeCap_ = value;
      
      }
    /**
     * <pre>
     * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeStrokeCap(androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp value) {
      value.getClass();
  if (strokeCap_ != null &&
          strokeCap_ != androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp.getDefaultInstance()) {
        strokeCap_ =
          androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp.newBuilder(strokeCap_).mergeFrom(value).buildPartial();
      } else {
        strokeCap_ = value;
      }
      
    }
    /**
     * <pre>
     * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
     */
    private void clearStrokeCap() {  strokeCap_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine 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(androidx.wear.protolayout.proto.LayoutElementProto.ArcLine prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A line that can be used in an Arc and renders as a round progress bar.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.ArcLine, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcLine)
        androidx.wear.protolayout.proto.LayoutElementProto.ArcLineOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.ArcLine.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The length of this line, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      @java.lang.Override
      public boolean hasLength() {
        return instance.hasLength();
      }
      /**
       * <pre>
       * The length of this line, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getLength() {
        return instance.getLength();
      }
      /**
       * <pre>
       * The length of this line, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder setLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.setLength(value);
        return this;
        }
      /**
       * <pre>
       * The length of this line, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder setLength(
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLength(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The length of this line, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder mergeLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.mergeLength(value);
        return this;
      }
      /**
       * <pre>
       * The length of this line, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder clearLength() {  copyOnWrite();
        instance.clearLength();
        return this;
      }

      /**
       * <pre>
       * The thickness of this line. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      @java.lang.Override
      public boolean hasThickness() {
        return instance.hasThickness();
      }
      /**
       * <pre>
       * The thickness of this line. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getThickness() {
        return instance.getThickness();
      }
      /**
       * <pre>
       * The thickness of this line. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder setThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setThickness(value);
        return this;
        }
      /**
       * <pre>
       * The thickness of this line. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder setThickness(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setThickness(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The thickness of this line. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder mergeThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeThickness(value);
        return this;
      }
      /**
       * <pre>
       * The thickness of this line. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder clearThickness() {  copyOnWrite();
        instance.clearThickness();
        return this;
      }

      /**
       * <pre>
       * The color of this line.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
       */
      @java.lang.Override
      public boolean hasColor() {
        return instance.hasColor();
      }
      /**
       * <pre>
       * The color of this line.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ColorProto.ColorProp getColor() {
        return instance.getColor();
      }
      /**
       * <pre>
       * The color of this line.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
       */
      public Builder setColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.setColor(value);
        return this;
        }
      /**
       * <pre>
       * The color of this line.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
       */
      public Builder setColor(
          androidx.wear.protolayout.proto.ColorProto.ColorProp.Builder builderForValue) {
        copyOnWrite();
        instance.setColor(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The color of this line.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
       */
      public Builder mergeColor(androidx.wear.protolayout.proto.ColorProto.ColorProp value) {
        copyOnWrite();
        instance.mergeColor(value);
        return this;
      }
      /**
       * <pre>
       * The color of this line.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ColorProp color = 3;</code>
       */
      public Builder clearColor() {  copyOnWrite();
        instance.clearColor();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 4;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * The length of this line. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
       */
      @java.lang.Override
      public boolean hasAngularLength() {
        return instance.hasAngularLength();
      }
      /**
       * <pre>
       * The length of this line. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ArcLineLength getAngularLength() {
        return instance.getAngularLength();
      }
      /**
       * <pre>
       * The length of this line. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
       */
      public Builder setAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcLineLength value) {
        copyOnWrite();
        instance.setAngularLength(value);
        return this;
        }
      /**
       * <pre>
       * The length of this line. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
       */
      public Builder setAngularLength(
          androidx.wear.protolayout.proto.DimensionProto.ArcLineLength.Builder builderForValue) {
        copyOnWrite();
        instance.setAngularLength(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The length of this line. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
       */
      public Builder mergeAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcLineLength value) {
        copyOnWrite();
        instance.mergeAngularLength(value);
        return this;
      }
      /**
       * <pre>
       * The length of this line. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcLineLength angular_length = 5;</code>
       */
      public Builder clearAngularLength() {  copyOnWrite();
        instance.clearAngularLength();
        return this;
      }

      /**
       * <pre>
       * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
       */
      @java.lang.Override
      public boolean hasStrokeCap() {
        return instance.hasStrokeCap();
      }
      /**
       * <pre>
       * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp getStrokeCap() {
        return instance.getStrokeCap();
      }
      /**
       * <pre>
       * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
       */
      public Builder setStrokeCap(androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp value) {
        copyOnWrite();
        instance.setStrokeCap(value);
        return this;
        }
      /**
       * <pre>
       * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
       */
      public Builder setStrokeCap(
          androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp.Builder builderForValue) {
        copyOnWrite();
        instance.setStrokeCap(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
       */
      public Builder mergeStrokeCap(androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp value) {
        copyOnWrite();
        instance.mergeStrokeCap(value);
        return this;
      }
      /**
       * <pre>
       * The line stroke cap. If not defined, defaults to STROKE_CAP_ROUND.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCapProp stroke_cap = 6;</code>
       */
      public Builder clearStrokeCap() {  copyOnWrite();
        instance.clearStrokeCap();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcLine)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLine();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "length_",
              "thickness_",
              "color_",
              "modifiers_",
              "angularLength_",
              "strokeCap_",
            };
            java.lang.String info =
                "\u0000\u0006\u0000\u0000\u0001\u0006\u0006\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t\u0005\t\u0006\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.ArcLine> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.ArcLine.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.ArcLine>(
                        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:androidx.wear.protolayout.proto.ArcLine)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.ArcLine DEFAULT_INSTANCE;
    static {
      ArcLine defaultInstance = new ArcLine();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcLine.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLine getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface StrokeCapPropOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.StrokeCapProp)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    int getValueValue();
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
     * @return The value.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap getValue();
  }
  /**
   * <pre>
   * An extensible StrokeCap property.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.StrokeCapProp}
   */
  public  static final class StrokeCapProp extends
      com.google.protobuf.GeneratedMessageLite<
          StrokeCapProp, StrokeCapProp.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.StrokeCapProp)
      StrokeCapPropOrBuilder {
    private StrokeCapProp() {
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private int value_;
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
     * @return The enum numeric value on the wire for value.
     */
    @java.lang.Override
    public int getValueValue() {
      return value_;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap getValue() {
      androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap result = androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap.forNumber(value_);
      return result == null ? androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap.UNRECOGNIZED : result;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
     * @param value The enum numeric value on the wire for value to set.
     */
    private void setValueValue(int value) {
        value_ = value;
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap value) {
      value_ = value.getNumber();
      
    }
    /**
     * <pre>
     * The value.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
     */
    private void clearValue() {
      
      value_ = 0;
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp 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 androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp 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 androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp 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 androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp 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 androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp 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(androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * An extensible StrokeCap property.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.StrokeCapProp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.StrokeCapProp)
        androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapPropOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
       * @return The enum numeric value on the wire for value.
       */
      @java.lang.Override
      public int getValueValue() {
        return instance.getValueValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValueValue(int value) {
        copyOnWrite();
        instance.setValueValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap getValue() {
        return instance.getValue();
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
       * @param value The enum numeric value on the wire for value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(androidx.wear.protolayout.proto.LayoutElementProto.StrokeCap value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <pre>
       * The value.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.StrokeCap value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.StrokeCapProp)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp>(
                        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:androidx.wear.protolayout.proto.StrokeCapProp)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp DEFAULT_INSTANCE;
    static {
      StrokeCapProp defaultInstance = new StrokeCapProp();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        StrokeCapProp.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.StrokeCapProp getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ArcSpacerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcSpacer)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The length of this spacer, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     * @return Whether the length field is set.
     */
    boolean hasLength();
    /**
     * <pre>
     * The length of this spacer, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     * @return The length.
     */
    androidx.wear.protolayout.proto.DimensionProto.DegreesProp getLength();

    /**
     * <pre>
     * The thickness of this spacer, in DP. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     * @return Whether the thickness field is set.
     */
    boolean hasThickness();
    /**
     * <pre>
     * The thickness of this spacer, in DP. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     * @return The thickness.
     */
    androidx.wear.protolayout.proto.DimensionProto.DpProp getThickness();

    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     * @return Whether the modifiers field is set.
     */
    boolean hasModifiers();
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     * @return The modifiers.
     */
    androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers();

    /**
     * <pre>
     * The length of this spacer. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
     * @return Whether the angularLength field is set.
     */
    boolean hasAngularLength();
    /**
     * <pre>
     * The length of this spacer. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
     * @return The angularLength.
     */
    androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength getAngularLength();
  }
  /**
   * <pre>
   * A simple spacer used to provide padding between adjacent elements in an Arc.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcSpacer}
   */
  public  static final class ArcSpacer extends
      com.google.protobuf.GeneratedMessageLite<
          ArcSpacer, ArcSpacer.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcSpacer)
      ArcSpacerOrBuilder {
    private ArcSpacer() {
    }
    public static final int LENGTH_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.DimensionProto.DegreesProp length_;
    /**
     * <pre>
     * The length of this spacer, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    @java.lang.Override
    public boolean hasLength() {
      return length_ != null;
    }
    /**
     * <pre>
     * The length of this spacer, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getLength() {
      return length_ == null ? androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance() : length_;
    }
    /**
     * <pre>
     * The length of this spacer, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    private void setLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  length_ = value;
      
      }
    /**
     * <pre>
     * The length of this spacer, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
      value.getClass();
  if (length_ != null &&
          length_ != androidx.wear.protolayout.proto.DimensionProto.DegreesProp.getDefaultInstance()) {
        length_ =
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.newBuilder(length_).mergeFrom(value).buildPartial();
      } else {
        length_ = value;
      }
      
    }
    /**
     * <pre>
     * The length of this spacer, in degrees. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
     */
    private void clearLength() {  length_ = null;
      
    }

    public static final int THICKNESS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.DimensionProto.DpProp thickness_;
    /**
     * <pre>
     * The thickness of this spacer, in DP. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    @java.lang.Override
    public boolean hasThickness() {
      return thickness_ != null;
    }
    /**
     * <pre>
     * The thickness of this spacer, in DP. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.DpProp getThickness() {
      return thickness_ == null ? androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance() : thickness_;
    }
    /**
     * <pre>
     * The thickness of this spacer, in DP. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    private void setThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  thickness_ = value;
      
      }
    /**
     * <pre>
     * The thickness of this spacer, in DP. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
      value.getClass();
  if (thickness_ != null &&
          thickness_ != androidx.wear.protolayout.proto.DimensionProto.DpProp.getDefaultInstance()) {
        thickness_ =
          androidx.wear.protolayout.proto.DimensionProto.DpProp.newBuilder(thickness_).mergeFrom(value).buildPartial();
      } else {
        thickness_ = value;
      }
      
    }
    /**
     * <pre>
     * The thickness of this spacer, in DP. If not defined, defaults to 0.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
     */
    private void clearThickness() {  thickness_ = null;
      
    }

    public static final int MODIFIERS_FIELD_NUMBER = 3;
    private androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers modifiers_;
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public boolean hasModifiers() {
      return modifiers_ != null;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers() {
      return modifiers_ == null ? androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.getDefaultInstance() : modifiers_;
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    private void setModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
      value.getClass();
  modifiers_ = value;
      
      }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
      value.getClass();
  if (modifiers_ != null &&
          modifiers_ != androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.getDefaultInstance()) {
        modifiers_ =
          androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.newBuilder(modifiers_).mergeFrom(value).buildPartial();
      } else {
        modifiers_ = value;
      }
      
    }
    /**
     * <pre>
     * Modifiers for this element.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
     */
    private void clearModifiers() {  modifiers_ = null;
      
    }

    public static final int ANGULAR_LENGTH_FIELD_NUMBER = 4;
    private androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength angularLength_;
    /**
     * <pre>
     * The length of this spacer. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
     */
    @java.lang.Override
    public boolean hasAngularLength() {
      return angularLength_ != null;
    }
    /**
     * <pre>
     * The length of this spacer. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength getAngularLength() {
      return angularLength_ == null ? androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength.getDefaultInstance() : angularLength_;
    }
    /**
     * <pre>
     * The length of this spacer. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
     */
    private void setAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength value) {
      value.getClass();
  angularLength_ = value;
      
      }
    /**
     * <pre>
     * The length of this spacer. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength value) {
      value.getClass();
  if (angularLength_ != null &&
          angularLength_ != androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength.getDefaultInstance()) {
        angularLength_ =
          androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength.newBuilder(angularLength_).mergeFrom(value).buildPartial();
      } else {
        angularLength_ = value;
      }
      
    }
    /**
     * <pre>
     * The length of this spacer. If not defined, defaults to 0 degrees.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
     */
    private void clearAngularLength() {  angularLength_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer 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(androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A simple spacer used to provide padding between adjacent elements in an Arc.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcSpacer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcSpacer)
        androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacerOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The length of this spacer, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      @java.lang.Override
      public boolean hasLength() {
        return instance.hasLength();
      }
      /**
       * <pre>
       * The length of this spacer, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DegreesProp getLength() {
        return instance.getLength();
      }
      /**
       * <pre>
       * The length of this spacer, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder setLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.setLength(value);
        return this;
        }
      /**
       * <pre>
       * The length of this spacer, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder setLength(
          androidx.wear.protolayout.proto.DimensionProto.DegreesProp.Builder builderForValue) {
        copyOnWrite();
        instance.setLength(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The length of this spacer, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder mergeLength(androidx.wear.protolayout.proto.DimensionProto.DegreesProp value) {
        copyOnWrite();
        instance.mergeLength(value);
        return this;
      }
      /**
       * <pre>
       * The length of this spacer, in degrees. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DegreesProp length = 1;</code>
       */
      public Builder clearLength() {  copyOnWrite();
        instance.clearLength();
        return this;
      }

      /**
       * <pre>
       * The thickness of this spacer, in DP. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      @java.lang.Override
      public boolean hasThickness() {
        return instance.hasThickness();
      }
      /**
       * <pre>
       * The thickness of this spacer, in DP. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.DpProp getThickness() {
        return instance.getThickness();
      }
      /**
       * <pre>
       * The thickness of this spacer, in DP. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder setThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.setThickness(value);
        return this;
        }
      /**
       * <pre>
       * The thickness of this spacer, in DP. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder setThickness(
          androidx.wear.protolayout.proto.DimensionProto.DpProp.Builder builderForValue) {
        copyOnWrite();
        instance.setThickness(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The thickness of this spacer, in DP. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder mergeThickness(androidx.wear.protolayout.proto.DimensionProto.DpProp value) {
        copyOnWrite();
        instance.mergeThickness(value);
        return this;
      }
      /**
       * <pre>
       * The thickness of this spacer, in DP. If not defined, defaults to 0.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.DpProp thickness = 2;</code>
       */
      public Builder clearThickness() {  copyOnWrite();
        instance.clearThickness();
        return this;
      }

      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public boolean hasModifiers() {
        return instance.hasModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers getModifiers() {
        return instance.getModifiers();
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder setModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
        copyOnWrite();
        instance.setModifiers(value);
        return this;
        }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder setModifiers(
          androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers.Builder builderForValue) {
        copyOnWrite();
        instance.setModifiers(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder mergeModifiers(androidx.wear.protolayout.proto.ModifiersProto.ArcModifiers value) {
        copyOnWrite();
        instance.mergeModifiers(value);
        return this;
      }
      /**
       * <pre>
       * Modifiers for this element.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcModifiers modifiers = 3;</code>
       */
      public Builder clearModifiers() {  copyOnWrite();
        instance.clearModifiers();
        return this;
      }

      /**
       * <pre>
       * The length of this spacer. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
       */
      @java.lang.Override
      public boolean hasAngularLength() {
        return instance.hasAngularLength();
      }
      /**
       * <pre>
       * The length of this spacer. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength getAngularLength() {
        return instance.getAngularLength();
      }
      /**
       * <pre>
       * The length of this spacer. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
       */
      public Builder setAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength value) {
        copyOnWrite();
        instance.setAngularLength(value);
        return this;
        }
      /**
       * <pre>
       * The length of this spacer. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
       */
      public Builder setAngularLength(
          androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength.Builder builderForValue) {
        copyOnWrite();
        instance.setAngularLength(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The length of this spacer. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
       */
      public Builder mergeAngularLength(androidx.wear.protolayout.proto.DimensionProto.ArcSpacerLength value) {
        copyOnWrite();
        instance.mergeAngularLength(value);
        return this;
      }
      /**
       * <pre>
       * The length of this spacer. If not defined, defaults to 0 degrees.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.ArcSpacerLength angular_length = 4;</code>
       */
      public Builder clearAngularLength() {  copyOnWrite();
        instance.clearAngularLength();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcSpacer)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "length_",
              "thickness_",
              "modifiers_",
              "angularLength_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer>(
                        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:androidx.wear.protolayout.proto.ArcSpacer)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer DEFAULT_INSTANCE;
    static {
      ArcSpacer defaultInstance = new ArcSpacer();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcSpacer.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ArcAdapterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcAdapter)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The element to adapt to an Arc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
     * @return Whether the content field is set.
     */
    boolean hasContent();
    /**
     * <pre>
     * The element to adapt to an Arc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
     * @return The content.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContent();

    /**
     * <pre>
     * Whether this adapter's contents should be rotated, according to its
     * position in the arc or not. As an example, assume that an Image has been
     * added to the arc, and ends up at the 3 o clock position. If rotate_contents
     * = true, the image will be placed at the 3 o clock position, and will be
     * rotated clockwise through 90 degrees. If rotate_contents = false, the image
     * will be placed at the 3 o clock position, but itself will not be rotated.
     * If not defined, defaults to false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
     * @return Whether the rotateContents field is set.
     */
    boolean hasRotateContents();
    /**
     * <pre>
     * Whether this adapter's contents should be rotated, according to its
     * position in the arc or not. As an example, assume that an Image has been
     * added to the arc, and ends up at the 3 o clock position. If rotate_contents
     * = true, the image will be placed at the 3 o clock position, and will be
     * rotated clockwise through 90 degrees. If rotate_contents = false, the image
     * will be placed at the 3 o clock position, but itself will not be rotated.
     * If not defined, defaults to false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
     * @return The rotateContents.
     */
    androidx.wear.protolayout.proto.TypesProto.BoolProp getRotateContents();
  }
  /**
   * <pre>
   * A container that allows a standard LayoutElement to be added to an Arc.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcAdapter}
   */
  public  static final class ArcAdapter extends
      com.google.protobuf.GeneratedMessageLite<
          ArcAdapter, ArcAdapter.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcAdapter)
      ArcAdapterOrBuilder {
    private ArcAdapter() {
    }
    public static final int CONTENT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement content_;
    /**
     * <pre>
     * The element to adapt to an Arc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
     */
    @java.lang.Override
    public boolean hasContent() {
      return content_ != null;
    }
    /**
     * <pre>
     * The element to adapt to an Arc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContent() {
      return content_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.getDefaultInstance() : content_;
    }
    /**
     * <pre>
     * The element to adapt to an Arc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
     */
    private void setContent(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  content_ = value;
      
      }
    /**
     * <pre>
     * The element to adapt to an Arc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeContent(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  if (content_ != null &&
          content_ != androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.getDefaultInstance()) {
        content_ =
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.newBuilder(content_).mergeFrom(value).buildPartial();
      } else {
        content_ = value;
      }
      
    }
    /**
     * <pre>
     * The element to adapt to an Arc.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
     */
    private void clearContent() {  content_ = null;
      
    }

    public static final int ROTATE_CONTENTS_FIELD_NUMBER = 2;
    private androidx.wear.protolayout.proto.TypesProto.BoolProp rotateContents_;
    /**
     * <pre>
     * Whether this adapter's contents should be rotated, according to its
     * position in the arc or not. As an example, assume that an Image has been
     * added to the arc, and ends up at the 3 o clock position. If rotate_contents
     * = true, the image will be placed at the 3 o clock position, and will be
     * rotated clockwise through 90 degrees. If rotate_contents = false, the image
     * will be placed at the 3 o clock position, but itself will not be rotated.
     * If not defined, defaults to false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
     */
    @java.lang.Override
    public boolean hasRotateContents() {
      return rotateContents_ != null;
    }
    /**
     * <pre>
     * Whether this adapter's contents should be rotated, according to its
     * position in the arc or not. As an example, assume that an Image has been
     * added to the arc, and ends up at the 3 o clock position. If rotate_contents
     * = true, the image will be placed at the 3 o clock position, and will be
     * rotated clockwise through 90 degrees. If rotate_contents = false, the image
     * will be placed at the 3 o clock position, but itself will not be rotated.
     * If not defined, defaults to false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.TypesProto.BoolProp getRotateContents() {
      return rotateContents_ == null ? androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance() : rotateContents_;
    }
    /**
     * <pre>
     * Whether this adapter's contents should be rotated, according to its
     * position in the arc or not. As an example, assume that an Image has been
     * added to the arc, and ends up at the 3 o clock position. If rotate_contents
     * = true, the image will be placed at the 3 o clock position, and will be
     * rotated clockwise through 90 degrees. If rotate_contents = false, the image
     * will be placed at the 3 o clock position, but itself will not be rotated.
     * If not defined, defaults to false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
     */
    private void setRotateContents(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  rotateContents_ = value;
      
      }
    /**
     * <pre>
     * Whether this adapter's contents should be rotated, according to its
     * position in the arc or not. As an example, assume that an Image has been
     * added to the arc, and ends up at the 3 o clock position. If rotate_contents
     * = true, the image will be placed at the 3 o clock position, and will be
     * rotated clockwise through 90 degrees. If rotate_contents = false, the image
     * will be placed at the 3 o clock position, but itself will not be rotated.
     * If not defined, defaults to false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRotateContents(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
      value.getClass();
  if (rotateContents_ != null &&
          rotateContents_ != androidx.wear.protolayout.proto.TypesProto.BoolProp.getDefaultInstance()) {
        rotateContents_ =
          androidx.wear.protolayout.proto.TypesProto.BoolProp.newBuilder(rotateContents_).mergeFrom(value).buildPartial();
      } else {
        rotateContents_ = value;
      }
      
    }
    /**
     * <pre>
     * Whether this adapter's contents should be rotated, according to its
     * position in the arc or not. As an example, assume that an Image has been
     * added to the arc, and ends up at the 3 o clock position. If rotate_contents
     * = true, the image will be placed at the 3 o clock position, and will be
     * rotated clockwise through 90 degrees. If rotate_contents = false, the image
     * will be placed at the 3 o clock position, but itself will not be rotated.
     * If not defined, defaults to false.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
     */
    private void clearRotateContents() {  rotateContents_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter 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(androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A container that allows a standard LayoutElement to be added to an Arc.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcAdapter}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcAdapter)
        androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapterOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The element to adapt to an Arc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
       */
      @java.lang.Override
      public boolean hasContent() {
        return instance.hasContent();
      }
      /**
       * <pre>
       * The element to adapt to an Arc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getContent() {
        return instance.getContent();
      }
      /**
       * <pre>
       * The element to adapt to an Arc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
       */
      public Builder setContent(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.setContent(value);
        return this;
        }
      /**
       * <pre>
       * The element to adapt to an Arc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
       */
      public Builder setContent(
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.setContent(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The element to adapt to an Arc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
       */
      public Builder mergeContent(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.mergeContent(value);
        return this;
      }
      /**
       * <pre>
       * The element to adapt to an Arc.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement content = 1;</code>
       */
      public Builder clearContent() {  copyOnWrite();
        instance.clearContent();
        return this;
      }

      /**
       * <pre>
       * Whether this adapter's contents should be rotated, according to its
       * position in the arc or not. As an example, assume that an Image has been
       * added to the arc, and ends up at the 3 o clock position. If rotate_contents
       * = true, the image will be placed at the 3 o clock position, and will be
       * rotated clockwise through 90 degrees. If rotate_contents = false, the image
       * will be placed at the 3 o clock position, but itself will not be rotated.
       * If not defined, defaults to false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
       */
      @java.lang.Override
      public boolean hasRotateContents() {
        return instance.hasRotateContents();
      }
      /**
       * <pre>
       * Whether this adapter's contents should be rotated, according to its
       * position in the arc or not. As an example, assume that an Image has been
       * added to the arc, and ends up at the 3 o clock position. If rotate_contents
       * = true, the image will be placed at the 3 o clock position, and will be
       * rotated clockwise through 90 degrees. If rotate_contents = false, the image
       * will be placed at the 3 o clock position, but itself will not be rotated.
       * If not defined, defaults to false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.TypesProto.BoolProp getRotateContents() {
        return instance.getRotateContents();
      }
      /**
       * <pre>
       * Whether this adapter's contents should be rotated, according to its
       * position in the arc or not. As an example, assume that an Image has been
       * added to the arc, and ends up at the 3 o clock position. If rotate_contents
       * = true, the image will be placed at the 3 o clock position, and will be
       * rotated clockwise through 90 degrees. If rotate_contents = false, the image
       * will be placed at the 3 o clock position, but itself will not be rotated.
       * If not defined, defaults to false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
       */
      public Builder setRotateContents(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.setRotateContents(value);
        return this;
        }
      /**
       * <pre>
       * Whether this adapter's contents should be rotated, according to its
       * position in the arc or not. As an example, assume that an Image has been
       * added to the arc, and ends up at the 3 o clock position. If rotate_contents
       * = true, the image will be placed at the 3 o clock position, and will be
       * rotated clockwise through 90 degrees. If rotate_contents = false, the image
       * will be placed at the 3 o clock position, but itself will not be rotated.
       * If not defined, defaults to false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
       */
      public Builder setRotateContents(
          androidx.wear.protolayout.proto.TypesProto.BoolProp.Builder builderForValue) {
        copyOnWrite();
        instance.setRotateContents(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * Whether this adapter's contents should be rotated, according to its
       * position in the arc or not. As an example, assume that an Image has been
       * added to the arc, and ends up at the 3 o clock position. If rotate_contents
       * = true, the image will be placed at the 3 o clock position, and will be
       * rotated clockwise through 90 degrees. If rotate_contents = false, the image
       * will be placed at the 3 o clock position, but itself will not be rotated.
       * If not defined, defaults to false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
       */
      public Builder mergeRotateContents(androidx.wear.protolayout.proto.TypesProto.BoolProp value) {
        copyOnWrite();
        instance.mergeRotateContents(value);
        return this;
      }
      /**
       * <pre>
       * Whether this adapter's contents should be rotated, according to its
       * position in the arc or not. As an example, assume that an Image has been
       * added to the arc, and ends up at the 3 o clock position. If rotate_contents
       * = true, the image will be placed at the 3 o clock position, and will be
       * rotated clockwise through 90 degrees. If rotate_contents = false, the image
       * will be placed at the 3 o clock position, but itself will not be rotated.
       * If not defined, defaults to false.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.BoolProp rotate_contents = 2;</code>
       */
      public Builder clearRotateContents() {  copyOnWrite();
        instance.clearRotateContents();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcAdapter)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "content_",
              "rotateContents_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter>(
                        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:androidx.wear.protolayout.proto.ArcAdapter)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter DEFAULT_INSTANCE;
    static {
      ArcAdapter defaultInstance = new ArcAdapter();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcAdapter.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface LayoutElementOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.LayoutElement)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
     * @return Whether the column field is set.
     */
    boolean hasColumn();
    /**
     * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
     * @return The column.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Column getColumn();

    /**
     * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
     * @return Whether the row field is set.
     */
    boolean hasRow();
    /**
     * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
     * @return The row.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Row getRow();

    /**
     * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
     * @return Whether the box field is set.
     */
    boolean hasBox();
    /**
     * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
     * @return The box.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Box getBox();

    /**
     * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
     * @return Whether the spacer field is set.
     */
    boolean hasSpacer();
    /**
     * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
     * @return The spacer.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Spacer getSpacer();

    /**
     * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
     * @return Whether the text field is set.
     */
    boolean hasText();
    /**
     * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
     * @return The text.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Text getText();

    /**
     * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
     * @return Whether the image field is set.
     */
    boolean hasImage();
    /**
     * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
     * @return The image.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Image getImage();

    /**
     * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
     * @return Whether the arc field is set.
     */
    boolean hasArc();
    /**
     * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
     * @return The arc.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Arc getArc();

    /**
     * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
     * @return Whether the spannable field is set.
     */
    boolean hasSpannable();
    /**
     * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
     * @return The spannable.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.Spannable getSpannable();

    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * The root of all layout elements. This exists to act as a holder for all of
   * the actual layout elements above.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.LayoutElement}
   */
  public  static final class LayoutElement extends
      com.google.protobuf.GeneratedMessageLite<
          LayoutElement, LayoutElement.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.LayoutElement)
      LayoutElementOrBuilder {
    private LayoutElement() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      COLUMN(1),
      ROW(2),
      BOX(3),
      SPACER(4),
      TEXT(5),
      IMAGE(6),
      ARC(7),
      SPANNABLE(8),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return COLUMN;
          case 2: return ROW;
          case 3: return BOX;
          case 4: return SPACER;
          case 5: return TEXT;
          case 6: return IMAGE;
          case 7: return ARC;
          case 8: return SPANNABLE;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int COLUMN_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
     */
    @java.lang.Override
    public boolean hasColumn() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Column getColumn() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Column) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Column.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
     */
    private void setColumn(androidx.wear.protolayout.proto.LayoutElementProto.Column value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
     */
    private void mergeColumn(androidx.wear.protolayout.proto.LayoutElementProto.Column value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Column.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Column.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Column) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
     */
    private void clearColumn() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ROW_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
     */
    @java.lang.Override
    public boolean hasRow() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Row getRow() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Row) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Row.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
     */
    private void setRow(androidx.wear.protolayout.proto.LayoutElementProto.Row value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
     */
    private void mergeRow(androidx.wear.protolayout.proto.LayoutElementProto.Row value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Row.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Row.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Row) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
     */
    private void clearRow() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int BOX_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
     */
    @java.lang.Override
    public boolean hasBox() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Box getBox() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Box) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Box.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
     */
    private void setBox(androidx.wear.protolayout.proto.LayoutElementProto.Box value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
     */
    private void mergeBox(androidx.wear.protolayout.proto.LayoutElementProto.Box value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Box.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Box.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Box) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
     */
    private void clearBox() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int SPACER_FIELD_NUMBER = 4;
    /**
     * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
     */
    @java.lang.Override
    public boolean hasSpacer() {
      return innerCase_ == 4;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Spacer getSpacer() {
      if (innerCase_ == 4) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Spacer) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Spacer.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
     */
    private void setSpacer(androidx.wear.protolayout.proto.LayoutElementProto.Spacer value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
     */
    private void mergeSpacer(androidx.wear.protolayout.proto.LayoutElementProto.Spacer value) {
      value.getClass();
  if (innerCase_ == 4 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Spacer.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Spacer.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Spacer) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
     */
    private void clearSpacer() {
      if (innerCase_ == 4) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int TEXT_FIELD_NUMBER = 5;
    /**
     * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
     */
    @java.lang.Override
    public boolean hasText() {
      return innerCase_ == 5;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Text getText() {
      if (innerCase_ == 5) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Text) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Text.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
     */
    private void setText(androidx.wear.protolayout.proto.LayoutElementProto.Text value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
     */
    private void mergeText(androidx.wear.protolayout.proto.LayoutElementProto.Text value) {
      value.getClass();
  if (innerCase_ == 5 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Text.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Text.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Text) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 5;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
     */
    private void clearText() {
      if (innerCase_ == 5) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int IMAGE_FIELD_NUMBER = 6;
    /**
     * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
     */
    @java.lang.Override
    public boolean hasImage() {
      return innerCase_ == 6;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Image getImage() {
      if (innerCase_ == 6) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Image) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Image.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
     */
    private void setImage(androidx.wear.protolayout.proto.LayoutElementProto.Image value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
     */
    private void mergeImage(androidx.wear.protolayout.proto.LayoutElementProto.Image value) {
      value.getClass();
  if (innerCase_ == 6 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Image.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Image.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Image) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 6;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
     */
    private void clearImage() {
      if (innerCase_ == 6) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ARC_FIELD_NUMBER = 7;
    /**
     * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
     */
    @java.lang.Override
    public boolean hasArc() {
      return innerCase_ == 7;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Arc getArc() {
      if (innerCase_ == 7) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Arc) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Arc.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
     */
    private void setArc(androidx.wear.protolayout.proto.LayoutElementProto.Arc value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 7;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
     */
    private void mergeArc(androidx.wear.protolayout.proto.LayoutElementProto.Arc value) {
      value.getClass();
  if (innerCase_ == 7 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Arc.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Arc.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Arc) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 7;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
     */
    private void clearArc() {
      if (innerCase_ == 7) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int SPANNABLE_FIELD_NUMBER = 8;
    /**
     * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
     */
    @java.lang.Override
    public boolean hasSpannable() {
      return innerCase_ == 8;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.Spannable getSpannable() {
      if (innerCase_ == 8) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.Spannable) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.Spannable.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
     */
    private void setSpannable(androidx.wear.protolayout.proto.LayoutElementProto.Spannable value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 8;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
     */
    private void mergeSpannable(androidx.wear.protolayout.proto.LayoutElementProto.Spannable value) {
      value.getClass();
  if (innerCase_ == 8 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.Spannable.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.Spannable.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.Spannable) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 8;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
     */
    private void clearSpannable() {
      if (innerCase_ == 8) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement 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(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The root of all layout elements. This exists to act as a holder for all of
     * the actual layout elements above.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.LayoutElement}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.LayoutElement)
        androidx.wear.protolayout.proto.LayoutElementProto.LayoutElementOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
       */
      @java.lang.Override
      public boolean hasColumn() {
        return instance.hasColumn();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Column getColumn() {
        return instance.getColumn();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
       */
      public Builder setColumn(androidx.wear.protolayout.proto.LayoutElementProto.Column value) {
        copyOnWrite();
        instance.setColumn(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
       */
      public Builder setColumn(
          androidx.wear.protolayout.proto.LayoutElementProto.Column.Builder builderForValue) {
        copyOnWrite();
        instance.setColumn(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
       */
      public Builder mergeColumn(androidx.wear.protolayout.proto.LayoutElementProto.Column value) {
        copyOnWrite();
        instance.mergeColumn(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Column column = 1;</code>
       */
      public Builder clearColumn() {
        copyOnWrite();
        instance.clearColumn();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
       */
      @java.lang.Override
      public boolean hasRow() {
        return instance.hasRow();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Row getRow() {
        return instance.getRow();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
       */
      public Builder setRow(androidx.wear.protolayout.proto.LayoutElementProto.Row value) {
        copyOnWrite();
        instance.setRow(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
       */
      public Builder setRow(
          androidx.wear.protolayout.proto.LayoutElementProto.Row.Builder builderForValue) {
        copyOnWrite();
        instance.setRow(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
       */
      public Builder mergeRow(androidx.wear.protolayout.proto.LayoutElementProto.Row value) {
        copyOnWrite();
        instance.mergeRow(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Row row = 2;</code>
       */
      public Builder clearRow() {
        copyOnWrite();
        instance.clearRow();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
       */
      @java.lang.Override
      public boolean hasBox() {
        return instance.hasBox();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Box getBox() {
        return instance.getBox();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
       */
      public Builder setBox(androidx.wear.protolayout.proto.LayoutElementProto.Box value) {
        copyOnWrite();
        instance.setBox(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
       */
      public Builder setBox(
          androidx.wear.protolayout.proto.LayoutElementProto.Box.Builder builderForValue) {
        copyOnWrite();
        instance.setBox(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
       */
      public Builder mergeBox(androidx.wear.protolayout.proto.LayoutElementProto.Box value) {
        copyOnWrite();
        instance.mergeBox(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Box box = 3;</code>
       */
      public Builder clearBox() {
        copyOnWrite();
        instance.clearBox();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
       */
      @java.lang.Override
      public boolean hasSpacer() {
        return instance.hasSpacer();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Spacer getSpacer() {
        return instance.getSpacer();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
       */
      public Builder setSpacer(androidx.wear.protolayout.proto.LayoutElementProto.Spacer value) {
        copyOnWrite();
        instance.setSpacer(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
       */
      public Builder setSpacer(
          androidx.wear.protolayout.proto.LayoutElementProto.Spacer.Builder builderForValue) {
        copyOnWrite();
        instance.setSpacer(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
       */
      public Builder mergeSpacer(androidx.wear.protolayout.proto.LayoutElementProto.Spacer value) {
        copyOnWrite();
        instance.mergeSpacer(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spacer spacer = 4;</code>
       */
      public Builder clearSpacer() {
        copyOnWrite();
        instance.clearSpacer();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
       */
      @java.lang.Override
      public boolean hasText() {
        return instance.hasText();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Text getText() {
        return instance.getText();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
       */
      public Builder setText(androidx.wear.protolayout.proto.LayoutElementProto.Text value) {
        copyOnWrite();
        instance.setText(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
       */
      public Builder setText(
          androidx.wear.protolayout.proto.LayoutElementProto.Text.Builder builderForValue) {
        copyOnWrite();
        instance.setText(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
       */
      public Builder mergeText(androidx.wear.protolayout.proto.LayoutElementProto.Text value) {
        copyOnWrite();
        instance.mergeText(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Text text = 5;</code>
       */
      public Builder clearText() {
        copyOnWrite();
        instance.clearText();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
       */
      @java.lang.Override
      public boolean hasImage() {
        return instance.hasImage();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Image getImage() {
        return instance.getImage();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
       */
      public Builder setImage(androidx.wear.protolayout.proto.LayoutElementProto.Image value) {
        copyOnWrite();
        instance.setImage(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
       */
      public Builder setImage(
          androidx.wear.protolayout.proto.LayoutElementProto.Image.Builder builderForValue) {
        copyOnWrite();
        instance.setImage(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
       */
      public Builder mergeImage(androidx.wear.protolayout.proto.LayoutElementProto.Image value) {
        copyOnWrite();
        instance.mergeImage(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Image image = 6;</code>
       */
      public Builder clearImage() {
        copyOnWrite();
        instance.clearImage();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
       */
      @java.lang.Override
      public boolean hasArc() {
        return instance.hasArc();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Arc getArc() {
        return instance.getArc();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
       */
      public Builder setArc(androidx.wear.protolayout.proto.LayoutElementProto.Arc value) {
        copyOnWrite();
        instance.setArc(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
       */
      public Builder setArc(
          androidx.wear.protolayout.proto.LayoutElementProto.Arc.Builder builderForValue) {
        copyOnWrite();
        instance.setArc(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
       */
      public Builder mergeArc(androidx.wear.protolayout.proto.LayoutElementProto.Arc value) {
        copyOnWrite();
        instance.mergeArc(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Arc arc = 7;</code>
       */
      public Builder clearArc() {
        copyOnWrite();
        instance.clearArc();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
       */
      @java.lang.Override
      public boolean hasSpannable() {
        return instance.hasSpannable();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.Spannable getSpannable() {
        return instance.getSpannable();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
       */
      public Builder setSpannable(androidx.wear.protolayout.proto.LayoutElementProto.Spannable value) {
        copyOnWrite();
        instance.setSpannable(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
       */
      public Builder setSpannable(
          androidx.wear.protolayout.proto.LayoutElementProto.Spannable.Builder builderForValue) {
        copyOnWrite();
        instance.setSpannable(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
       */
      public Builder mergeSpannable(androidx.wear.protolayout.proto.LayoutElementProto.Spannable value) {
        copyOnWrite();
        instance.mergeSpannable(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.Spannable spannable = 8;</code>
       */
      public Builder clearSpannable() {
        copyOnWrite();
        instance.clearSpannable();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.LayoutElement)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.LayoutElementProto.Column.class,
              androidx.wear.protolayout.proto.LayoutElementProto.Row.class,
              androidx.wear.protolayout.proto.LayoutElementProto.Box.class,
              androidx.wear.protolayout.proto.LayoutElementProto.Spacer.class,
              androidx.wear.protolayout.proto.LayoutElementProto.Text.class,
              androidx.wear.protolayout.proto.LayoutElementProto.Image.class,
              androidx.wear.protolayout.proto.LayoutElementProto.Arc.class,
              androidx.wear.protolayout.proto.LayoutElementProto.Spannable.class,
            };
            java.lang.String info =
                "\u0000\b\u0001\u0000\u0001\b\b\u0000\u0000\u0000\u0001<\u0000\u0002<\u0000\u0003" +
                "<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000\u0007<\u0000\b<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement>(
                        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:androidx.wear.protolayout.proto.LayoutElement)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement DEFAULT_INSTANCE;
    static {
      LayoutElement defaultInstance = new LayoutElement();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        LayoutElement.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface ArcLayoutElementOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.ArcLayoutElement)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
     * @return Whether the text field is set.
     */
    boolean hasText();
    /**
     * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
     * @return The text.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ArcText getText();

    /**
     * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
     * @return Whether the line field is set.
     */
    boolean hasLine();
    /**
     * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
     * @return The line.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ArcLine getLine();

    /**
     * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
     * @return Whether the spacer field is set.
     */
    boolean hasSpacer();
    /**
     * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
     * @return The spacer.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer getSpacer();

    /**
     * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
     * @return Whether the adapter field is set.
     */
    boolean hasAdapter();
    /**
     * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
     * @return The adapter.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter getAdapter();

    public androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement.InnerCase getInnerCase();
  }
  /**
   * <pre>
   * The root of all elements that can be used in an Arc. This exists to act as a
   * holder for all of the actual arc layout elements above.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.ArcLayoutElement}
   */
  public  static final class ArcLayoutElement extends
      com.google.protobuf.GeneratedMessageLite<
          ArcLayoutElement, ArcLayoutElement.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.ArcLayoutElement)
      ArcLayoutElementOrBuilder {
    private ArcLayoutElement() {
    }
    private int innerCase_ = 0;
    private java.lang.Object inner_;
    public enum InnerCase {
      TEXT(1),
      LINE(2),
      SPACER(3),
      ADAPTER(4),
      INNER_NOT_SET(0);
      private final int value;
      private InnerCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static InnerCase valueOf(int value) {
        return forNumber(value);
      }

      public static InnerCase forNumber(int value) {
        switch (value) {
          case 1: return TEXT;
          case 2: return LINE;
          case 3: return SPACER;
          case 4: return ADAPTER;
          case 0: return INNER_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public InnerCase
    getInnerCase() {
      return InnerCase.forNumber(
          innerCase_);
    }

    private void clearInner() {
      innerCase_ = 0;
      inner_ = null;
    }

    public static final int TEXT_FIELD_NUMBER = 1;
    /**
     * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
     */
    @java.lang.Override
    public boolean hasText() {
      return innerCase_ == 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ArcText getText() {
      if (innerCase_ == 1) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.ArcText) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.ArcText.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
     */
    private void setText(androidx.wear.protolayout.proto.LayoutElementProto.ArcText value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
     */
    private void mergeText(androidx.wear.protolayout.proto.LayoutElementProto.ArcText value) {
      value.getClass();
  if (innerCase_ == 1 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.ArcText.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.ArcText.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.ArcText) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 1;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
     */
    private void clearText() {
      if (innerCase_ == 1) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int LINE_FIELD_NUMBER = 2;
    /**
     * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
     */
    @java.lang.Override
    public boolean hasLine() {
      return innerCase_ == 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ArcLine getLine() {
      if (innerCase_ == 2) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.ArcLine) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.ArcLine.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
     */
    private void setLine(androidx.wear.protolayout.proto.LayoutElementProto.ArcLine value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
     */
    private void mergeLine(androidx.wear.protolayout.proto.LayoutElementProto.ArcLine value) {
      value.getClass();
  if (innerCase_ == 2 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.ArcLine.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.ArcLine.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.ArcLine) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 2;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
     */
    private void clearLine() {
      if (innerCase_ == 2) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int SPACER_FIELD_NUMBER = 3;
    /**
     * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
     */
    @java.lang.Override
    public boolean hasSpacer() {
      return innerCase_ == 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer getSpacer() {
      if (innerCase_ == 3) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
     */
    private void setSpacer(androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
     */
    private void mergeSpacer(androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer value) {
      value.getClass();
  if (innerCase_ == 3 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 3;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
     */
    private void clearSpacer() {
      if (innerCase_ == 3) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static final int ADAPTER_FIELD_NUMBER = 4;
    /**
     * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
     */
    @java.lang.Override
    public boolean hasAdapter() {
      return innerCase_ == 4;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter getAdapter() {
      if (innerCase_ == 4) {
         return (androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter) inner_;
      }
      return androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter.getDefaultInstance();
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
     */
    private void setAdapter(androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter value) {
      value.getClass();
  inner_ = value;
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
     */
    private void mergeAdapter(androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter value) {
      value.getClass();
  if (innerCase_ == 4 &&
          inner_ != androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter.getDefaultInstance()) {
        inner_ = androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter.newBuilder((androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter) inner_)
            .mergeFrom(value).buildPartial();
      } else {
        inner_ = value;
      }
      innerCase_ = 4;
    }
    /**
     * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
     */
    private void clearAdapter() {
      if (innerCase_ == 4) {
        innerCase_ = 0;
        inner_ = null;
      }
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement 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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement 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(androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * The root of all elements that can be used in an Arc. This exists to act as a
     * holder for all of the actual arc layout elements above.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.ArcLayoutElement}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.ArcLayoutElement)
        androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElementOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public InnerCase
          getInnerCase() {
        return instance.getInnerCase();
      }

      public Builder clearInner() {
        copyOnWrite();
        instance.clearInner();
        return this;
      }


      /**
       * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
       */
      @java.lang.Override
      public boolean hasText() {
        return instance.hasText();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ArcText getText() {
        return instance.getText();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
       */
      public Builder setText(androidx.wear.protolayout.proto.LayoutElementProto.ArcText value) {
        copyOnWrite();
        instance.setText(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
       */
      public Builder setText(
          androidx.wear.protolayout.proto.LayoutElementProto.ArcText.Builder builderForValue) {
        copyOnWrite();
        instance.setText(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
       */
      public Builder mergeText(androidx.wear.protolayout.proto.LayoutElementProto.ArcText value) {
        copyOnWrite();
        instance.mergeText(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcText text = 1;</code>
       */
      public Builder clearText() {
        copyOnWrite();
        instance.clearText();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
       */
      @java.lang.Override
      public boolean hasLine() {
        return instance.hasLine();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ArcLine getLine() {
        return instance.getLine();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
       */
      public Builder setLine(androidx.wear.protolayout.proto.LayoutElementProto.ArcLine value) {
        copyOnWrite();
        instance.setLine(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
       */
      public Builder setLine(
          androidx.wear.protolayout.proto.LayoutElementProto.ArcLine.Builder builderForValue) {
        copyOnWrite();
        instance.setLine(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
       */
      public Builder mergeLine(androidx.wear.protolayout.proto.LayoutElementProto.ArcLine value) {
        copyOnWrite();
        instance.mergeLine(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcLine line = 2;</code>
       */
      public Builder clearLine() {
        copyOnWrite();
        instance.clearLine();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
       */
      @java.lang.Override
      public boolean hasSpacer() {
        return instance.hasSpacer();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer getSpacer() {
        return instance.getSpacer();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
       */
      public Builder setSpacer(androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer value) {
        copyOnWrite();
        instance.setSpacer(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
       */
      public Builder setSpacer(
          androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer.Builder builderForValue) {
        copyOnWrite();
        instance.setSpacer(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
       */
      public Builder mergeSpacer(androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer value) {
        copyOnWrite();
        instance.mergeSpacer(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcSpacer spacer = 3;</code>
       */
      public Builder clearSpacer() {
        copyOnWrite();
        instance.clearSpacer();
        return this;
      }

      /**
       * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
       */
      @java.lang.Override
      public boolean hasAdapter() {
        return instance.hasAdapter();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter getAdapter() {
        return instance.getAdapter();
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
       */
      public Builder setAdapter(androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter value) {
        copyOnWrite();
        instance.setAdapter(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
       */
      public Builder setAdapter(
          androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter.Builder builderForValue) {
        copyOnWrite();
        instance.setAdapter(builderForValue.build());
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
       */
      public Builder mergeAdapter(androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter value) {
        copyOnWrite();
        instance.mergeAdapter(value);
        return this;
      }
      /**
       * <code>.androidx.wear.protolayout.proto.ArcAdapter adapter = 4;</code>
       */
      public Builder clearAdapter() {
        copyOnWrite();
        instance.clearAdapter();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.ArcLayoutElement)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "inner_",
              "innerCase_",
              androidx.wear.protolayout.proto.LayoutElementProto.ArcText.class,
              androidx.wear.protolayout.proto.LayoutElementProto.ArcLine.class,
              androidx.wear.protolayout.proto.LayoutElementProto.ArcSpacer.class,
              androidx.wear.protolayout.proto.LayoutElementProto.ArcAdapter.class,
            };
            java.lang.String info =
                "\u0000\u0004\u0001\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000\u0004<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement>(
                        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:androidx.wear.protolayout.proto.ArcLayoutElement)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement DEFAULT_INSTANCE;
    static {
      ArcLayoutElement defaultInstance = new ArcLayoutElement();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ArcLayoutElement.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.ArcLayoutElement getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

  public interface LayoutOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.wear.protolayout.proto.Layout)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * The root element in the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
     * @return Whether the root field is set.
     */
    boolean hasRoot();
    /**
     * <pre>
     * The root element in the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
     * @return The root.
     */
    androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getRoot();

    /**
     * <pre>
     * The fingerprint for the tree starting at "root".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
     * @return Whether the fingerprint field is set.
     */
    boolean hasFingerprint();
    /**
     * <pre>
     * The fingerprint for the tree starting at "root".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
     * @return The fingerprint.
     */
    androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint getFingerprint();
  }
  /**
   * <pre>
   * A complete layout.
   * </pre>
   *
   * Protobuf type {@code androidx.wear.protolayout.proto.Layout}
   */
  public  static final class Layout extends
      com.google.protobuf.GeneratedMessageLite<
          Layout, Layout.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.wear.protolayout.proto.Layout)
      LayoutOrBuilder {
    private Layout() {
    }
    public static final int ROOT_FIELD_NUMBER = 1;
    private androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement root_;
    /**
     * <pre>
     * The root element in the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
     */
    @java.lang.Override
    public boolean hasRoot() {
      return root_ != null;
    }
    /**
     * <pre>
     * The root element in the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getRoot() {
      return root_ == null ? androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.getDefaultInstance() : root_;
    }
    /**
     * <pre>
     * The root element in the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
     */
    private void setRoot(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  root_ = value;
      
      }
    /**
     * <pre>
     * The root element in the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeRoot(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
      value.getClass();
  if (root_ != null &&
          root_ != androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.getDefaultInstance()) {
        root_ =
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.newBuilder(root_).mergeFrom(value).buildPartial();
      } else {
        root_ = value;
      }
      
    }
    /**
     * <pre>
     * The root element in the layout.
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
     */
    private void clearRoot() {  root_ = null;
      
    }

    public static final int FINGERPRINT_FIELD_NUMBER = 1000;
    private androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint fingerprint_;
    /**
     * <pre>
     * The fingerprint for the tree starting at "root".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
     */
    @java.lang.Override
    public boolean hasFingerprint() {
      return fingerprint_ != null;
    }
    /**
     * <pre>
     * The fingerprint for the tree starting at "root".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
     */
    @java.lang.Override
    public androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint getFingerprint() {
      return fingerprint_ == null ? androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint.getDefaultInstance() : fingerprint_;
    }
    /**
     * <pre>
     * The fingerprint for the tree starting at "root".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
     */
    private void setFingerprint(androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint value) {
      value.getClass();
  fingerprint_ = value;
      
      }
    /**
     * <pre>
     * The fingerprint for the tree starting at "root".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeFingerprint(androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint value) {
      value.getClass();
  if (fingerprint_ != null &&
          fingerprint_ != androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint.getDefaultInstance()) {
        fingerprint_ =
          androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint.newBuilder(fingerprint_).mergeFrom(value).buildPartial();
      } else {
        fingerprint_ = value;
      }
      
    }
    /**
     * <pre>
     * The fingerprint for the tree starting at "root".
     * </pre>
     *
     * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
     */
    private void clearFingerprint() {  fingerprint_ = null;
      
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout 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 androidx.wear.protolayout.proto.LayoutElementProto.Layout parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout 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 androidx.wear.protolayout.proto.LayoutElementProto.Layout parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout 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 androidx.wear.protolayout.proto.LayoutElementProto.Layout parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout 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 androidx.wear.protolayout.proto.LayoutElementProto.Layout parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout 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(androidx.wear.protolayout.proto.LayoutElementProto.Layout prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * A complete layout.
     * </pre>
     *
     * Protobuf type {@code androidx.wear.protolayout.proto.Layout}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.wear.protolayout.proto.LayoutElementProto.Layout, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.wear.protolayout.proto.Layout)
        androidx.wear.protolayout.proto.LayoutElementProto.LayoutOrBuilder {
      // Construct using androidx.wear.protolayout.proto.LayoutElementProto.Layout.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * The root element in the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
       */
      @java.lang.Override
      public boolean hasRoot() {
        return instance.hasRoot();
      }
      /**
       * <pre>
       * The root element in the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement getRoot() {
        return instance.getRoot();
      }
      /**
       * <pre>
       * The root element in the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
       */
      public Builder setRoot(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.setRoot(value);
        return this;
        }
      /**
       * <pre>
       * The root element in the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
       */
      public Builder setRoot(
          androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement.Builder builderForValue) {
        copyOnWrite();
        instance.setRoot(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The root element in the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
       */
      public Builder mergeRoot(androidx.wear.protolayout.proto.LayoutElementProto.LayoutElement value) {
        copyOnWrite();
        instance.mergeRoot(value);
        return this;
      }
      /**
       * <pre>
       * The root element in the layout.
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.LayoutElement root = 1;</code>
       */
      public Builder clearRoot() {  copyOnWrite();
        instance.clearRoot();
        return this;
      }

      /**
       * <pre>
       * The fingerprint for the tree starting at "root".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
       */
      @java.lang.Override
      public boolean hasFingerprint() {
        return instance.hasFingerprint();
      }
      /**
       * <pre>
       * The fingerprint for the tree starting at "root".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
       */
      @java.lang.Override
      public androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint getFingerprint() {
        return instance.getFingerprint();
      }
      /**
       * <pre>
       * The fingerprint for the tree starting at "root".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
       */
      public Builder setFingerprint(androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint value) {
        copyOnWrite();
        instance.setFingerprint(value);
        return this;
        }
      /**
       * <pre>
       * The fingerprint for the tree starting at "root".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
       */
      public Builder setFingerprint(
          androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint.Builder builderForValue) {
        copyOnWrite();
        instance.setFingerprint(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * The fingerprint for the tree starting at "root".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
       */
      public Builder mergeFingerprint(androidx.wear.protolayout.proto.FingerprintProto.TreeFingerprint value) {
        copyOnWrite();
        instance.mergeFingerprint(value);
        return this;
      }
      /**
       * <pre>
       * The fingerprint for the tree starting at "root".
       * </pre>
       *
       * <code>.androidx.wear.protolayout.proto.TreeFingerprint fingerprint = 1000;</code>
       */
      public Builder clearFingerprint() {  copyOnWrite();
        instance.clearFingerprint();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.wear.protolayout.proto.Layout)
    }
    @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 androidx.wear.protolayout.proto.LayoutElementProto.Layout();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "root_",
              "fingerprint_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u03e8\u0002\u0000\u0000\u0000\u0001\t\u03e8\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.wear.protolayout.proto.LayoutElementProto.Layout> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.wear.protolayout.proto.LayoutElementProto.Layout.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.wear.protolayout.proto.LayoutElementProto.Layout>(
                        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:androidx.wear.protolayout.proto.Layout)
    private static final androidx.wear.protolayout.proto.LayoutElementProto.Layout DEFAULT_INSTANCE;
    static {
      Layout defaultInstance = new Layout();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Layout.class, defaultInstance);
    }

    public static androidx.wear.protolayout.proto.LayoutElementProto.Layout getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}