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.Search}
   */
  public  final class Search extends
      com.google.protobuf.GeneratedMessageLite<
          Search, Search.Builder> implements
      // @@protoc_insertion_point(message_implements:finsky.protos.Search)
      SearchOrBuilder {
    private Search() {
    }
    public interface SearchResponseOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.Search.SearchResponse)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional string originalQuery = 1;</code>
       * @return Whether the originalQuery field is set.
       */
      boolean hasOriginalQuery();
      /**
       * <code>optional string originalQuery = 1;</code>
       * @return The originalQuery.
       */
      java.lang.String getOriginalQuery();
      /**
       * <code>optional string originalQuery = 1;</code>
       * @return The bytes for originalQuery.
       */
      com.google.protobuf.ByteString
          getOriginalQueryBytes();
  
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @return Whether the suggestedQuery field is set.
       */
      boolean hasSuggestedQuery();
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @return The suggestedQuery.
       */
      java.lang.String getSuggestedQuery();
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @return The bytes for suggestedQuery.
       */
      com.google.protobuf.ByteString
          getSuggestedQueryBytes();
  
      /**
       * <code>optional bool aggregateQuery = 3;</code>
       * @return Whether the aggregateQuery field is set.
       */
      boolean hasAggregateQuery();
      /**
       * <code>optional bool aggregateQuery = 3;</code>
       * @return The aggregateQuery.
       */
      boolean getAggregateQuery();
  
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      java.util.List<finsky.protos.Bucket> 
          getBucketList();
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      finsky.protos.Bucket getBucket(int index);
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      int getBucketCount();
  
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      java.util.List<finsky.protos.DocV2> 
          getDocList();
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      finsky.protos.DocV2 getDoc(int index);
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      int getDocCount();
  
      /**
       * <pre>
       * repeated RelatedSearch relatedSearch = 6;
       * </pre>
       *
       * <code>optional bool fullPageReplaced = 8;</code>
       * @return Whether the fullPageReplaced field is set.
       */
      boolean hasFullPageReplaced();
      /**
       * <pre>
       * repeated RelatedSearch relatedSearch = 6;
       * </pre>
       *
       * <code>optional bool fullPageReplaced = 8;</code>
       * @return The fullPageReplaced.
       */
      boolean getFullPageReplaced();
  
      /**
       * <code>optional bool containsSnow = 9;</code>
       * @return Whether the containsSnow field is set.
       */
      boolean hasContainsSnow();
      /**
       * <code>optional bool containsSnow = 9;</code>
       * @return The containsSnow.
       */
      boolean getContainsSnow();
  
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @return Whether the nextPageUrl field is set.
       */
      boolean hasNextPageUrl();
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @return The nextPageUrl.
       */
      java.lang.String getNextPageUrl();
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @return The bytes for nextPageUrl.
       */
      com.google.protobuf.ByteString
          getNextPageUrlBytes();
    }
    /**
     * Protobuf type {@code finsky.protos.Search.SearchResponse}
     */
    public  static final class SearchResponse extends
        com.google.protobuf.GeneratedMessageLite<
            SearchResponse, SearchResponse.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.Search.SearchResponse)
        SearchResponseOrBuilder {
      private SearchResponse() {
        originalQuery_ = "";
        suggestedQuery_ = "";
        bucket_ = emptyProtobufList();
        doc_ = emptyProtobufList();
        nextPageUrl_ = "";
      }
      private int bitField0_;
      public static final int ORIGINALQUERY_FIELD_NUMBER = 1;
      private java.lang.String originalQuery_;
      /**
       * <code>optional string originalQuery = 1;</code>
       * @return Whether the originalQuery field is set.
       */
      @java.lang.Override
      public boolean hasOriginalQuery() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string originalQuery = 1;</code>
       * @return The originalQuery.
       */
      @java.lang.Override
      public java.lang.String getOriginalQuery() {
        return originalQuery_;
      }
      /**
       * <code>optional string originalQuery = 1;</code>
       * @return The bytes for originalQuery.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getOriginalQueryBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(originalQuery_);
      }
      /**
       * <code>optional string originalQuery = 1;</code>
       * @param value The originalQuery to set.
       */
      private void setOriginalQuery(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000001;
        originalQuery_ = value;
      }
      /**
       * <code>optional string originalQuery = 1;</code>
       */
      private void clearOriginalQuery() {
        bitField0_ = (bitField0_ & ~0x00000001);
        originalQuery_ = getDefaultInstance().getOriginalQuery();
      }
      /**
       * <code>optional string originalQuery = 1;</code>
       * @param value The bytes for originalQuery to set.
       */
      private void setOriginalQueryBytes(
          com.google.protobuf.ByteString value) {
        originalQuery_ = value.toStringUtf8();
        bitField0_ |= 0x00000001;
      }
  
      public static final int SUGGESTEDQUERY_FIELD_NUMBER = 2;
      private java.lang.String suggestedQuery_;
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @return Whether the suggestedQuery field is set.
       */
      @java.lang.Override
      public boolean hasSuggestedQuery() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @return The suggestedQuery.
       */
      @java.lang.Override
      public java.lang.String getSuggestedQuery() {
        return suggestedQuery_;
      }
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @return The bytes for suggestedQuery.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSuggestedQueryBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(suggestedQuery_);
      }
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @param value The suggestedQuery to set.
       */
      private void setSuggestedQuery(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000002;
        suggestedQuery_ = value;
      }
      /**
       * <code>optional string suggestedQuery = 2;</code>
       */
      private void clearSuggestedQuery() {
        bitField0_ = (bitField0_ & ~0x00000002);
        suggestedQuery_ = getDefaultInstance().getSuggestedQuery();
      }
      /**
       * <code>optional string suggestedQuery = 2;</code>
       * @param value The bytes for suggestedQuery to set.
       */
      private void setSuggestedQueryBytes(
          com.google.protobuf.ByteString value) {
        suggestedQuery_ = value.toStringUtf8();
        bitField0_ |= 0x00000002;
      }
  
      public static final int AGGREGATEQUERY_FIELD_NUMBER = 3;
      private boolean aggregateQuery_;
      /**
       * <code>optional bool aggregateQuery = 3;</code>
       * @return Whether the aggregateQuery field is set.
       */
      @java.lang.Override
      public boolean hasAggregateQuery() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool aggregateQuery = 3;</code>
       * @return The aggregateQuery.
       */
      @java.lang.Override
      public boolean getAggregateQuery() {
        return aggregateQuery_;
      }
      /**
       * <code>optional bool aggregateQuery = 3;</code>
       * @param value The aggregateQuery to set.
       */
      private void setAggregateQuery(boolean value) {
        bitField0_ |= 0x00000004;
        aggregateQuery_ = value;
      }
      /**
       * <code>optional bool aggregateQuery = 3;</code>
       */
      private void clearAggregateQuery() {
        bitField0_ = (bitField0_ & ~0x00000004);
        aggregateQuery_ = false;
      }
  
      public static final int BUCKET_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<finsky.protos.Bucket> bucket_;
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.Bucket> getBucketList() {
        return bucket_;
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      public java.util.List<? extends finsky.protos.BucketOrBuilder> 
          getBucketOrBuilderList() {
        return bucket_;
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      @java.lang.Override
      public int getBucketCount() {
        return bucket_.size();
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      @java.lang.Override
      public finsky.protos.Bucket getBucket(int index) {
        return bucket_.get(index);
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      public finsky.protos.BucketOrBuilder getBucketOrBuilder(
          int index) {
        return bucket_.get(index);
      }
      private void ensureBucketIsMutable() {
        com.google.protobuf.Internal.ProtobufList<finsky.protos.Bucket> tmp = bucket_;
        if (!tmp.isModifiable()) {
          bucket_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      private void setBucket(
          int index, finsky.protos.Bucket value) {
        value.getClass();
    ensureBucketIsMutable();
        bucket_.set(index, value);
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      private void addBucket(finsky.protos.Bucket value) {
        value.getClass();
    ensureBucketIsMutable();
        bucket_.add(value);
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      private void addBucket(
          int index, finsky.protos.Bucket value) {
        value.getClass();
    ensureBucketIsMutable();
        bucket_.add(index, value);
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      private void addAllBucket(
          java.lang.Iterable<? extends finsky.protos.Bucket> values) {
        ensureBucketIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, bucket_);
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      private void clearBucket() {
        bucket_ = emptyProtobufList();
      }
      /**
       * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
       */
      private void removeBucket(int index) {
        ensureBucketIsMutable();
        bucket_.remove(index);
      }
  
      public static final int DOC_FIELD_NUMBER = 5;
      private com.google.protobuf.Internal.ProtobufList<finsky.protos.DocV2> doc_;
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.DocV2> getDocList() {
        return doc_;
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      public java.util.List<? extends finsky.protos.DocV2OrBuilder> 
          getDocOrBuilderList() {
        return doc_;
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      @java.lang.Override
      public int getDocCount() {
        return doc_.size();
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      @java.lang.Override
      public finsky.protos.DocV2 getDoc(int index) {
        return doc_.get(index);
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      public finsky.protos.DocV2OrBuilder getDocOrBuilder(
          int index) {
        return doc_.get(index);
      }
      private void ensureDocIsMutable() {
        com.google.protobuf.Internal.ProtobufList<finsky.protos.DocV2> tmp = doc_;
        if (!tmp.isModifiable()) {
          doc_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      private void setDoc(
          int index, finsky.protos.DocV2 value) {
        value.getClass();
    ensureDocIsMutable();
        doc_.set(index, value);
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      private void addDoc(finsky.protos.DocV2 value) {
        value.getClass();
    ensureDocIsMutable();
        doc_.add(value);
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      private void addDoc(
          int index, finsky.protos.DocV2 value) {
        value.getClass();
    ensureDocIsMutable();
        doc_.add(index, value);
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      private void addAllDoc(
          java.lang.Iterable<? extends finsky.protos.DocV2> values) {
        ensureDocIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, doc_);
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      private void clearDoc() {
        doc_ = emptyProtobufList();
      }
      /**
       * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
       */
      private void removeDoc(int index) {
        ensureDocIsMutable();
        doc_.remove(index);
      }
  
      public static final int FULLPAGEREPLACED_FIELD_NUMBER = 8;
      private boolean fullPageReplaced_;
      /**
       * <pre>
       * repeated RelatedSearch relatedSearch = 6;
       * </pre>
       *
       * <code>optional bool fullPageReplaced = 8;</code>
       * @return Whether the fullPageReplaced field is set.
       */
      @java.lang.Override
      public boolean hasFullPageReplaced() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * repeated RelatedSearch relatedSearch = 6;
       * </pre>
       *
       * <code>optional bool fullPageReplaced = 8;</code>
       * @return The fullPageReplaced.
       */
      @java.lang.Override
      public boolean getFullPageReplaced() {
        return fullPageReplaced_;
      }
      /**
       * <pre>
       * repeated RelatedSearch relatedSearch = 6;
       * </pre>
       *
       * <code>optional bool fullPageReplaced = 8;</code>
       * @param value The fullPageReplaced to set.
       */
      private void setFullPageReplaced(boolean value) {
        bitField0_ |= 0x00000008;
        fullPageReplaced_ = value;
      }
      /**
       * <pre>
       * repeated RelatedSearch relatedSearch = 6;
       * </pre>
       *
       * <code>optional bool fullPageReplaced = 8;</code>
       */
      private void clearFullPageReplaced() {
        bitField0_ = (bitField0_ & ~0x00000008);
        fullPageReplaced_ = false;
      }
  
      public static final int CONTAINSSNOW_FIELD_NUMBER = 9;
      private boolean containsSnow_;
      /**
       * <code>optional bool containsSnow = 9;</code>
       * @return Whether the containsSnow field is set.
       */
      @java.lang.Override
      public boolean hasContainsSnow() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional bool containsSnow = 9;</code>
       * @return The containsSnow.
       */
      @java.lang.Override
      public boolean getContainsSnow() {
        return containsSnow_;
      }
      /**
       * <code>optional bool containsSnow = 9;</code>
       * @param value The containsSnow to set.
       */
      private void setContainsSnow(boolean value) {
        bitField0_ |= 0x00000010;
        containsSnow_ = value;
      }
      /**
       * <code>optional bool containsSnow = 9;</code>
       */
      private void clearContainsSnow() {
        bitField0_ = (bitField0_ & ~0x00000010);
        containsSnow_ = false;
      }
  
      public static final int NEXTPAGEURL_FIELD_NUMBER = 10;
      private java.lang.String nextPageUrl_;
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @return Whether the nextPageUrl field is set.
       */
      @java.lang.Override
      public boolean hasNextPageUrl() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @return The nextPageUrl.
       */
      @java.lang.Override
      public java.lang.String getNextPageUrl() {
        return nextPageUrl_;
      }
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @return The bytes for nextPageUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNextPageUrlBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(nextPageUrl_);
      }
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @param value The nextPageUrl to set.
       */
      private void setNextPageUrl(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000020;
        nextPageUrl_ = value;
      }
      /**
       * <code>optional string nextPageUrl = 10;</code>
       */
      private void clearNextPageUrl() {
        bitField0_ = (bitField0_ & ~0x00000020);
        nextPageUrl_ = getDefaultInstance().getNextPageUrl();
      }
      /**
       * <code>optional string nextPageUrl = 10;</code>
       * @param value The bytes for nextPageUrl to set.
       */
      private void setNextPageUrlBytes(
          com.google.protobuf.ByteString value) {
        nextPageUrl_ = value.toStringUtf8();
        bitField0_ |= 0x00000020;
      }
  
      public static finsky.protos.Search.SearchResponse parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Search.SearchResponse 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.Search.SearchResponse parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Search.SearchResponse 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.Search.SearchResponse parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.Search.SearchResponse 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.Search.SearchResponse parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Search.SearchResponse 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.Search.SearchResponse parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.Search.SearchResponse parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.Search.SearchResponse parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.Search.SearchResponse 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.Search.SearchResponse prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.Search.SearchResponse}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.Search.SearchResponse, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.Search.SearchResponse)
          finsky.protos.Search.SearchResponseOrBuilder {
        // Construct using finsky.protos.Search.SearchResponse.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional string originalQuery = 1;</code>
         * @return Whether the originalQuery field is set.
         */
        @java.lang.Override
        public boolean hasOriginalQuery() {
          return instance.hasOriginalQuery();
        }
        /**
         * <code>optional string originalQuery = 1;</code>
         * @return The originalQuery.
         */
        @java.lang.Override
        public java.lang.String getOriginalQuery() {
          return instance.getOriginalQuery();
        }
        /**
         * <code>optional string originalQuery = 1;</code>
         * @return The bytes for originalQuery.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getOriginalQueryBytes() {
          return instance.getOriginalQueryBytes();
        }
        /**
         * <code>optional string originalQuery = 1;</code>
         * @param value The originalQuery to set.
         * @return This builder for chaining.
         */
        public Builder setOriginalQuery(
            java.lang.String value) {
          copyOnWrite();
          instance.setOriginalQuery(value);
          return this;
        }
        /**
         * <code>optional string originalQuery = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearOriginalQuery() {
          copyOnWrite();
          instance.clearOriginalQuery();
          return this;
        }
        /**
         * <code>optional string originalQuery = 1;</code>
         * @param value The bytes for originalQuery to set.
         * @return This builder for chaining.
         */
        public Builder setOriginalQueryBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setOriginalQueryBytes(value);
          return this;
        }
  
        /**
         * <code>optional string suggestedQuery = 2;</code>
         * @return Whether the suggestedQuery field is set.
         */
        @java.lang.Override
        public boolean hasSuggestedQuery() {
          return instance.hasSuggestedQuery();
        }
        /**
         * <code>optional string suggestedQuery = 2;</code>
         * @return The suggestedQuery.
         */
        @java.lang.Override
        public java.lang.String getSuggestedQuery() {
          return instance.getSuggestedQuery();
        }
        /**
         * <code>optional string suggestedQuery = 2;</code>
         * @return The bytes for suggestedQuery.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getSuggestedQueryBytes() {
          return instance.getSuggestedQueryBytes();
        }
        /**
         * <code>optional string suggestedQuery = 2;</code>
         * @param value The suggestedQuery to set.
         * @return This builder for chaining.
         */
        public Builder setSuggestedQuery(
            java.lang.String value) {
          copyOnWrite();
          instance.setSuggestedQuery(value);
          return this;
        }
        /**
         * <code>optional string suggestedQuery = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearSuggestedQuery() {
          copyOnWrite();
          instance.clearSuggestedQuery();
          return this;
        }
        /**
         * <code>optional string suggestedQuery = 2;</code>
         * @param value The bytes for suggestedQuery to set.
         * @return This builder for chaining.
         */
        public Builder setSuggestedQueryBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setSuggestedQueryBytes(value);
          return this;
        }
  
        /**
         * <code>optional bool aggregateQuery = 3;</code>
         * @return Whether the aggregateQuery field is set.
         */
        @java.lang.Override
        public boolean hasAggregateQuery() {
          return instance.hasAggregateQuery();
        }
        /**
         * <code>optional bool aggregateQuery = 3;</code>
         * @return The aggregateQuery.
         */
        @java.lang.Override
        public boolean getAggregateQuery() {
          return instance.getAggregateQuery();
        }
        /**
         * <code>optional bool aggregateQuery = 3;</code>
         * @param value The aggregateQuery to set.
         * @return This builder for chaining.
         */
        public Builder setAggregateQuery(boolean value) {
          copyOnWrite();
          instance.setAggregateQuery(value);
          return this;
        }
        /**
         * <code>optional bool aggregateQuery = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearAggregateQuery() {
          copyOnWrite();
          instance.clearAggregateQuery();
          return this;
        }
  
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        @java.lang.Override
        public java.util.List<finsky.protos.Bucket> getBucketList() {
          return java.util.Collections.unmodifiableList(
              instance.getBucketList());
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        @java.lang.Override
        public int getBucketCount() {
          return instance.getBucketCount();
        }/**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        @java.lang.Override
        public finsky.protos.Bucket getBucket(int index) {
          return instance.getBucket(index);
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder setBucket(
            int index, finsky.protos.Bucket value) {
          copyOnWrite();
          instance.setBucket(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder setBucket(
            int index, finsky.protos.Bucket.Builder builderForValue) {
          copyOnWrite();
          instance.setBucket(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder addBucket(finsky.protos.Bucket value) {
          copyOnWrite();
          instance.addBucket(value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder addBucket(
            int index, finsky.protos.Bucket value) {
          copyOnWrite();
          instance.addBucket(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder addBucket(
            finsky.protos.Bucket.Builder builderForValue) {
          copyOnWrite();
          instance.addBucket(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder addBucket(
            int index, finsky.protos.Bucket.Builder builderForValue) {
          copyOnWrite();
          instance.addBucket(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder addAllBucket(
            java.lang.Iterable<? extends finsky.protos.Bucket> values) {
          copyOnWrite();
          instance.addAllBucket(values);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder clearBucket() {
          copyOnWrite();
          instance.clearBucket();
          return this;
        }
        /**
         * <code>repeated .finsky.protos.Bucket bucket = 4;</code>
         */
        public Builder removeBucket(int index) {
          copyOnWrite();
          instance.removeBucket(index);
          return this;
        }
  
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        @java.lang.Override
        public java.util.List<finsky.protos.DocV2> getDocList() {
          return java.util.Collections.unmodifiableList(
              instance.getDocList());
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        @java.lang.Override
        public int getDocCount() {
          return instance.getDocCount();
        }/**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        @java.lang.Override
        public finsky.protos.DocV2 getDoc(int index) {
          return instance.getDoc(index);
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder setDoc(
            int index, finsky.protos.DocV2 value) {
          copyOnWrite();
          instance.setDoc(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder setDoc(
            int index, finsky.protos.DocV2.Builder builderForValue) {
          copyOnWrite();
          instance.setDoc(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder addDoc(finsky.protos.DocV2 value) {
          copyOnWrite();
          instance.addDoc(value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder addDoc(
            int index, finsky.protos.DocV2 value) {
          copyOnWrite();
          instance.addDoc(index, value);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder addDoc(
            finsky.protos.DocV2.Builder builderForValue) {
          copyOnWrite();
          instance.addDoc(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder addDoc(
            int index, finsky.protos.DocV2.Builder builderForValue) {
          copyOnWrite();
          instance.addDoc(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder addAllDoc(
            java.lang.Iterable<? extends finsky.protos.DocV2> values) {
          copyOnWrite();
          instance.addAllDoc(values);
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder clearDoc() {
          copyOnWrite();
          instance.clearDoc();
          return this;
        }
        /**
         * <code>repeated .finsky.protos.DocV2 doc = 5;</code>
         */
        public Builder removeDoc(int index) {
          copyOnWrite();
          instance.removeDoc(index);
          return this;
        }
  
        /**
         * <pre>
         * repeated RelatedSearch relatedSearch = 6;
         * </pre>
         *
         * <code>optional bool fullPageReplaced = 8;</code>
         * @return Whether the fullPageReplaced field is set.
         */
        @java.lang.Override
        public boolean hasFullPageReplaced() {
          return instance.hasFullPageReplaced();
        }
        /**
         * <pre>
         * repeated RelatedSearch relatedSearch = 6;
         * </pre>
         *
         * <code>optional bool fullPageReplaced = 8;</code>
         * @return The fullPageReplaced.
         */
        @java.lang.Override
        public boolean getFullPageReplaced() {
          return instance.getFullPageReplaced();
        }
        /**
         * <pre>
         * repeated RelatedSearch relatedSearch = 6;
         * </pre>
         *
         * <code>optional bool fullPageReplaced = 8;</code>
         * @param value The fullPageReplaced to set.
         * @return This builder for chaining.
         */
        public Builder setFullPageReplaced(boolean value) {
          copyOnWrite();
          instance.setFullPageReplaced(value);
          return this;
        }
        /**
         * <pre>
         * repeated RelatedSearch relatedSearch = 6;
         * </pre>
         *
         * <code>optional bool fullPageReplaced = 8;</code>
         * @return This builder for chaining.
         */
        public Builder clearFullPageReplaced() {
          copyOnWrite();
          instance.clearFullPageReplaced();
          return this;
        }
  
        /**
         * <code>optional bool containsSnow = 9;</code>
         * @return Whether the containsSnow field is set.
         */
        @java.lang.Override
        public boolean hasContainsSnow() {
          return instance.hasContainsSnow();
        }
        /**
         * <code>optional bool containsSnow = 9;</code>
         * @return The containsSnow.
         */
        @java.lang.Override
        public boolean getContainsSnow() {
          return instance.getContainsSnow();
        }
        /**
         * <code>optional bool containsSnow = 9;</code>
         * @param value The containsSnow to set.
         * @return This builder for chaining.
         */
        public Builder setContainsSnow(boolean value) {
          copyOnWrite();
          instance.setContainsSnow(value);
          return this;
        }
        /**
         * <code>optional bool containsSnow = 9;</code>
         * @return This builder for chaining.
         */
        public Builder clearContainsSnow() {
          copyOnWrite();
          instance.clearContainsSnow();
          return this;
        }
  
        /**
         * <code>optional string nextPageUrl = 10;</code>
         * @return Whether the nextPageUrl field is set.
         */
        @java.lang.Override
        public boolean hasNextPageUrl() {
          return instance.hasNextPageUrl();
        }
        /**
         * <code>optional string nextPageUrl = 10;</code>
         * @return The nextPageUrl.
         */
        @java.lang.Override
        public java.lang.String getNextPageUrl() {
          return instance.getNextPageUrl();
        }
        /**
         * <code>optional string nextPageUrl = 10;</code>
         * @return The bytes for nextPageUrl.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNextPageUrlBytes() {
          return instance.getNextPageUrlBytes();
        }
        /**
         * <code>optional string nextPageUrl = 10;</code>
         * @param value The nextPageUrl to set.
         * @return This builder for chaining.
         */
        public Builder setNextPageUrl(
            java.lang.String value) {
          copyOnWrite();
          instance.setNextPageUrl(value);
          return this;
        }
        /**
         * <code>optional string nextPageUrl = 10;</code>
         * @return This builder for chaining.
         */
        public Builder clearNextPageUrl() {
          copyOnWrite();
          instance.clearNextPageUrl();
          return this;
        }
        /**
         * <code>optional string nextPageUrl = 10;</code>
         * @param value The bytes for nextPageUrl to set.
         * @return This builder for chaining.
         */
        public Builder setNextPageUrlBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNextPageUrlBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.Search.SearchResponse)
      }
      @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.Search.SearchResponse();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "originalQuery_",
                "suggestedQuery_",
                "aggregateQuery_",
                "bucket_",
                finsky.protos.Bucket.class,
                "doc_",
                finsky.protos.DocV2.class,
                "fullPageReplaced_",
                "containsSnow_",
                "nextPageUrl_",
              };
              java.lang.String info =
                  "\u0001\b\u0000\u0001\u0001\n\b\u0000\u0002\u0000\u0001\u1008\u0000\u0002\u1008\u0001" +
                  "\u0003\u1007\u0002\u0004\u001b\u0005\u001b\b\u1007\u0003\t\u1007\u0004\n\u1008\u0005" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.Search.SearchResponse> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.Search.SearchResponse.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.Search.SearchResponse>(
                          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.Search.SearchResponse)
      private static final finsky.protos.Search.SearchResponse DEFAULT_INSTANCE;
      static {
        SearchResponse defaultInstance = new SearchResponse();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          SearchResponse.class, defaultInstance);
      }
  
      public static finsky.protos.Search.SearchResponse getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<SearchResponse> PARSER;
  
      public static com.google.protobuf.Parser<SearchResponse> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public static finsky.protos.Search parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Search 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.Search parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Search 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.Search parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.Search 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.Search parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.Search 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.Search parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
  
    public static finsky.protos.Search parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static finsky.protos.Search parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.Search 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.Search prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }
  
    /**
     * Protobuf type {@code finsky.protos.Search}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          finsky.protos.Search, Builder> implements
        // @@protoc_insertion_point(builder_implements:finsky.protos.Search)
        finsky.protos.SearchOrBuilder {
      // Construct using finsky.protos.Search.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }
  
  
      // @@protoc_insertion_point(builder_scope:finsky.protos.Search)
    }
    @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.Search();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = null;java.lang.String info =
                "\u0001\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<finsky.protos.Search> parser = PARSER;
          if (parser == null) {
            synchronized (finsky.protos.Search.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<finsky.protos.Search>(
                        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.Search)
    private static final finsky.protos.Search DEFAULT_INSTANCE;
    static {
      Search defaultInstance = new Search();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Search.class, defaultInstance);
    }
  
    public static finsky.protos.Search getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
  
    private static volatile com.google.protobuf.Parser<Search> PARSER;
  
    public static com.google.protobuf.Parser<Search> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }
  
  