content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: messages.proto
  // Protobuf Java Version: 4.28.2
  
  package finsky.protos;
  
  /**
   * Protobuf type {@code finsky.protos.Annotations}
   */
  public  final class Annotations extends
      com.google.protobuf.GeneratedMessageLite<
          Annotations, Annotations.Builder> implements
      // @@protoc_insertion_point(message_implements:finsky.protos.Annotations)
      AnnotationsOrBuilder {
    private Annotations() {
      badgeForCreator_ = emptyProtobufList();
      infoBadge_ = emptyProtobufList();
      offerNote_ = "";
      privacyPolicyUrl_ = "";
      attributionHtml_ = "";
      detailsPageCluster_ = emptyProtobufList();
      featureBadge_ = emptyProtobufList();
      downloadsLabel_ = "";
      categoryName_ = "";
      displayBadge_ = emptyProtobufList();
      liveStreamUrl_ = "";
      promotionStreamUrl_ = "";
    }
    private int bitField0_;
    public static final int SECTIONRELATED_FIELD_NUMBER = 1;
    private finsky.protos.SectionMetaData sectionRelated_;
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
     */
    @java.lang.Override
    public boolean hasSectionRelated() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionRelated() {
      return sectionRelated_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionRelated_;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
     */
    private void setSectionRelated(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionRelated_ = value;
      bitField0_ |= 0x00000001;
      }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionRelated(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionRelated_ != null &&
          sectionRelated_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionRelated_ =
          finsky.protos.SectionMetaData.newBuilder(sectionRelated_).mergeFrom(value).buildPartial();
      } else {
        sectionRelated_ = value;
      }
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
     */
    private void clearSectionRelated() {  sectionRelated_ = null;
      bitField0_ = (bitField0_ & ~0x00000001);
    }
  
    public static final int SECTIONMOREBY_FIELD_NUMBER = 2;
    private finsky.protos.SectionMetaData sectionMoreBy_;
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
     */
    @java.lang.Override
    public boolean hasSectionMoreBy() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionMoreBy() {
      return sectionMoreBy_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionMoreBy_;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
     */
    private void setSectionMoreBy(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionMoreBy_ = value;
      bitField0_ |= 0x00000002;
      }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionMoreBy(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionMoreBy_ != null &&
          sectionMoreBy_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionMoreBy_ =
          finsky.protos.SectionMetaData.newBuilder(sectionMoreBy_).mergeFrom(value).buildPartial();
      } else {
        sectionMoreBy_ = value;
      }
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
     */
    private void clearSectionMoreBy() {  sectionMoreBy_ = null;
      bitField0_ = (bitField0_ & ~0x00000002);
    }
  
    public static final int SECTIONBODYOFWORK_FIELD_NUMBER = 5;
    private finsky.protos.SectionMetaData sectionBodyOfWork_;
    /**
     * <pre>
     * repeated Warning warning = 4;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
     */
    @java.lang.Override
    public boolean hasSectionBodyOfWork() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * repeated Warning warning = 4;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionBodyOfWork() {
      return sectionBodyOfWork_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionBodyOfWork_;
    }
    /**
     * <pre>
     * repeated Warning warning = 4;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
     */
    private void setSectionBodyOfWork(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionBodyOfWork_ = value;
      bitField0_ |= 0x00000004;
      }
    /**
     * <pre>
     * repeated Warning warning = 4;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionBodyOfWork(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionBodyOfWork_ != null &&
          sectionBodyOfWork_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionBodyOfWork_ =
          finsky.protos.SectionMetaData.newBuilder(sectionBodyOfWork_).mergeFrom(value).buildPartial();
      } else {
        sectionBodyOfWork_ = value;
      }
      bitField0_ |= 0x00000004;
    }
    /**
     * <pre>
     * repeated Warning warning = 4;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
     */
    private void clearSectionBodyOfWork() {  sectionBodyOfWork_ = null;
      bitField0_ = (bitField0_ & ~0x00000004);
    }
  
    public static final int SECTIONCORECONTENT_FIELD_NUMBER = 6;
    private finsky.protos.SectionMetaData sectionCoreContent_;
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
     */
    @java.lang.Override
    public boolean hasSectionCoreContent() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionCoreContent() {
      return sectionCoreContent_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionCoreContent_;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
     */
    private void setSectionCoreContent(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionCoreContent_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionCoreContent(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionCoreContent_ != null &&
          sectionCoreContent_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionCoreContent_ =
          finsky.protos.SectionMetaData.newBuilder(sectionCoreContent_).mergeFrom(value).buildPartial();
      } else {
        sectionCoreContent_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
     */
    private void clearSectionCoreContent() {  sectionCoreContent_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }
  
    public static final int BADGEFORCREATOR_FIELD_NUMBER = 8;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> badgeForCreator_;
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.Badge> getBadgeForCreatorList() {
      return badgeForCreator_;
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    public java.util.List<? extends finsky.protos.BadgeOrBuilder> 
        getBadgeForCreatorOrBuilderList() {
      return badgeForCreator_;
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    @java.lang.Override
    public int getBadgeForCreatorCount() {
      return badgeForCreator_.size();
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    @java.lang.Override
    public finsky.protos.Badge getBadgeForCreator(int index) {
      return badgeForCreator_.get(index);
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    public finsky.protos.BadgeOrBuilder getBadgeForCreatorOrBuilder(
        int index) {
      return badgeForCreator_.get(index);
    }
    private void ensureBadgeForCreatorIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> tmp = badgeForCreator_;
      if (!tmp.isModifiable()) {
        badgeForCreator_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    private void setBadgeForCreator(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureBadgeForCreatorIsMutable();
      badgeForCreator_.set(index, value);
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    private void addBadgeForCreator(finsky.protos.Badge value) {
      value.getClass();
    ensureBadgeForCreatorIsMutable();
      badgeForCreator_.add(value);
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    private void addBadgeForCreator(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureBadgeForCreatorIsMutable();
      badgeForCreator_.add(index, value);
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    private void addAllBadgeForCreator(
        java.lang.Iterable<? extends finsky.protos.Badge> values) {
      ensureBadgeForCreatorIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, badgeForCreator_);
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    private void clearBadgeForCreator() {
      badgeForCreator_ = emptyProtobufList();
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaData = 7;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
     */
    private void removeBadgeForCreator(int index) {
      ensureBadgeForCreatorIsMutable();
      badgeForCreator_.remove(index);
    }
  
    public static final int INFOBADGE_FIELD_NUMBER = 9;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> infoBadge_;
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.Badge> getInfoBadgeList() {
      return infoBadge_;
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    public java.util.List<? extends finsky.protos.BadgeOrBuilder> 
        getInfoBadgeOrBuilderList() {
      return infoBadge_;
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    @java.lang.Override
    public int getInfoBadgeCount() {
      return infoBadge_.size();
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    @java.lang.Override
    public finsky.protos.Badge getInfoBadge(int index) {
      return infoBadge_.get(index);
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    public finsky.protos.BadgeOrBuilder getInfoBadgeOrBuilder(
        int index) {
      return infoBadge_.get(index);
    }
    private void ensureInfoBadgeIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> tmp = infoBadge_;
      if (!tmp.isModifiable()) {
        infoBadge_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    private void setInfoBadge(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureInfoBadgeIsMutable();
      infoBadge_.set(index, value);
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    private void addInfoBadge(finsky.protos.Badge value) {
      value.getClass();
    ensureInfoBadgeIsMutable();
      infoBadge_.add(value);
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    private void addInfoBadge(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureInfoBadgeIsMutable();
      infoBadge_.add(index, value);
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    private void addAllInfoBadge(
        java.lang.Iterable<? extends finsky.protos.Badge> values) {
      ensureInfoBadgeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, infoBadge_);
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    private void clearInfoBadge() {
      infoBadge_ = emptyProtobufList();
    }
    /**
     * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
     */
    private void removeInfoBadge(int index) {
      ensureInfoBadgeIsMutable();
      infoBadge_.remove(index);
    }
  
    public static final int ANNOTATIONLINK_FIELD_NUMBER = 10;
    private finsky.protos.AnnotationLink annotationLink_;
    /**
     * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
     */
    @java.lang.Override
    public boolean hasAnnotationLink() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
     */
    @java.lang.Override
    public finsky.protos.AnnotationLink getAnnotationLink() {
      return annotationLink_ == null ? finsky.protos.AnnotationLink.getDefaultInstance() : annotationLink_;
    }
    /**
     * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
     */
    private void setAnnotationLink(finsky.protos.AnnotationLink value) {
      value.getClass();
    annotationLink_ = value;
      bitField0_ |= 0x00000010;
      }
    /**
     * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAnnotationLink(finsky.protos.AnnotationLink value) {
      value.getClass();
    if (annotationLink_ != null &&
          annotationLink_ != finsky.protos.AnnotationLink.getDefaultInstance()) {
        annotationLink_ =
          finsky.protos.AnnotationLink.newBuilder(annotationLink_).mergeFrom(value).buildPartial();
      } else {
        annotationLink_ = value;
      }
      bitField0_ |= 0x00000010;
    }
    /**
     * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
     */
    private void clearAnnotationLink() {  annotationLink_ = null;
      bitField0_ = (bitField0_ & ~0x00000010);
    }
  
    public static final int SECTIONCROSSSELL_FIELD_NUMBER = 11;
    private finsky.protos.SectionMetaData sectionCrossSell_;
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
     */
    @java.lang.Override
    public boolean hasSectionCrossSell() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionCrossSell() {
      return sectionCrossSell_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionCrossSell_;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
     */
    private void setSectionCrossSell(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionCrossSell_ = value;
      bitField0_ |= 0x00000020;
      }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionCrossSell(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionCrossSell_ != null &&
          sectionCrossSell_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionCrossSell_ =
          finsky.protos.SectionMetaData.newBuilder(sectionCrossSell_).mergeFrom(value).buildPartial();
      } else {
        sectionCrossSell_ = value;
      }
      bitField0_ |= 0x00000020;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
     */
    private void clearSectionCrossSell() {  sectionCrossSell_ = null;
      bitField0_ = (bitField0_ & ~0x00000020);
    }
  
    public static final int SECTIONRELATEDITEMTYPE_FIELD_NUMBER = 12;
    private finsky.protos.SectionMetaData sectionRelatedItemType_;
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
     */
    @java.lang.Override
    public boolean hasSectionRelatedItemType() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionRelatedItemType() {
      return sectionRelatedItemType_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionRelatedItemType_;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
     */
    private void setSectionRelatedItemType(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionRelatedItemType_ = value;
      bitField0_ |= 0x00000040;
      }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionRelatedItemType(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionRelatedItemType_ != null &&
          sectionRelatedItemType_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionRelatedItemType_ =
          finsky.protos.SectionMetaData.newBuilder(sectionRelatedItemType_).mergeFrom(value).buildPartial();
      } else {
        sectionRelatedItemType_ = value;
      }
      bitField0_ |= 0x00000040;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
     */
    private void clearSectionRelatedItemType() {  sectionRelatedItemType_ = null;
      bitField0_ = (bitField0_ & ~0x00000040);
    }
  
    public static final int OFFERNOTE_FIELD_NUMBER = 14;
    private java.lang.String offerNote_;
    /**
     * <pre>
     * repeated PromotedDoc promotedDoc = 13;
     * </pre>
     *
     * <code>optional string offerNote = 14;</code>
     * @return Whether the offerNote field is set.
     */
    @java.lang.Override
    public boolean hasOfferNote() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * repeated PromotedDoc promotedDoc = 13;
     * </pre>
     *
     * <code>optional string offerNote = 14;</code>
     * @return The offerNote.
     */
    @java.lang.Override
    public java.lang.String getOfferNote() {
      return offerNote_;
    }
    /**
     * <pre>
     * repeated PromotedDoc promotedDoc = 13;
     * </pre>
     *
     * <code>optional string offerNote = 14;</code>
     * @return The bytes for offerNote.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOfferNoteBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(offerNote_);
    }
    /**
     * <pre>
     * repeated PromotedDoc promotedDoc = 13;
     * </pre>
     *
     * <code>optional string offerNote = 14;</code>
     * @param value The offerNote to set.
     */
    private void setOfferNote(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000080;
      offerNote_ = value;
    }
    /**
     * <pre>
     * repeated PromotedDoc promotedDoc = 13;
     * </pre>
     *
     * <code>optional string offerNote = 14;</code>
     */
    private void clearOfferNote() {
      bitField0_ = (bitField0_ & ~0x00000080);
      offerNote_ = getDefaultInstance().getOfferNote();
    }
    /**
     * <pre>
     * repeated PromotedDoc promotedDoc = 13;
     * </pre>
     *
     * <code>optional string offerNote = 14;</code>
     * @param value The bytes for offerNote to set.
     */
    private void setOfferNoteBytes(
        com.google.protobuf.ByteString value) {
      offerNote_ = value.toStringUtf8();
      bitField0_ |= 0x00000080;
    }
  
    public static final int PRIVACYPOLICYURL_FIELD_NUMBER = 18;
    private java.lang.String privacyPolicyUrl_;
    /**
     * <code>optional string privacyPolicyUrl = 18;</code>
     * @return Whether the privacyPolicyUrl field is set.
     */
    @java.lang.Override
    public boolean hasPrivacyPolicyUrl() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional string privacyPolicyUrl = 18;</code>
     * @return The privacyPolicyUrl.
     */
    @java.lang.Override
    public java.lang.String getPrivacyPolicyUrl() {
      return privacyPolicyUrl_;
    }
    /**
     * <code>optional string privacyPolicyUrl = 18;</code>
     * @return The bytes for privacyPolicyUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPrivacyPolicyUrlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(privacyPolicyUrl_);
    }
    /**
     * <code>optional string privacyPolicyUrl = 18;</code>
     * @param value The privacyPolicyUrl to set.
     */
    private void setPrivacyPolicyUrl(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000100;
      privacyPolicyUrl_ = value;
    }
    /**
     * <code>optional string privacyPolicyUrl = 18;</code>
     */
    private void clearPrivacyPolicyUrl() {
      bitField0_ = (bitField0_ & ~0x00000100);
      privacyPolicyUrl_ = getDefaultInstance().getPrivacyPolicyUrl();
    }
    /**
     * <code>optional string privacyPolicyUrl = 18;</code>
     * @param value The bytes for privacyPolicyUrl to set.
     */
    private void setPrivacyPolicyUrlBytes(
        com.google.protobuf.ByteString value) {
      privacyPolicyUrl_ = value.toStringUtf8();
      bitField0_ |= 0x00000100;
    }
  
    public static final int SECTIONSUGGESTFORRATING_FIELD_NUMBER = 22;
    private finsky.protos.SectionMetaData sectionSuggestForRating_;
    /**
     * <pre>
     * optional SuggestionReasons suggestion_reasons = 19;
     * optional Warning optimalDeviceClassWarning = 20;
     * repeated BadgeContainer badgeContainer = 21;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
     */
    @java.lang.Override
    public boolean hasSectionSuggestForRating() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * optional SuggestionReasons suggestion_reasons = 19;
     * optional Warning optimalDeviceClassWarning = 20;
     * repeated BadgeContainer badgeContainer = 21;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionSuggestForRating() {
      return sectionSuggestForRating_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionSuggestForRating_;
    }
    /**
     * <pre>
     * optional SuggestionReasons suggestion_reasons = 19;
     * optional Warning optimalDeviceClassWarning = 20;
     * repeated BadgeContainer badgeContainer = 21;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
     */
    private void setSectionSuggestForRating(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionSuggestForRating_ = value;
      bitField0_ |= 0x00000200;
      }
    /**
     * <pre>
     * optional SuggestionReasons suggestion_reasons = 19;
     * optional Warning optimalDeviceClassWarning = 20;
     * repeated BadgeContainer badgeContainer = 21;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionSuggestForRating(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionSuggestForRating_ != null &&
          sectionSuggestForRating_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionSuggestForRating_ =
          finsky.protos.SectionMetaData.newBuilder(sectionSuggestForRating_).mergeFrom(value).buildPartial();
      } else {
        sectionSuggestForRating_ = value;
      }
      bitField0_ |= 0x00000200;
    }
    /**
     * <pre>
     * optional SuggestionReasons suggestion_reasons = 19;
     * optional Warning optimalDeviceClassWarning = 20;
     * repeated BadgeContainer badgeContainer = 21;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
     */
    private void clearSectionSuggestForRating() {  sectionSuggestForRating_ = null;
      bitField0_ = (bitField0_ & ~0x00000200);
    }
  
    public static final int SECTIONPURCHASECROSSSELL_FIELD_NUMBER = 24;
    private finsky.protos.SectionMetaData sectionPurchaseCrossSell_;
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
     */
    @java.lang.Override
    public boolean hasSectionPurchaseCrossSell() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionPurchaseCrossSell() {
      return sectionPurchaseCrossSell_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionPurchaseCrossSell_;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
     */
    private void setSectionPurchaseCrossSell(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionPurchaseCrossSell_ = value;
      bitField0_ |= 0x00000400;
      }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionPurchaseCrossSell(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionPurchaseCrossSell_ != null &&
          sectionPurchaseCrossSell_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionPurchaseCrossSell_ =
          finsky.protos.SectionMetaData.newBuilder(sectionPurchaseCrossSell_).mergeFrom(value).buildPartial();
      } else {
        sectionPurchaseCrossSell_ = value;
      }
      bitField0_ |= 0x00000400;
    }
    /**
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
     */
    private void clearSectionPurchaseCrossSell() {  sectionPurchaseCrossSell_ = null;
      bitField0_ = (bitField0_ & ~0x00000400);
    }
  
    public static final int ATTRIBUTIONHTML_FIELD_NUMBER = 27;
    private java.lang.String attributionHtml_;
    /**
     * <pre>
     * repeated OverflowLink overflowLink = 25;
     * </pre>
     *
     * <code>optional string attributionHtml = 27;</code>
     * @return Whether the attributionHtml field is set.
     */
    @java.lang.Override
    public boolean hasAttributionHtml() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * repeated OverflowLink overflowLink = 25;
     * </pre>
     *
     * <code>optional string attributionHtml = 27;</code>
     * @return The attributionHtml.
     */
    @java.lang.Override
    public java.lang.String getAttributionHtml() {
      return attributionHtml_;
    }
    /**
     * <pre>
     * repeated OverflowLink overflowLink = 25;
     * </pre>
     *
     * <code>optional string attributionHtml = 27;</code>
     * @return The bytes for attributionHtml.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAttributionHtmlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(attributionHtml_);
    }
    /**
     * <pre>
     * repeated OverflowLink overflowLink = 25;
     * </pre>
     *
     * <code>optional string attributionHtml = 27;</code>
     * @param value The attributionHtml to set.
     */
    private void setAttributionHtml(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000800;
      attributionHtml_ = value;
    }
    /**
     * <pre>
     * repeated OverflowLink overflowLink = 25;
     * </pre>
     *
     * <code>optional string attributionHtml = 27;</code>
     */
    private void clearAttributionHtml() {
      bitField0_ = (bitField0_ & ~0x00000800);
      attributionHtml_ = getDefaultInstance().getAttributionHtml();
    }
    /**
     * <pre>
     * repeated OverflowLink overflowLink = 25;
     * </pre>
     *
     * <code>optional string attributionHtml = 27;</code>
     * @param value The bytes for attributionHtml to set.
     */
    private void setAttributionHtmlBytes(
        com.google.protobuf.ByteString value) {
      attributionHtml_ = value.toStringUtf8();
      bitField0_ |= 0x00000800;
    }
  
    public static final int PURCHASEHISTORYDETAILS_FIELD_NUMBER = 28;
    private finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails_;
    /**
     * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
     */
    @java.lang.Override
    public boolean hasPurchaseHistoryDetails() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
     */
    @java.lang.Override
    public finsky.protos.PurchaseHistoryDetails getPurchaseHistoryDetails() {
      return purchaseHistoryDetails_ == null ? finsky.protos.PurchaseHistoryDetails.getDefaultInstance() : purchaseHistoryDetails_;
    }
    /**
     * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
     */
    private void setPurchaseHistoryDetails(finsky.protos.PurchaseHistoryDetails value) {
      value.getClass();
    purchaseHistoryDetails_ = value;
      bitField0_ |= 0x00001000;
      }
    /**
     * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePurchaseHistoryDetails(finsky.protos.PurchaseHistoryDetails value) {
      value.getClass();
    if (purchaseHistoryDetails_ != null &&
          purchaseHistoryDetails_ != finsky.protos.PurchaseHistoryDetails.getDefaultInstance()) {
        purchaseHistoryDetails_ =
          finsky.protos.PurchaseHistoryDetails.newBuilder(purchaseHistoryDetails_).mergeFrom(value).buildPartial();
      } else {
        purchaseHistoryDetails_ = value;
      }
      bitField0_ |= 0x00001000;
    }
    /**
     * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
     */
    private void clearPurchaseHistoryDetails() {  purchaseHistoryDetails_ = null;
      bitField0_ = (bitField0_ & ~0x00001000);
    }
  
    public static final int BADGEFORLEGACYRATING_FIELD_NUMBER = 29;
    private finsky.protos.Badge badgeForLegacyRating_;
    /**
     * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
     */
    @java.lang.Override
    public boolean hasBadgeForLegacyRating() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
     */
    @java.lang.Override
    public finsky.protos.Badge getBadgeForLegacyRating() {
      return badgeForLegacyRating_ == null ? finsky.protos.Badge.getDefaultInstance() : badgeForLegacyRating_;
    }
    /**
     * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
     */
    private void setBadgeForLegacyRating(finsky.protos.Badge value) {
      value.getClass();
    badgeForLegacyRating_ = value;
      bitField0_ |= 0x00002000;
      }
    /**
     * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBadgeForLegacyRating(finsky.protos.Badge value) {
      value.getClass();
    if (badgeForLegacyRating_ != null &&
          badgeForLegacyRating_ != finsky.protos.Badge.getDefaultInstance()) {
        badgeForLegacyRating_ =
          finsky.protos.Badge.newBuilder(badgeForLegacyRating_).mergeFrom(value).buildPartial();
      } else {
        badgeForLegacyRating_ = value;
      }
      bitField0_ |= 0x00002000;
    }
    /**
     * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
     */
    private void clearBadgeForLegacyRating() {  badgeForLegacyRating_ = null;
      bitField0_ = (bitField0_ & ~0x00002000);
    }
  
    public static final int SECTIONFEATUREDAPPS_FIELD_NUMBER = 32;
    private finsky.protos.SectionMetaData sectionFeaturedApps_;
    /**
     * <pre>
     * repeated VoucherInfo voucherInfo = 30;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
     */
    @java.lang.Override
    public boolean hasSectionFeaturedApps() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * repeated VoucherInfo voucherInfo = 30;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionFeaturedApps() {
      return sectionFeaturedApps_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionFeaturedApps_;
    }
    /**
     * <pre>
     * repeated VoucherInfo voucherInfo = 30;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
     */
    private void setSectionFeaturedApps(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionFeaturedApps_ = value;
      bitField0_ |= 0x00004000;
      }
    /**
     * <pre>
     * repeated VoucherInfo voucherInfo = 30;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionFeaturedApps(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionFeaturedApps_ != null &&
          sectionFeaturedApps_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionFeaturedApps_ =
          finsky.protos.SectionMetaData.newBuilder(sectionFeaturedApps_).mergeFrom(value).buildPartial();
      } else {
        sectionFeaturedApps_ = value;
      }
      bitField0_ |= 0x00004000;
    }
    /**
     * <pre>
     * repeated VoucherInfo voucherInfo = 30;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
     */
    private void clearSectionFeaturedApps() {  sectionFeaturedApps_ = null;
      bitField0_ = (bitField0_ & ~0x00004000);
    }
  
    public static final int DETAILSPAGECLUSTER_FIELD_NUMBER = 34;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.SectionMetaData> detailsPageCluster_;
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.SectionMetaData> getDetailsPageClusterList() {
      return detailsPageCluster_;
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    public java.util.List<? extends finsky.protos.SectionMetaDataOrBuilder> 
        getDetailsPageClusterOrBuilderList() {
      return detailsPageCluster_;
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    @java.lang.Override
    public int getDetailsPageClusterCount() {
      return detailsPageCluster_.size();
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getDetailsPageCluster(int index) {
      return detailsPageCluster_.get(index);
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    public finsky.protos.SectionMetaDataOrBuilder getDetailsPageClusterOrBuilder(
        int index) {
      return detailsPageCluster_.get(index);
    }
    private void ensureDetailsPageClusterIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.SectionMetaData> tmp = detailsPageCluster_;
      if (!tmp.isModifiable()) {
        detailsPageCluster_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    private void setDetailsPageCluster(
        int index, finsky.protos.SectionMetaData value) {
      value.getClass();
    ensureDetailsPageClusterIsMutable();
      detailsPageCluster_.set(index, value);
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    private void addDetailsPageCluster(finsky.protos.SectionMetaData value) {
      value.getClass();
    ensureDetailsPageClusterIsMutable();
      detailsPageCluster_.add(value);
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    private void addDetailsPageCluster(
        int index, finsky.protos.SectionMetaData value) {
      value.getClass();
    ensureDetailsPageClusterIsMutable();
      detailsPageCluster_.add(index, value);
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    private void addAllDetailsPageCluster(
        java.lang.Iterable<? extends finsky.protos.SectionMetaData> values) {
      ensureDetailsPageClusterIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, detailsPageCluster_);
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    private void clearDetailsPageCluster() {
      detailsPageCluster_ = emptyProtobufList();
    }
    /**
     * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
     */
    private void removeDetailsPageCluster(int index) {
      ensureDetailsPageClusterIsMutable();
      detailsPageCluster_.remove(index);
    }
  
    public static final int SECTIONPURCHASERELATEDTOPICS_FIELD_NUMBER = 36;
    private finsky.protos.SectionMetaData sectionPurchaseRelatedTopics_;
    /**
     * <pre>
     * optional VideoAnnotations videoAnnotations = 35;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
     */
    @java.lang.Override
    public boolean hasSectionPurchaseRelatedTopics() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * optional VideoAnnotations videoAnnotations = 35;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
     */
    @java.lang.Override
    public finsky.protos.SectionMetaData getSectionPurchaseRelatedTopics() {
      return sectionPurchaseRelatedTopics_ == null ? finsky.protos.SectionMetaData.getDefaultInstance() : sectionPurchaseRelatedTopics_;
    }
    /**
     * <pre>
     * optional VideoAnnotations videoAnnotations = 35;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
     */
    private void setSectionPurchaseRelatedTopics(finsky.protos.SectionMetaData value) {
      value.getClass();
    sectionPurchaseRelatedTopics_ = value;
      bitField0_ |= 0x00008000;
      }
    /**
     * <pre>
     * optional VideoAnnotations videoAnnotations = 35;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSectionPurchaseRelatedTopics(finsky.protos.SectionMetaData value) {
      value.getClass();
    if (sectionPurchaseRelatedTopics_ != null &&
          sectionPurchaseRelatedTopics_ != finsky.protos.SectionMetaData.getDefaultInstance()) {
        sectionPurchaseRelatedTopics_ =
          finsky.protos.SectionMetaData.newBuilder(sectionPurchaseRelatedTopics_).mergeFrom(value).buildPartial();
      } else {
        sectionPurchaseRelatedTopics_ = value;
      }
      bitField0_ |= 0x00008000;
    }
    /**
     * <pre>
     * optional VideoAnnotations videoAnnotations = 35;
     * </pre>
     *
     * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
     */
    private void clearSectionPurchaseRelatedTopics() {  sectionPurchaseRelatedTopics_ = null;
      bitField0_ = (bitField0_ & ~0x00008000);
    }
  
    public static final int FEATUREBADGE_FIELD_NUMBER = 39;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> featureBadge_;
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.Badge> getFeatureBadgeList() {
      return featureBadge_;
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    public java.util.List<? extends finsky.protos.BadgeOrBuilder> 
        getFeatureBadgeOrBuilderList() {
      return featureBadge_;
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    @java.lang.Override
    public int getFeatureBadgeCount() {
      return featureBadge_.size();
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    @java.lang.Override
    public finsky.protos.Badge getFeatureBadge(int index) {
      return featureBadge_.get(index);
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    public finsky.protos.BadgeOrBuilder getFeatureBadgeOrBuilder(
        int index) {
      return featureBadge_.get(index);
    }
    private void ensureFeatureBadgeIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> tmp = featureBadge_;
      if (!tmp.isModifiable()) {
        featureBadge_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    private void setFeatureBadge(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureFeatureBadgeIsMutable();
      featureBadge_.set(index, value);
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    private void addFeatureBadge(finsky.protos.Badge value) {
      value.getClass();
    ensureFeatureBadgeIsMutable();
      featureBadge_.add(value);
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    private void addFeatureBadge(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureFeatureBadgeIsMutable();
      featureBadge_.add(index, value);
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    private void addAllFeatureBadge(
        java.lang.Iterable<? extends finsky.protos.Badge> values) {
      ensureFeatureBadgeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, featureBadge_);
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    private void clearFeatureBadge() {
      featureBadge_ = emptyProtobufList();
    }
    /**
     * <pre>
     * optional MySubscriptionDetails mySubscriptionDetails = 37;
     * optional MyRewardDetails myRewardDetails = 38;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
     */
    private void removeFeatureBadge(int index) {
      ensureFeatureBadgeIsMutable();
      featureBadge_.remove(index);
    }
  
    public static final int DOWNLOADSLABEL_FIELD_NUMBER = 48;
    private java.lang.String downloadsLabel_;
    /**
     * <pre>
     * optional Snippet snippet = 42;
     * </pre>
     *
     * <code>optional string downloadsLabel = 48;</code>
     * @return Whether the downloadsLabel field is set.
     */
    @java.lang.Override
    public boolean hasDownloadsLabel() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * optional Snippet snippet = 42;
     * </pre>
     *
     * <code>optional string downloadsLabel = 48;</code>
     * @return The downloadsLabel.
     */
    @java.lang.Override
    public java.lang.String getDownloadsLabel() {
      return downloadsLabel_;
    }
    /**
     * <pre>
     * optional Snippet snippet = 42;
     * </pre>
     *
     * <code>optional string downloadsLabel = 48;</code>
     * @return The bytes for downloadsLabel.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDownloadsLabelBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(downloadsLabel_);
    }
    /**
     * <pre>
     * optional Snippet snippet = 42;
     * </pre>
     *
     * <code>optional string downloadsLabel = 48;</code>
     * @param value The downloadsLabel to set.
     */
    private void setDownloadsLabel(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00010000;
      downloadsLabel_ = value;
    }
    /**
     * <pre>
     * optional Snippet snippet = 42;
     * </pre>
     *
     * <code>optional string downloadsLabel = 48;</code>
     */
    private void clearDownloadsLabel() {
      bitField0_ = (bitField0_ & ~0x00010000);
      downloadsLabel_ = getDefaultInstance().getDownloadsLabel();
    }
    /**
     * <pre>
     * optional Snippet snippet = 42;
     * </pre>
     *
     * <code>optional string downloadsLabel = 48;</code>
     * @param value The bytes for downloadsLabel to set.
     */
    private void setDownloadsLabelBytes(
        com.google.protobuf.ByteString value) {
      downloadsLabel_ = value.toStringUtf8();
      bitField0_ |= 0x00010000;
    }
  
    public static final int BADGEFORRATING_FIELD_NUMBER = 50;
    private finsky.protos.Badge badgeForRating_;
    /**
     * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
     */
    @java.lang.Override
    public boolean hasBadgeForRating() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
     */
    @java.lang.Override
    public finsky.protos.Badge getBadgeForRating() {
      return badgeForRating_ == null ? finsky.protos.Badge.getDefaultInstance() : badgeForRating_;
    }
    /**
     * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
     */
    private void setBadgeForRating(finsky.protos.Badge value) {
      value.getClass();
    badgeForRating_ = value;
      bitField0_ |= 0x00020000;
      }
    /**
     * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBadgeForRating(finsky.protos.Badge value) {
      value.getClass();
    if (badgeForRating_ != null &&
          badgeForRating_ != finsky.protos.Badge.getDefaultInstance()) {
        badgeForRating_ =
          finsky.protos.Badge.newBuilder(badgeForRating_).mergeFrom(value).buildPartial();
      } else {
        badgeForRating_ = value;
      }
      bitField0_ |= 0x00020000;
    }
    /**
     * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
     */
    private void clearBadgeForRating() {  badgeForRating_ = null;
      bitField0_ = (bitField0_ & ~0x00020000);
    }
  
    public static final int CATEGORYINFO_FIELD_NUMBER = 53;
    private finsky.protos.CategoryInfo categoryInfo_;
    /**
     * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
     */
    @java.lang.Override
    public boolean hasCategoryInfo() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
     */
    @java.lang.Override
    public finsky.protos.CategoryInfo getCategoryInfo() {
      return categoryInfo_ == null ? finsky.protos.CategoryInfo.getDefaultInstance() : categoryInfo_;
    }
    /**
     * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
     */
    private void setCategoryInfo(finsky.protos.CategoryInfo value) {
      value.getClass();
    categoryInfo_ = value;
      bitField0_ |= 0x00040000;
      }
    /**
     * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCategoryInfo(finsky.protos.CategoryInfo value) {
      value.getClass();
    if (categoryInfo_ != null &&
          categoryInfo_ != finsky.protos.CategoryInfo.getDefaultInstance()) {
        categoryInfo_ =
          finsky.protos.CategoryInfo.newBuilder(categoryInfo_).mergeFrom(value).buildPartial();
      } else {
        categoryInfo_ = value;
      }
      bitField0_ |= 0x00040000;
    }
    /**
     * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
     */
    private void clearCategoryInfo() {  categoryInfo_ = null;
      bitField0_ = (bitField0_ & ~0x00040000);
    }
  
    public static final int CATEGORYNAME_FIELD_NUMBER = 66;
    private java.lang.String categoryName_;
    /**
     * <pre>
     * optional EditorReason reasons = 60;
     * optional Stream topChartStream = 65;
     * </pre>
     *
     * <code>optional string categoryName = 66;</code>
     * @return Whether the categoryName field is set.
     */
    @java.lang.Override
    public boolean hasCategoryName() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <pre>
     * optional EditorReason reasons = 60;
     * optional Stream topChartStream = 65;
     * </pre>
     *
     * <code>optional string categoryName = 66;</code>
     * @return The categoryName.
     */
    @java.lang.Override
    public java.lang.String getCategoryName() {
      return categoryName_;
    }
    /**
     * <pre>
     * optional EditorReason reasons = 60;
     * optional Stream topChartStream = 65;
     * </pre>
     *
     * <code>optional string categoryName = 66;</code>
     * @return The bytes for categoryName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCategoryNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(categoryName_);
    }
    /**
     * <pre>
     * optional EditorReason reasons = 60;
     * optional Stream topChartStream = 65;
     * </pre>
     *
     * <code>optional string categoryName = 66;</code>
     * @param value The categoryName to set.
     */
    private void setCategoryName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00080000;
      categoryName_ = value;
    }
    /**
     * <pre>
     * optional EditorReason reasons = 60;
     * optional Stream topChartStream = 65;
     * </pre>
     *
     * <code>optional string categoryName = 66;</code>
     */
    private void clearCategoryName() {
      bitField0_ = (bitField0_ & ~0x00080000);
      categoryName_ = getDefaultInstance().getCategoryName();
    }
    /**
     * <pre>
     * optional EditorReason reasons = 60;
     * optional Stream topChartStream = 65;
     * </pre>
     *
     * <code>optional string categoryName = 66;</code>
     * @param value The bytes for categoryName to set.
     */
    private void setCategoryNameBytes(
        com.google.protobuf.ByteString value) {
      categoryName_ = value.toStringUtf8();
      bitField0_ |= 0x00080000;
    }
  
    public static final int DISPLAYBADGE_FIELD_NUMBER = 72;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> displayBadge_;
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.Badge> getDisplayBadgeList() {
      return displayBadge_;
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    public java.util.List<? extends finsky.protos.BadgeOrBuilder> 
        getDisplayBadgeOrBuilderList() {
      return displayBadge_;
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    @java.lang.Override
    public int getDisplayBadgeCount() {
      return displayBadge_.size();
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    @java.lang.Override
    public finsky.protos.Badge getDisplayBadge(int index) {
      return displayBadge_.get(index);
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    public finsky.protos.BadgeOrBuilder getDisplayBadgeOrBuilder(
        int index) {
      return displayBadge_.get(index);
    }
    private void ensureDisplayBadgeIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.Badge> tmp = displayBadge_;
      if (!tmp.isModifiable()) {
        displayBadge_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    private void setDisplayBadge(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureDisplayBadgeIsMutable();
      displayBadge_.set(index, value);
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    private void addDisplayBadge(finsky.protos.Badge value) {
      value.getClass();
    ensureDisplayBadgeIsMutable();
      displayBadge_.add(value);
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    private void addDisplayBadge(
        int index, finsky.protos.Badge value) {
      value.getClass();
    ensureDisplayBadgeIsMutable();
      displayBadge_.add(index, value);
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    private void addAllDisplayBadge(
        java.lang.Iterable<? extends finsky.protos.Badge> values) {
      ensureDisplayBadgeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, displayBadge_);
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    private void clearDisplayBadge() {
      displayBadge_ = emptyProtobufList();
    }
    /**
     * <pre>
     * repeated Chip chip = 71;
     * </pre>
     *
     * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
     */
    private void removeDisplayBadge(int index) {
      ensureDisplayBadgeIsMutable();
      displayBadge_.remove(index);
    }
  
    public static final int LIVESTREAMURL_FIELD_NUMBER = 80;
    private java.lang.String liveStreamUrl_;
    /**
     * <code>optional string liveStreamUrl = 80;</code>
     * @return Whether the liveStreamUrl field is set.
     */
    @java.lang.Override
    public boolean hasLiveStreamUrl() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional string liveStreamUrl = 80;</code>
     * @return The liveStreamUrl.
     */
    @java.lang.Override
    public java.lang.String getLiveStreamUrl() {
      return liveStreamUrl_;
    }
    /**
     * <code>optional string liveStreamUrl = 80;</code>
     * @return The bytes for liveStreamUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLiveStreamUrlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(liveStreamUrl_);
    }
    /**
     * <code>optional string liveStreamUrl = 80;</code>
     * @param value The liveStreamUrl to set.
     */
    private void setLiveStreamUrl(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00100000;
      liveStreamUrl_ = value;
    }
    /**
     * <code>optional string liveStreamUrl = 80;</code>
     */
    private void clearLiveStreamUrl() {
      bitField0_ = (bitField0_ & ~0x00100000);
      liveStreamUrl_ = getDefaultInstance().getLiveStreamUrl();
    }
    /**
     * <code>optional string liveStreamUrl = 80;</code>
     * @param value The bytes for liveStreamUrl to set.
     */
    private void setLiveStreamUrlBytes(
        com.google.protobuf.ByteString value) {
      liveStreamUrl_ = value.toStringUtf8();
      bitField0_ |= 0x00100000;
    }
  
    public static final int PROMOTIONSTREAMURL_FIELD_NUMBER = 85;
    private java.lang.String promotionStreamUrl_;
    /**
     * <code>optional string promotionStreamUrl = 85;</code>
     * @return Whether the promotionStreamUrl field is set.
     */
    @java.lang.Override
    public boolean hasPromotionStreamUrl() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional string promotionStreamUrl = 85;</code>
     * @return The promotionStreamUrl.
     */
    @java.lang.Override
    public java.lang.String getPromotionStreamUrl() {
      return promotionStreamUrl_;
    }
    /**
     * <code>optional string promotionStreamUrl = 85;</code>
     * @return The bytes for promotionStreamUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPromotionStreamUrlBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(promotionStreamUrl_);
    }
    /**
     * <code>optional string promotionStreamUrl = 85;</code>
     * @param value The promotionStreamUrl to set.
     */
    private void setPromotionStreamUrl(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00200000;
      promotionStreamUrl_ = value;
    }
    /**
     * <code>optional string promotionStreamUrl = 85;</code>
     */
    private void clearPromotionStreamUrl() {
      bitField0_ = (bitField0_ & ~0x00200000);
      promotionStreamUrl_ = getDefaultInstance().getPromotionStreamUrl();
    }
    /**
     * <code>optional string promotionStreamUrl = 85;</code>
     * @param value The bytes for promotionStreamUrl to set.
     */
    private void setPromotionStreamUrlBytes(
        com.google.protobuf.ByteString value) {
      promotionStreamUrl_ = value.toStringUtf8();
      bitField0_ |= 0x00200000;
    }
  
    public static final int CATEGORYSTREAM_FIELD_NUMBER = 97;
    private finsky.protos.SubStream categoryStream_;
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaDataExtra = 91;
     * optional SectionImage sectionImage = 94;
     * </pre>
     *
     * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
     */
    @java.lang.Override
    public boolean hasCategoryStream() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaDataExtra = 91;
     * optional SectionImage sectionImage = 94;
     * </pre>
     *
     * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
     */
    @java.lang.Override
    public finsky.protos.SubStream getCategoryStream() {
      return categoryStream_ == null ? finsky.protos.SubStream.getDefaultInstance() : categoryStream_;
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaDataExtra = 91;
     * optional SectionImage sectionImage = 94;
     * </pre>
     *
     * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
     */
    private void setCategoryStream(finsky.protos.SubStream value) {
      value.getClass();
    categoryStream_ = value;
      bitField0_ |= 0x00400000;
      }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaDataExtra = 91;
     * optional SectionImage sectionImage = 94;
     * </pre>
     *
     * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCategoryStream(finsky.protos.SubStream value) {
      value.getClass();
    if (categoryStream_ != null &&
          categoryStream_ != finsky.protos.SubStream.getDefaultInstance()) {
        categoryStream_ =
          finsky.protos.SubStream.newBuilder(categoryStream_).mergeFrom(value).buildPartial();
      } else {
        categoryStream_ = value;
      }
      bitField0_ |= 0x00400000;
    }
    /**
     * <pre>
     * optional OverlayMetaData overlayMetaDataExtra = 91;
     * optional SectionImage sectionImage = 94;
     * </pre>
     *
     * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
     */
    private void clearCategoryStream() {  categoryStream_ = null;
      bitField0_ = (bitField0_ & ~0x00400000);
    }
  
    public static finsky.protos.Annotations parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Annotations 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 finsky.protos.Annotations parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Annotations 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 finsky.protos.Annotations parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Annotations 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 finsky.protos.Annotations parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.Annotations 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 finsky.protos.Annotations parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
  
    public static finsky.protos.Annotations parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static finsky.protos.Annotations parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.Annotations 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(finsky.protos.Annotations prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }
  
    /**
     * Protobuf type {@code finsky.protos.Annotations}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          finsky.protos.Annotations, Builder> implements
        // @@protoc_insertion_point(builder_implements:finsky.protos.Annotations)
        finsky.protos.AnnotationsOrBuilder {
      // Construct using finsky.protos.Annotations.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }
  
  
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
       */
      @java.lang.Override
      public boolean hasSectionRelated() {
        return instance.hasSectionRelated();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionRelated() {
        return instance.getSectionRelated();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
       */
      public Builder setSectionRelated(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionRelated(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
       */
      public Builder setSectionRelated(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionRelated(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
       */
      public Builder mergeSectionRelated(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionRelated(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelated = 1;</code>
       */
      public Builder clearSectionRelated() {  copyOnWrite();
        instance.clearSectionRelated();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
       */
      @java.lang.Override
      public boolean hasSectionMoreBy() {
        return instance.hasSectionMoreBy();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionMoreBy() {
        return instance.getSectionMoreBy();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
       */
      public Builder setSectionMoreBy(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionMoreBy(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
       */
      public Builder setSectionMoreBy(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionMoreBy(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
       */
      public Builder mergeSectionMoreBy(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionMoreBy(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionMoreBy = 2;</code>
       */
      public Builder clearSectionMoreBy() {  copyOnWrite();
        instance.clearSectionMoreBy();
        return this;
      }
  
      /**
       * <pre>
       * repeated Warning warning = 4;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
       */
      @java.lang.Override
      public boolean hasSectionBodyOfWork() {
        return instance.hasSectionBodyOfWork();
      }
      /**
       * <pre>
       * repeated Warning warning = 4;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionBodyOfWork() {
        return instance.getSectionBodyOfWork();
      }
      /**
       * <pre>
       * repeated Warning warning = 4;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
       */
      public Builder setSectionBodyOfWork(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionBodyOfWork(value);
        return this;
        }
      /**
       * <pre>
       * repeated Warning warning = 4;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
       */
      public Builder setSectionBodyOfWork(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionBodyOfWork(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * repeated Warning warning = 4;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
       */
      public Builder mergeSectionBodyOfWork(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionBodyOfWork(value);
        return this;
      }
      /**
       * <pre>
       * repeated Warning warning = 4;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionBodyOfWork = 5;</code>
       */
      public Builder clearSectionBodyOfWork() {  copyOnWrite();
        instance.clearSectionBodyOfWork();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
       */
      @java.lang.Override
      public boolean hasSectionCoreContent() {
        return instance.hasSectionCoreContent();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionCoreContent() {
        return instance.getSectionCoreContent();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
       */
      public Builder setSectionCoreContent(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionCoreContent(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
       */
      public Builder setSectionCoreContent(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionCoreContent(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
       */
      public Builder mergeSectionCoreContent(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionCoreContent(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCoreContent = 6;</code>
       */
      public Builder clearSectionCoreContent() {  copyOnWrite();
        instance.clearSectionCoreContent();
        return this;
      }
  
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.Badge> getBadgeForCreatorList() {
        return java.util.Collections.unmodifiableList(
            instance.getBadgeForCreatorList());
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      @java.lang.Override
      public int getBadgeForCreatorCount() {
        return instance.getBadgeForCreatorCount();
      }/**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      @java.lang.Override
      public finsky.protos.Badge getBadgeForCreator(int index) {
        return instance.getBadgeForCreator(index);
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder setBadgeForCreator(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.setBadgeForCreator(index, value);
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder setBadgeForCreator(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.setBadgeForCreator(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder addBadgeForCreator(finsky.protos.Badge value) {
        copyOnWrite();
        instance.addBadgeForCreator(value);
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder addBadgeForCreator(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.addBadgeForCreator(index, value);
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder addBadgeForCreator(
          finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addBadgeForCreator(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder addBadgeForCreator(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addBadgeForCreator(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder addAllBadgeForCreator(
          java.lang.Iterable<? extends finsky.protos.Badge> values) {
        copyOnWrite();
        instance.addAllBadgeForCreator(values);
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder clearBadgeForCreator() {
        copyOnWrite();
        instance.clearBadgeForCreator();
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaData = 7;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge badgeForCreator = 8;</code>
       */
      public Builder removeBadgeForCreator(int index) {
        copyOnWrite();
        instance.removeBadgeForCreator(index);
        return this;
      }
  
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.Badge> getInfoBadgeList() {
        return java.util.Collections.unmodifiableList(
            instance.getInfoBadgeList());
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      @java.lang.Override
      public int getInfoBadgeCount() {
        return instance.getInfoBadgeCount();
      }/**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      @java.lang.Override
      public finsky.protos.Badge getInfoBadge(int index) {
        return instance.getInfoBadge(index);
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder setInfoBadge(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.setInfoBadge(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder setInfoBadge(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.setInfoBadge(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder addInfoBadge(finsky.protos.Badge value) {
        copyOnWrite();
        instance.addInfoBadge(value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder addInfoBadge(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.addInfoBadge(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder addInfoBadge(
          finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addInfoBadge(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder addInfoBadge(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addInfoBadge(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder addAllInfoBadge(
          java.lang.Iterable<? extends finsky.protos.Badge> values) {
        copyOnWrite();
        instance.addAllInfoBadge(values);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder clearInfoBadge() {
        copyOnWrite();
        instance.clearInfoBadge();
        return this;
      }
      /**
       * <code>repeated .finsky.protos.Badge infoBadge = 9;</code>
       */
      public Builder removeInfoBadge(int index) {
        copyOnWrite();
        instance.removeInfoBadge(index);
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
       */
      @java.lang.Override
      public boolean hasAnnotationLink() {
        return instance.hasAnnotationLink();
      }
      /**
       * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
       */
      @java.lang.Override
      public finsky.protos.AnnotationLink getAnnotationLink() {
        return instance.getAnnotationLink();
      }
      /**
       * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
       */
      public Builder setAnnotationLink(finsky.protos.AnnotationLink value) {
        copyOnWrite();
        instance.setAnnotationLink(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
       */
      public Builder setAnnotationLink(
          finsky.protos.AnnotationLink.Builder builderForValue) {
        copyOnWrite();
        instance.setAnnotationLink(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
       */
      public Builder mergeAnnotationLink(finsky.protos.AnnotationLink value) {
        copyOnWrite();
        instance.mergeAnnotationLink(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.AnnotationLink annotationLink = 10;</code>
       */
      public Builder clearAnnotationLink() {  copyOnWrite();
        instance.clearAnnotationLink();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
       */
      @java.lang.Override
      public boolean hasSectionCrossSell() {
        return instance.hasSectionCrossSell();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionCrossSell() {
        return instance.getSectionCrossSell();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
       */
      public Builder setSectionCrossSell(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionCrossSell(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
       */
      public Builder setSectionCrossSell(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionCrossSell(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
       */
      public Builder mergeSectionCrossSell(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionCrossSell(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionCrossSell = 11;</code>
       */
      public Builder clearSectionCrossSell() {  copyOnWrite();
        instance.clearSectionCrossSell();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
       */
      @java.lang.Override
      public boolean hasSectionRelatedItemType() {
        return instance.hasSectionRelatedItemType();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionRelatedItemType() {
        return instance.getSectionRelatedItemType();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
       */
      public Builder setSectionRelatedItemType(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionRelatedItemType(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
       */
      public Builder setSectionRelatedItemType(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionRelatedItemType(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
       */
      public Builder mergeSectionRelatedItemType(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionRelatedItemType(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionRelatedItemType = 12;</code>
       */
      public Builder clearSectionRelatedItemType() {  copyOnWrite();
        instance.clearSectionRelatedItemType();
        return this;
      }
  
      /**
       * <pre>
       * repeated PromotedDoc promotedDoc = 13;
       * </pre>
       *
       * <code>optional string offerNote = 14;</code>
       * @return Whether the offerNote field is set.
       */
      @java.lang.Override
      public boolean hasOfferNote() {
        return instance.hasOfferNote();
      }
      /**
       * <pre>
       * repeated PromotedDoc promotedDoc = 13;
       * </pre>
       *
       * <code>optional string offerNote = 14;</code>
       * @return The offerNote.
       */
      @java.lang.Override
      public java.lang.String getOfferNote() {
        return instance.getOfferNote();
      }
      /**
       * <pre>
       * repeated PromotedDoc promotedDoc = 13;
       * </pre>
       *
       * <code>optional string offerNote = 14;</code>
       * @return The bytes for offerNote.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getOfferNoteBytes() {
        return instance.getOfferNoteBytes();
      }
      /**
       * <pre>
       * repeated PromotedDoc promotedDoc = 13;
       * </pre>
       *
       * <code>optional string offerNote = 14;</code>
       * @param value The offerNote to set.
       * @return This builder for chaining.
       */
      public Builder setOfferNote(
          java.lang.String value) {
        copyOnWrite();
        instance.setOfferNote(value);
        return this;
      }
      /**
       * <pre>
       * repeated PromotedDoc promotedDoc = 13;
       * </pre>
       *
       * <code>optional string offerNote = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearOfferNote() {
        copyOnWrite();
        instance.clearOfferNote();
        return this;
      }
      /**
       * <pre>
       * repeated PromotedDoc promotedDoc = 13;
       * </pre>
       *
       * <code>optional string offerNote = 14;</code>
       * @param value The bytes for offerNote to set.
       * @return This builder for chaining.
       */
      public Builder setOfferNoteBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setOfferNoteBytes(value);
        return this;
      }
  
      /**
       * <code>optional string privacyPolicyUrl = 18;</code>
       * @return Whether the privacyPolicyUrl field is set.
       */
      @java.lang.Override
      public boolean hasPrivacyPolicyUrl() {
        return instance.hasPrivacyPolicyUrl();
      }
      /**
       * <code>optional string privacyPolicyUrl = 18;</code>
       * @return The privacyPolicyUrl.
       */
      @java.lang.Override
      public java.lang.String getPrivacyPolicyUrl() {
        return instance.getPrivacyPolicyUrl();
      }
      /**
       * <code>optional string privacyPolicyUrl = 18;</code>
       * @return The bytes for privacyPolicyUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPrivacyPolicyUrlBytes() {
        return instance.getPrivacyPolicyUrlBytes();
      }
      /**
       * <code>optional string privacyPolicyUrl = 18;</code>
       * @param value The privacyPolicyUrl to set.
       * @return This builder for chaining.
       */
      public Builder setPrivacyPolicyUrl(
          java.lang.String value) {
        copyOnWrite();
        instance.setPrivacyPolicyUrl(value);
        return this;
      }
      /**
       * <code>optional string privacyPolicyUrl = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrivacyPolicyUrl() {
        copyOnWrite();
        instance.clearPrivacyPolicyUrl();
        return this;
      }
      /**
       * <code>optional string privacyPolicyUrl = 18;</code>
       * @param value The bytes for privacyPolicyUrl to set.
       * @return This builder for chaining.
       */
      public Builder setPrivacyPolicyUrlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPrivacyPolicyUrlBytes(value);
        return this;
      }
  
      /**
       * <pre>
       * optional SuggestionReasons suggestion_reasons = 19;
       * optional Warning optimalDeviceClassWarning = 20;
       * repeated BadgeContainer badgeContainer = 21;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
       */
      @java.lang.Override
      public boolean hasSectionSuggestForRating() {
        return instance.hasSectionSuggestForRating();
      }
      /**
       * <pre>
       * optional SuggestionReasons suggestion_reasons = 19;
       * optional Warning optimalDeviceClassWarning = 20;
       * repeated BadgeContainer badgeContainer = 21;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionSuggestForRating() {
        return instance.getSectionSuggestForRating();
      }
      /**
       * <pre>
       * optional SuggestionReasons suggestion_reasons = 19;
       * optional Warning optimalDeviceClassWarning = 20;
       * repeated BadgeContainer badgeContainer = 21;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
       */
      public Builder setSectionSuggestForRating(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionSuggestForRating(value);
        return this;
        }
      /**
       * <pre>
       * optional SuggestionReasons suggestion_reasons = 19;
       * optional Warning optimalDeviceClassWarning = 20;
       * repeated BadgeContainer badgeContainer = 21;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
       */
      public Builder setSectionSuggestForRating(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionSuggestForRating(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional SuggestionReasons suggestion_reasons = 19;
       * optional Warning optimalDeviceClassWarning = 20;
       * repeated BadgeContainer badgeContainer = 21;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
       */
      public Builder mergeSectionSuggestForRating(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionSuggestForRating(value);
        return this;
      }
      /**
       * <pre>
       * optional SuggestionReasons suggestion_reasons = 19;
       * optional Warning optimalDeviceClassWarning = 20;
       * repeated BadgeContainer badgeContainer = 21;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionSuggestForRating = 22;</code>
       */
      public Builder clearSectionSuggestForRating() {  copyOnWrite();
        instance.clearSectionSuggestForRating();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
       */
      @java.lang.Override
      public boolean hasSectionPurchaseCrossSell() {
        return instance.hasSectionPurchaseCrossSell();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionPurchaseCrossSell() {
        return instance.getSectionPurchaseCrossSell();
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
       */
      public Builder setSectionPurchaseCrossSell(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionPurchaseCrossSell(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
       */
      public Builder setSectionPurchaseCrossSell(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionPurchaseCrossSell(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
       */
      public Builder mergeSectionPurchaseCrossSell(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionPurchaseCrossSell(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseCrossSell = 24;</code>
       */
      public Builder clearSectionPurchaseCrossSell() {  copyOnWrite();
        instance.clearSectionPurchaseCrossSell();
        return this;
      }
  
      /**
       * <pre>
       * repeated OverflowLink overflowLink = 25;
       * </pre>
       *
       * <code>optional string attributionHtml = 27;</code>
       * @return Whether the attributionHtml field is set.
       */
      @java.lang.Override
      public boolean hasAttributionHtml() {
        return instance.hasAttributionHtml();
      }
      /**
       * <pre>
       * repeated OverflowLink overflowLink = 25;
       * </pre>
       *
       * <code>optional string attributionHtml = 27;</code>
       * @return The attributionHtml.
       */
      @java.lang.Override
      public java.lang.String getAttributionHtml() {
        return instance.getAttributionHtml();
      }
      /**
       * <pre>
       * repeated OverflowLink overflowLink = 25;
       * </pre>
       *
       * <code>optional string attributionHtml = 27;</code>
       * @return The bytes for attributionHtml.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getAttributionHtmlBytes() {
        return instance.getAttributionHtmlBytes();
      }
      /**
       * <pre>
       * repeated OverflowLink overflowLink = 25;
       * </pre>
       *
       * <code>optional string attributionHtml = 27;</code>
       * @param value The attributionHtml to set.
       * @return This builder for chaining.
       */
      public Builder setAttributionHtml(
          java.lang.String value) {
        copyOnWrite();
        instance.setAttributionHtml(value);
        return this;
      }
      /**
       * <pre>
       * repeated OverflowLink overflowLink = 25;
       * </pre>
       *
       * <code>optional string attributionHtml = 27;</code>
       * @return This builder for chaining.
       */
      public Builder clearAttributionHtml() {
        copyOnWrite();
        instance.clearAttributionHtml();
        return this;
      }
      /**
       * <pre>
       * repeated OverflowLink overflowLink = 25;
       * </pre>
       *
       * <code>optional string attributionHtml = 27;</code>
       * @param value The bytes for attributionHtml to set.
       * @return This builder for chaining.
       */
      public Builder setAttributionHtmlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setAttributionHtmlBytes(value);
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
       */
      @java.lang.Override
      public boolean hasPurchaseHistoryDetails() {
        return instance.hasPurchaseHistoryDetails();
      }
      /**
       * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
       */
      @java.lang.Override
      public finsky.protos.PurchaseHistoryDetails getPurchaseHistoryDetails() {
        return instance.getPurchaseHistoryDetails();
      }
      /**
       * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
       */
      public Builder setPurchaseHistoryDetails(finsky.protos.PurchaseHistoryDetails value) {
        copyOnWrite();
        instance.setPurchaseHistoryDetails(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
       */
      public Builder setPurchaseHistoryDetails(
          finsky.protos.PurchaseHistoryDetails.Builder builderForValue) {
        copyOnWrite();
        instance.setPurchaseHistoryDetails(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
       */
      public Builder mergePurchaseHistoryDetails(finsky.protos.PurchaseHistoryDetails value) {
        copyOnWrite();
        instance.mergePurchaseHistoryDetails(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.PurchaseHistoryDetails purchaseHistoryDetails = 28;</code>
       */
      public Builder clearPurchaseHistoryDetails() {  copyOnWrite();
        instance.clearPurchaseHistoryDetails();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
       */
      @java.lang.Override
      public boolean hasBadgeForLegacyRating() {
        return instance.hasBadgeForLegacyRating();
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
       */
      @java.lang.Override
      public finsky.protos.Badge getBadgeForLegacyRating() {
        return instance.getBadgeForLegacyRating();
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
       */
      public Builder setBadgeForLegacyRating(finsky.protos.Badge value) {
        copyOnWrite();
        instance.setBadgeForLegacyRating(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
       */
      public Builder setBadgeForLegacyRating(
          finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.setBadgeForLegacyRating(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
       */
      public Builder mergeBadgeForLegacyRating(finsky.protos.Badge value) {
        copyOnWrite();
        instance.mergeBadgeForLegacyRating(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForLegacyRating = 29;</code>
       */
      public Builder clearBadgeForLegacyRating() {  copyOnWrite();
        instance.clearBadgeForLegacyRating();
        return this;
      }
  
      /**
       * <pre>
       * repeated VoucherInfo voucherInfo = 30;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
       */
      @java.lang.Override
      public boolean hasSectionFeaturedApps() {
        return instance.hasSectionFeaturedApps();
      }
      /**
       * <pre>
       * repeated VoucherInfo voucherInfo = 30;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionFeaturedApps() {
        return instance.getSectionFeaturedApps();
      }
      /**
       * <pre>
       * repeated VoucherInfo voucherInfo = 30;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
       */
      public Builder setSectionFeaturedApps(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionFeaturedApps(value);
        return this;
        }
      /**
       * <pre>
       * repeated VoucherInfo voucherInfo = 30;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
       */
      public Builder setSectionFeaturedApps(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionFeaturedApps(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * repeated VoucherInfo voucherInfo = 30;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
       */
      public Builder mergeSectionFeaturedApps(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionFeaturedApps(value);
        return this;
      }
      /**
       * <pre>
       * repeated VoucherInfo voucherInfo = 30;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionFeaturedApps = 32;</code>
       */
      public Builder clearSectionFeaturedApps() {  copyOnWrite();
        instance.clearSectionFeaturedApps();
        return this;
      }
  
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.SectionMetaData> getDetailsPageClusterList() {
        return java.util.Collections.unmodifiableList(
            instance.getDetailsPageClusterList());
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      @java.lang.Override
      public int getDetailsPageClusterCount() {
        return instance.getDetailsPageClusterCount();
      }/**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getDetailsPageCluster(int index) {
        return instance.getDetailsPageCluster(index);
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder setDetailsPageCluster(
          int index, finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setDetailsPageCluster(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder setDetailsPageCluster(
          int index, finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setDetailsPageCluster(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder addDetailsPageCluster(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.addDetailsPageCluster(value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder addDetailsPageCluster(
          int index, finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.addDetailsPageCluster(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder addDetailsPageCluster(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.addDetailsPageCluster(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder addDetailsPageCluster(
          int index, finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.addDetailsPageCluster(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder addAllDetailsPageCluster(
          java.lang.Iterable<? extends finsky.protos.SectionMetaData> values) {
        copyOnWrite();
        instance.addAllDetailsPageCluster(values);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder clearDetailsPageCluster() {
        copyOnWrite();
        instance.clearDetailsPageCluster();
        return this;
      }
      /**
       * <code>repeated .finsky.protos.SectionMetaData detailsPageCluster = 34;</code>
       */
      public Builder removeDetailsPageCluster(int index) {
        copyOnWrite();
        instance.removeDetailsPageCluster(index);
        return this;
      }
  
      /**
       * <pre>
       * optional VideoAnnotations videoAnnotations = 35;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
       */
      @java.lang.Override
      public boolean hasSectionPurchaseRelatedTopics() {
        return instance.hasSectionPurchaseRelatedTopics();
      }
      /**
       * <pre>
       * optional VideoAnnotations videoAnnotations = 35;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
       */
      @java.lang.Override
      public finsky.protos.SectionMetaData getSectionPurchaseRelatedTopics() {
        return instance.getSectionPurchaseRelatedTopics();
      }
      /**
       * <pre>
       * optional VideoAnnotations videoAnnotations = 35;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
       */
      public Builder setSectionPurchaseRelatedTopics(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.setSectionPurchaseRelatedTopics(value);
        return this;
        }
      /**
       * <pre>
       * optional VideoAnnotations videoAnnotations = 35;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
       */
      public Builder setSectionPurchaseRelatedTopics(
          finsky.protos.SectionMetaData.Builder builderForValue) {
        copyOnWrite();
        instance.setSectionPurchaseRelatedTopics(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional VideoAnnotations videoAnnotations = 35;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
       */
      public Builder mergeSectionPurchaseRelatedTopics(finsky.protos.SectionMetaData value) {
        copyOnWrite();
        instance.mergeSectionPurchaseRelatedTopics(value);
        return this;
      }
      /**
       * <pre>
       * optional VideoAnnotations videoAnnotations = 35;
       * </pre>
       *
       * <code>optional .finsky.protos.SectionMetaData sectionPurchaseRelatedTopics = 36;</code>
       */
      public Builder clearSectionPurchaseRelatedTopics() {  copyOnWrite();
        instance.clearSectionPurchaseRelatedTopics();
        return this;
      }
  
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.Badge> getFeatureBadgeList() {
        return java.util.Collections.unmodifiableList(
            instance.getFeatureBadgeList());
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      @java.lang.Override
      public int getFeatureBadgeCount() {
        return instance.getFeatureBadgeCount();
      }/**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      @java.lang.Override
      public finsky.protos.Badge getFeatureBadge(int index) {
        return instance.getFeatureBadge(index);
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder setFeatureBadge(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.setFeatureBadge(index, value);
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder setFeatureBadge(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.setFeatureBadge(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder addFeatureBadge(finsky.protos.Badge value) {
        copyOnWrite();
        instance.addFeatureBadge(value);
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder addFeatureBadge(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.addFeatureBadge(index, value);
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder addFeatureBadge(
          finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addFeatureBadge(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder addFeatureBadge(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addFeatureBadge(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder addAllFeatureBadge(
          java.lang.Iterable<? extends finsky.protos.Badge> values) {
        copyOnWrite();
        instance.addAllFeatureBadge(values);
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder clearFeatureBadge() {
        copyOnWrite();
        instance.clearFeatureBadge();
        return this;
      }
      /**
       * <pre>
       * optional MySubscriptionDetails mySubscriptionDetails = 37;
       * optional MyRewardDetails myRewardDetails = 38;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge featureBadge = 39;</code>
       */
      public Builder removeFeatureBadge(int index) {
        copyOnWrite();
        instance.removeFeatureBadge(index);
        return this;
      }
  
      /**
       * <pre>
       * optional Snippet snippet = 42;
       * </pre>
       *
       * <code>optional string downloadsLabel = 48;</code>
       * @return Whether the downloadsLabel field is set.
       */
      @java.lang.Override
      public boolean hasDownloadsLabel() {
        return instance.hasDownloadsLabel();
      }
      /**
       * <pre>
       * optional Snippet snippet = 42;
       * </pre>
       *
       * <code>optional string downloadsLabel = 48;</code>
       * @return The downloadsLabel.
       */
      @java.lang.Override
      public java.lang.String getDownloadsLabel() {
        return instance.getDownloadsLabel();
      }
      /**
       * <pre>
       * optional Snippet snippet = 42;
       * </pre>
       *
       * <code>optional string downloadsLabel = 48;</code>
       * @return The bytes for downloadsLabel.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDownloadsLabelBytes() {
        return instance.getDownloadsLabelBytes();
      }
      /**
       * <pre>
       * optional Snippet snippet = 42;
       * </pre>
       *
       * <code>optional string downloadsLabel = 48;</code>
       * @param value The downloadsLabel to set.
       * @return This builder for chaining.
       */
      public Builder setDownloadsLabel(
          java.lang.String value) {
        copyOnWrite();
        instance.setDownloadsLabel(value);
        return this;
      }
      /**
       * <pre>
       * optional Snippet snippet = 42;
       * </pre>
       *
       * <code>optional string downloadsLabel = 48;</code>
       * @return This builder for chaining.
       */
      public Builder clearDownloadsLabel() {
        copyOnWrite();
        instance.clearDownloadsLabel();
        return this;
      }
      /**
       * <pre>
       * optional Snippet snippet = 42;
       * </pre>
       *
       * <code>optional string downloadsLabel = 48;</code>
       * @param value The bytes for downloadsLabel to set.
       * @return This builder for chaining.
       */
      public Builder setDownloadsLabelBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDownloadsLabelBytes(value);
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
       */
      @java.lang.Override
      public boolean hasBadgeForRating() {
        return instance.hasBadgeForRating();
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
       */
      @java.lang.Override
      public finsky.protos.Badge getBadgeForRating() {
        return instance.getBadgeForRating();
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
       */
      public Builder setBadgeForRating(finsky.protos.Badge value) {
        copyOnWrite();
        instance.setBadgeForRating(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
       */
      public Builder setBadgeForRating(
          finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.setBadgeForRating(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
       */
      public Builder mergeBadgeForRating(finsky.protos.Badge value) {
        copyOnWrite();
        instance.mergeBadgeForRating(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.Badge badgeForRating = 50;</code>
       */
      public Builder clearBadgeForRating() {  copyOnWrite();
        instance.clearBadgeForRating();
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
       */
      @java.lang.Override
      public boolean hasCategoryInfo() {
        return instance.hasCategoryInfo();
      }
      /**
       * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
       */
      @java.lang.Override
      public finsky.protos.CategoryInfo getCategoryInfo() {
        return instance.getCategoryInfo();
      }
      /**
       * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
       */
      public Builder setCategoryInfo(finsky.protos.CategoryInfo value) {
        copyOnWrite();
        instance.setCategoryInfo(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
       */
      public Builder setCategoryInfo(
          finsky.protos.CategoryInfo.Builder builderForValue) {
        copyOnWrite();
        instance.setCategoryInfo(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
       */
      public Builder mergeCategoryInfo(finsky.protos.CategoryInfo value) {
        copyOnWrite();
        instance.mergeCategoryInfo(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.CategoryInfo categoryInfo = 53;</code>
       */
      public Builder clearCategoryInfo() {  copyOnWrite();
        instance.clearCategoryInfo();
        return this;
      }
  
      /**
       * <pre>
       * optional EditorReason reasons = 60;
       * optional Stream topChartStream = 65;
       * </pre>
       *
       * <code>optional string categoryName = 66;</code>
       * @return Whether the categoryName field is set.
       */
      @java.lang.Override
      public boolean hasCategoryName() {
        return instance.hasCategoryName();
      }
      /**
       * <pre>
       * optional EditorReason reasons = 60;
       * optional Stream topChartStream = 65;
       * </pre>
       *
       * <code>optional string categoryName = 66;</code>
       * @return The categoryName.
       */
      @java.lang.Override
      public java.lang.String getCategoryName() {
        return instance.getCategoryName();
      }
      /**
       * <pre>
       * optional EditorReason reasons = 60;
       * optional Stream topChartStream = 65;
       * </pre>
       *
       * <code>optional string categoryName = 66;</code>
       * @return The bytes for categoryName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCategoryNameBytes() {
        return instance.getCategoryNameBytes();
      }
      /**
       * <pre>
       * optional EditorReason reasons = 60;
       * optional Stream topChartStream = 65;
       * </pre>
       *
       * <code>optional string categoryName = 66;</code>
       * @param value The categoryName to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryName(
          java.lang.String value) {
        copyOnWrite();
        instance.setCategoryName(value);
        return this;
      }
      /**
       * <pre>
       * optional EditorReason reasons = 60;
       * optional Stream topChartStream = 65;
       * </pre>
       *
       * <code>optional string categoryName = 66;</code>
       * @return This builder for chaining.
       */
      public Builder clearCategoryName() {
        copyOnWrite();
        instance.clearCategoryName();
        return this;
      }
      /**
       * <pre>
       * optional EditorReason reasons = 60;
       * optional Stream topChartStream = 65;
       * </pre>
       *
       * <code>optional string categoryName = 66;</code>
       * @param value The bytes for categoryName to set.
       * @return This builder for chaining.
       */
      public Builder setCategoryNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setCategoryNameBytes(value);
        return this;
      }
  
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.Badge> getDisplayBadgeList() {
        return java.util.Collections.unmodifiableList(
            instance.getDisplayBadgeList());
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      @java.lang.Override
      public int getDisplayBadgeCount() {
        return instance.getDisplayBadgeCount();
      }/**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      @java.lang.Override
      public finsky.protos.Badge getDisplayBadge(int index) {
        return instance.getDisplayBadge(index);
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder setDisplayBadge(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.setDisplayBadge(index, value);
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder setDisplayBadge(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.setDisplayBadge(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder addDisplayBadge(finsky.protos.Badge value) {
        copyOnWrite();
        instance.addDisplayBadge(value);
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder addDisplayBadge(
          int index, finsky.protos.Badge value) {
        copyOnWrite();
        instance.addDisplayBadge(index, value);
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder addDisplayBadge(
          finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addDisplayBadge(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder addDisplayBadge(
          int index, finsky.protos.Badge.Builder builderForValue) {
        copyOnWrite();
        instance.addDisplayBadge(index,
            builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder addAllDisplayBadge(
          java.lang.Iterable<? extends finsky.protos.Badge> values) {
        copyOnWrite();
        instance.addAllDisplayBadge(values);
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder clearDisplayBadge() {
        copyOnWrite();
        instance.clearDisplayBadge();
        return this;
      }
      /**
       * <pre>
       * repeated Chip chip = 71;
       * </pre>
       *
       * <code>repeated .finsky.protos.Badge displayBadge = 72;</code>
       */
      public Builder removeDisplayBadge(int index) {
        copyOnWrite();
        instance.removeDisplayBadge(index);
        return this;
      }
  
      /**
       * <code>optional string liveStreamUrl = 80;</code>
       * @return Whether the liveStreamUrl field is set.
       */
      @java.lang.Override
      public boolean hasLiveStreamUrl() {
        return instance.hasLiveStreamUrl();
      }
      /**
       * <code>optional string liveStreamUrl = 80;</code>
       * @return The liveStreamUrl.
       */
      @java.lang.Override
      public java.lang.String getLiveStreamUrl() {
        return instance.getLiveStreamUrl();
      }
      /**
       * <code>optional string liveStreamUrl = 80;</code>
       * @return The bytes for liveStreamUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getLiveStreamUrlBytes() {
        return instance.getLiveStreamUrlBytes();
      }
      /**
       * <code>optional string liveStreamUrl = 80;</code>
       * @param value The liveStreamUrl to set.
       * @return This builder for chaining.
       */
      public Builder setLiveStreamUrl(
          java.lang.String value) {
        copyOnWrite();
        instance.setLiveStreamUrl(value);
        return this;
      }
      /**
       * <code>optional string liveStreamUrl = 80;</code>
       * @return This builder for chaining.
       */
      public Builder clearLiveStreamUrl() {
        copyOnWrite();
        instance.clearLiveStreamUrl();
        return this;
      }
      /**
       * <code>optional string liveStreamUrl = 80;</code>
       * @param value The bytes for liveStreamUrl to set.
       * @return This builder for chaining.
       */
      public Builder setLiveStreamUrlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setLiveStreamUrlBytes(value);
        return this;
      }
  
      /**
       * <code>optional string promotionStreamUrl = 85;</code>
       * @return Whether the promotionStreamUrl field is set.
       */
      @java.lang.Override
      public boolean hasPromotionStreamUrl() {
        return instance.hasPromotionStreamUrl();
      }
      /**
       * <code>optional string promotionStreamUrl = 85;</code>
       * @return The promotionStreamUrl.
       */
      @java.lang.Override
      public java.lang.String getPromotionStreamUrl() {
        return instance.getPromotionStreamUrl();
      }
      /**
       * <code>optional string promotionStreamUrl = 85;</code>
       * @return The bytes for promotionStreamUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPromotionStreamUrlBytes() {
        return instance.getPromotionStreamUrlBytes();
      }
      /**
       * <code>optional string promotionStreamUrl = 85;</code>
       * @param value The promotionStreamUrl to set.
       * @return This builder for chaining.
       */
      public Builder setPromotionStreamUrl(
          java.lang.String value) {
        copyOnWrite();
        instance.setPromotionStreamUrl(value);
        return this;
      }
      /**
       * <code>optional string promotionStreamUrl = 85;</code>
       * @return This builder for chaining.
       */
      public Builder clearPromotionStreamUrl() {
        copyOnWrite();
        instance.clearPromotionStreamUrl();
        return this;
      }
      /**
       * <code>optional string promotionStreamUrl = 85;</code>
       * @param value The bytes for promotionStreamUrl to set.
       * @return This builder for chaining.
       */
      public Builder setPromotionStreamUrlBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPromotionStreamUrlBytes(value);
        return this;
      }
  
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaDataExtra = 91;
       * optional SectionImage sectionImage = 94;
       * </pre>
       *
       * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
       */
      @java.lang.Override
      public boolean hasCategoryStream() {
        return instance.hasCategoryStream();
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaDataExtra = 91;
       * optional SectionImage sectionImage = 94;
       * </pre>
       *
       * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
       */
      @java.lang.Override
      public finsky.protos.SubStream getCategoryStream() {
        return instance.getCategoryStream();
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaDataExtra = 91;
       * optional SectionImage sectionImage = 94;
       * </pre>
       *
       * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
       */
      public Builder setCategoryStream(finsky.protos.SubStream value) {
        copyOnWrite();
        instance.setCategoryStream(value);
        return this;
        }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaDataExtra = 91;
       * optional SectionImage sectionImage = 94;
       * </pre>
       *
       * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
       */
      public Builder setCategoryStream(
          finsky.protos.SubStream.Builder builderForValue) {
        copyOnWrite();
        instance.setCategoryStream(builderForValue.build());
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaDataExtra = 91;
       * optional SectionImage sectionImage = 94;
       * </pre>
       *
       * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
       */
      public Builder mergeCategoryStream(finsky.protos.SubStream value) {
        copyOnWrite();
        instance.mergeCategoryStream(value);
        return this;
      }
      /**
       * <pre>
       * optional OverlayMetaData overlayMetaDataExtra = 91;
       * optional SectionImage sectionImage = 94;
       * </pre>
       *
       * <code>optional .finsky.protos.SubStream categoryStream = 97;</code>
       */
      public Builder clearCategoryStream() {  copyOnWrite();
        instance.clearCategoryStream();
        return this;
      }
  
      // @@protoc_insertion_point(builder_scope:finsky.protos.Annotations)
    }
    @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 finsky.protos.Annotations();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "sectionRelated_",
              "sectionMoreBy_",
              "sectionBodyOfWork_",
              "sectionCoreContent_",
              "badgeForCreator_",
              finsky.protos.Badge.class,
              "infoBadge_",
              finsky.protos.Badge.class,
              "annotationLink_",
              "sectionCrossSell_",
              "sectionRelatedItemType_",
              "offerNote_",
              "privacyPolicyUrl_",
              "sectionSuggestForRating_",
              "sectionPurchaseCrossSell_",
              "attributionHtml_",
              "purchaseHistoryDetails_",
              "badgeForLegacyRating_",
              "sectionFeaturedApps_",
              "detailsPageCluster_",
              finsky.protos.SectionMetaData.class,
              "sectionPurchaseRelatedTopics_",
              "featureBadge_",
              finsky.protos.Badge.class,
              "downloadsLabel_",
              "badgeForRating_",
              "categoryInfo_",
              "categoryName_",
              "displayBadge_",
              finsky.protos.Badge.class,
              "liveStreamUrl_",
              "promotionStreamUrl_",
              "categoryStream_",
            };
            java.lang.String info =
                "\u0001\u001c\u0000\u0001\u0001a\u001c\u0000\u0005\u0000\u0001\u1009\u0000\u0002\u1009" +
                "\u0001\u0005\u1009\u0002\u0006\u1009\u0003\b\u001b\t\u001b\n\u1009\u0004\u000b\u1009" +
                "\u0005\f\u1009\u0006\u000e\u1008\u0007\u0012\u1008\b\u0016\u1009\t\u0018\u1009\n" +
                "\u001b\u1008\u000b\u001c\u1009\f\u001d\u1009\r \u1009\u000e\"\u001b$\u1009\u000f" +
                "\'\u001b0\u1008\u00102\u1009\u00115\u1009\u0012B\u1008\u0013H\u001bP\u1008\u0014" +
                "U\u1008\u0015a\u1009\u0016";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<finsky.protos.Annotations> parser = PARSER;
          if (parser == null) {
            synchronized (finsky.protos.Annotations.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<finsky.protos.Annotations>(
                        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:finsky.protos.Annotations)
    private static final finsky.protos.Annotations DEFAULT_INSTANCE;
    static {
      Annotations defaultInstance = new Annotations();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Annotations.class, defaultInstance);
    }
  
    public static finsky.protos.Annotations getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
  
    private static volatile com.google.protobuf.Parser<Annotations> PARSER;
  
    public static com.google.protobuf.Parser<Annotations> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }
  
  