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

package edu.washington.cs.figer.data;

public final class EntityProtos {
  private EntityProtos() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface MentionOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
    
    // optional int32 start = 1;
    boolean hasStart();
    int getStart();
    
    // optional int32 end = 2;
    boolean hasEnd();
    int getEnd();
    
    // repeated string tokens = 3;
    java.util.List<String> getTokensList();
    int getTokensCount();
    String getTokens(int index);
    
    // repeated string pos_tags = 4;
    java.util.List<String> getPosTagsList();
    int getPosTagsCount();
    String getPosTags(int index);
    
    // repeated .Mention.Dependency deps = 5;
    java.util.List<edu.washington.cs.figer.data.EntityProtos.Mention.Dependency> 
        getDepsList();
    edu.washington.cs.figer.data.EntityProtos.Mention.Dependency getDeps(int index);
    int getDepsCount();
    java.util.List<? extends edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder> 
        getDepsOrBuilderList();
    edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder getDepsOrBuilder(
        int index);
    
    // optional string entity_name = 6;
    boolean hasEntityName();
    String getEntityName();
    
    // repeated string features = 7;
    java.util.List<String> getFeaturesList();
    int getFeaturesCount();
    String getFeatures(int index);
    
    // repeated string labels = 8;
    java.util.List<String> getLabelsList();
    int getLabelsCount();
    String getLabels(int index);
    
    // optional int32 sentid = 9;
    boolean hasSentid();
    int getSentid();
    
    // optional string fileid = 10;
    boolean hasFileid();
    String getFileid();
  }
  public static final class Mention extends
      com.google.protobuf.GeneratedMessage
      implements MentionOrBuilder {
    // Use Mention.newBuilder() to construct.
    private Mention(Builder builder) {
      super(builder);
    }
    private Mention(boolean noInit) {}
    
    private static final Mention defaultInstance;
    public static Mention getDefaultInstance() {
      return defaultInstance;
    }
    
    public Mention getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_fieldAccessorTable;
    }
    
    public interface DependencyOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // optional string type = 1;
      boolean hasType();
      String getType();
      
      // optional int32 gov = 2;
      boolean hasGov();
      int getGov();
      
      // optional int32 dep = 3;
      boolean hasDep();
      int getDep();
    }
    public static final class Dependency extends
        com.google.protobuf.GeneratedMessage
        implements DependencyOrBuilder {
      // Use Dependency.newBuilder() to construct.
      private Dependency(Builder builder) {
        super(builder);
      }
      private Dependency(boolean noInit) {}
      
      private static final Dependency defaultInstance;
      public static Dependency getDefaultInstance() {
        return defaultInstance;
      }
      
      public Dependency getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_Dependency_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_Dependency_fieldAccessorTable;
      }
      
      private int bitField0_;
      // optional string type = 1;
      public static final int TYPE_FIELD_NUMBER = 1;
      private java.lang.Object type_;
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getType() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            type_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // optional int32 gov = 2;
      public static final int GOV_FIELD_NUMBER = 2;
      private int gov_;
      public boolean hasGov() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getGov() {
        return gov_;
      }
      
      // optional int32 dep = 3;
      public static final int DEP_FIELD_NUMBER = 3;
      private int dep_;
      public boolean hasDep() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getDep() {
        return dep_;
      }
      
      private void initFields() {
        type_ = "";
        gov_ = 0;
        dep_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getTypeBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, gov_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, dep_);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getTypeBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, gov_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, dep_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static edu.washington.cs.figer.data.EntityProtos.Mention.Dependency parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(edu.washington.cs.figer.data.EntityProtos.Mention.Dependency prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_Dependency_descriptor;
        }
        
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_Dependency_fieldAccessorTable;
        }
        
        // Construct using edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          type_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          gov_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          dep_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.getDescriptor();
        }
        
        public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency getDefaultInstanceForType() {
          return edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.getDefaultInstance();
        }
        
        public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency build() {
          edu.washington.cs.figer.data.EntityProtos.Mention.Dependency result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private edu.washington.cs.figer.data.EntityProtos.Mention.Dependency buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          edu.washington.cs.figer.data.EntityProtos.Mention.Dependency result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency buildPartial() {
          edu.washington.cs.figer.data.EntityProtos.Mention.Dependency result = new edu.washington.cs.figer.data.EntityProtos.Mention.Dependency(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.type_ = type_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.gov_ = gov_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.dep_ = dep_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof edu.washington.cs.figer.data.EntityProtos.Mention.Dependency) {
            return mergeFrom((edu.washington.cs.figer.data.EntityProtos.Mention.Dependency)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(edu.washington.cs.figer.data.EntityProtos.Mention.Dependency other) {
          if (other == edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.getDefaultInstance()) return this;
          if (other.hasType()) {
            setType(other.getType());
          }
          if (other.hasGov()) {
            setGov(other.getGov());
          }
          if (other.hasDep()) {
            setDep(other.getDep());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                type_ = input.readBytes();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                gov_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                dep_ = input.readInt32();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // optional string type = 1;
        private java.lang.Object type_ = "";
        public boolean hasType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public String getType() {
          java.lang.Object ref = type_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            type_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setType(String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          type_ = value;
          onChanged();
          return this;
        }
        public Builder clearType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          type_ = getDefaultInstance().getType();
          onChanged();
          return this;
        }
        void setType(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000001;
          type_ = value;
          onChanged();
        }
        
        // optional int32 gov = 2;
        private int gov_ ;
        public boolean hasGov() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public int getGov() {
          return gov_;
        }
        public Builder setGov(int value) {
          bitField0_ |= 0x00000002;
          gov_ = value;
          onChanged();
          return this;
        }
        public Builder clearGov() {
          bitField0_ = (bitField0_ & ~0x00000002);
          gov_ = 0;
          onChanged();
          return this;
        }
        
        // optional int32 dep = 3;
        private int dep_ ;
        public boolean hasDep() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public int getDep() {
          return dep_;
        }
        public Builder setDep(int value) {
          bitField0_ |= 0x00000004;
          dep_ = value;
          onChanged();
          return this;
        }
        public Builder clearDep() {
          bitField0_ = (bitField0_ & ~0x00000004);
          dep_ = 0;
          onChanged();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:Mention.Dependency)
      }
      
      static {
        defaultInstance = new Dependency(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:Mention.Dependency)
    }
    
    private int bitField0_;
    // optional int32 start = 1;
    public static final int START_FIELD_NUMBER = 1;
    private int start_;
    public boolean hasStart() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getStart() {
      return start_;
    }
    
    // optional int32 end = 2;
    public static final int END_FIELD_NUMBER = 2;
    private int end_;
    public boolean hasEnd() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getEnd() {
      return end_;
    }
    
    // repeated string tokens = 3;
    public static final int TOKENS_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList tokens_;
    public java.util.List<String>
        getTokensList() {
      return tokens_;
    }
    public int getTokensCount() {
      return tokens_.size();
    }
    public String getTokens(int index) {
      return tokens_.get(index);
    }
    
    // repeated string pos_tags = 4;
    public static final int POS_TAGS_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList posTags_;
    public java.util.List<String>
        getPosTagsList() {
      return posTags_;
    }
    public int getPosTagsCount() {
      return posTags_.size();
    }
    public String getPosTags(int index) {
      return posTags_.get(index);
    }
    
    // repeated .Mention.Dependency deps = 5;
    public static final int DEPS_FIELD_NUMBER = 5;
    private java.util.List<edu.washington.cs.figer.data.EntityProtos.Mention.Dependency> deps_;
    public java.util.List<edu.washington.cs.figer.data.EntityProtos.Mention.Dependency> getDepsList() {
      return deps_;
    }
    public java.util.List<? extends edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder> 
        getDepsOrBuilderList() {
      return deps_;
    }
    public int getDepsCount() {
      return deps_.size();
    }
    public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency getDeps(int index) {
      return deps_.get(index);
    }
    public edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder getDepsOrBuilder(
        int index) {
      return deps_.get(index);
    }
    
    // optional string entity_name = 6;
    public static final int ENTITY_NAME_FIELD_NUMBER = 6;
    private java.lang.Object entityName_;
    public boolean hasEntityName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getEntityName() {
      java.lang.Object ref = entityName_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          entityName_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getEntityNameBytes() {
      java.lang.Object ref = entityName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        entityName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // repeated string features = 7;
    public static final int FEATURES_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList features_;
    public java.util.List<String>
        getFeaturesList() {
      return features_;
    }
    public int getFeaturesCount() {
      return features_.size();
    }
    public String getFeatures(int index) {
      return features_.get(index);
    }
    
    // repeated string labels = 8;
    public static final int LABELS_FIELD_NUMBER = 8;
    private com.google.protobuf.LazyStringList labels_;
    public java.util.List<String>
        getLabelsList() {
      return labels_;
    }
    public int getLabelsCount() {
      return labels_.size();
    }
    public String getLabels(int index) {
      return labels_.get(index);
    }
    
    // optional int32 sentid = 9;
    public static final int SENTID_FIELD_NUMBER = 9;
    private int sentid_;
    public boolean hasSentid() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getSentid() {
      return sentid_;
    }
    
    // optional string fileid = 10;
    public static final int FILEID_FIELD_NUMBER = 10;
    private java.lang.Object fileid_;
    public boolean hasFileid() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public String getFileid() {
      java.lang.Object ref = fileid_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          fileid_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getFileidBytes() {
      java.lang.Object ref = fileid_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        fileid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      start_ = 0;
      end_ = 0;
      tokens_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      posTags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      deps_ = java.util.Collections.emptyList();
      entityName_ = "";
      features_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      sentid_ = 0;
      fileid_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, start_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, end_);
      }
      for (int i = 0; i < tokens_.size(); i++) {
        output.writeBytes(3, tokens_.getByteString(i));
      }
      for (int i = 0; i < posTags_.size(); i++) {
        output.writeBytes(4, posTags_.getByteString(i));
      }
      for (int i = 0; i < deps_.size(); i++) {
        output.writeMessage(5, deps_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(6, getEntityNameBytes());
      }
      for (int i = 0; i < features_.size(); i++) {
        output.writeBytes(7, features_.getByteString(i));
      }
      for (int i = 0; i < labels_.size(); i++) {
        output.writeBytes(8, labels_.getByteString(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(9, sentid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(10, getFileidBytes());
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, start_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, end_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tokens_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(tokens_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getTokensList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < posTags_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(posTags_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getPosTagsList().size();
      }
      for (int i = 0; i < deps_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, deps_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getEntityNameBytes());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < features_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(features_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getFeaturesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < labels_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(labels_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getLabelsList().size();
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, sentid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(10, getFileidBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static edu.washington.cs.figer.data.EntityProtos.Mention parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(edu.washington.cs.figer.data.EntityProtos.Mention prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements edu.washington.cs.figer.data.EntityProtos.MentionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return edu.washington.cs.figer.data.EntityProtos.internal_static_Mention_fieldAccessorTable;
      }
      
      // Construct using edu.washington.cs.figer.data.EntityProtos.Mention.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDepsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        start_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        end_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        tokens_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        posTags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (depsBuilder_ == null) {
          deps_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          depsBuilder_.clear();
        }
        entityName_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        features_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        sentid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        fileid_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return edu.washington.cs.figer.data.EntityProtos.Mention.getDescriptor();
      }
      
      public edu.washington.cs.figer.data.EntityProtos.Mention getDefaultInstanceForType() {
        return edu.washington.cs.figer.data.EntityProtos.Mention.getDefaultInstance();
      }
      
      public edu.washington.cs.figer.data.EntityProtos.Mention build() {
        edu.washington.cs.figer.data.EntityProtos.Mention result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private edu.washington.cs.figer.data.EntityProtos.Mention buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        edu.washington.cs.figer.data.EntityProtos.Mention result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public edu.washington.cs.figer.data.EntityProtos.Mention buildPartial() {
        edu.washington.cs.figer.data.EntityProtos.Mention result = new edu.washington.cs.figer.data.EntityProtos.Mention(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.start_ = start_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.end_ = end_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          tokens_ = new com.google.protobuf.UnmodifiableLazyStringList(
              tokens_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.tokens_ = tokens_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          posTags_ = new com.google.protobuf.UnmodifiableLazyStringList(
              posTags_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.posTags_ = posTags_;
        if (depsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            deps_ = java.util.Collections.unmodifiableList(deps_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.deps_ = deps_;
        } else {
          result.deps_ = depsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000004;
        }
        result.entityName_ = entityName_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          features_ = new com.google.protobuf.UnmodifiableLazyStringList(
              features_);
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.features_ = features_;
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          labels_ = new com.google.protobuf.UnmodifiableLazyStringList(
              labels_);
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.labels_ = labels_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sentid_ = sentid_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000010;
        }
        result.fileid_ = fileid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof edu.washington.cs.figer.data.EntityProtos.Mention) {
          return mergeFrom((edu.washington.cs.figer.data.EntityProtos.Mention)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(edu.washington.cs.figer.data.EntityProtos.Mention other) {
        if (other == edu.washington.cs.figer.data.EntityProtos.Mention.getDefaultInstance()) return this;
        if (other.hasStart()) {
          setStart(other.getStart());
        }
        if (other.hasEnd()) {
          setEnd(other.getEnd());
        }
        if (!other.tokens_.isEmpty()) {
          if (tokens_.isEmpty()) {
            tokens_ = other.tokens_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureTokensIsMutable();
            tokens_.addAll(other.tokens_);
          }
          onChanged();
        }
        if (!other.posTags_.isEmpty()) {
          if (posTags_.isEmpty()) {
            posTags_ = other.posTags_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensurePosTagsIsMutable();
            posTags_.addAll(other.posTags_);
          }
          onChanged();
        }
        if (depsBuilder_ == null) {
          if (!other.deps_.isEmpty()) {
            if (deps_.isEmpty()) {
              deps_ = other.deps_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureDepsIsMutable();
              deps_.addAll(other.deps_);
            }
            onChanged();
          }
        } else {
          if (!other.deps_.isEmpty()) {
            if (depsBuilder_.isEmpty()) {
              depsBuilder_.dispose();
              depsBuilder_ = null;
              deps_ = other.deps_;
              bitField0_ = (bitField0_ & ~0x00000010);
              depsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDepsFieldBuilder() : null;
            } else {
              depsBuilder_.addAllMessages(other.deps_);
            }
          }
        }
        if (other.hasEntityName()) {
          setEntityName(other.getEntityName());
        }
        if (!other.features_.isEmpty()) {
          if (features_.isEmpty()) {
            features_ = other.features_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureFeaturesIsMutable();
            features_.addAll(other.features_);
          }
          onChanged();
        }
        if (!other.labels_.isEmpty()) {
          if (labels_.isEmpty()) {
            labels_ = other.labels_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureLabelsIsMutable();
            labels_.addAll(other.labels_);
          }
          onChanged();
        }
        if (other.hasSentid()) {
          setSentid(other.getSentid());
        }
        if (other.hasFileid()) {
          setFileid(other.getFileid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              start_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              end_ = input.readInt32();
              break;
            }
            case 26: {
              ensureTokensIsMutable();
              tokens_.add(input.readBytes());
              break;
            }
            case 34: {
              ensurePosTagsIsMutable();
              posTags_.add(input.readBytes());
              break;
            }
            case 42: {
              edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder subBuilder = edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addDeps(subBuilder.buildPartial());
              break;
            }
            case 50: {
              bitField0_ |= 0x00000020;
              entityName_ = input.readBytes();
              break;
            }
            case 58: {
              ensureFeaturesIsMutable();
              features_.add(input.readBytes());
              break;
            }
            case 66: {
              ensureLabelsIsMutable();
              labels_.add(input.readBytes());
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              sentid_ = input.readInt32();
              break;
            }
            case 82: {
              bitField0_ |= 0x00000200;
              fileid_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional int32 start = 1;
      private int start_ ;
      public boolean hasStart() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getStart() {
        return start_;
      }
      public Builder setStart(int value) {
        bitField0_ |= 0x00000001;
        start_ = value;
        onChanged();
        return this;
      }
      public Builder clearStart() {
        bitField0_ = (bitField0_ & ~0x00000001);
        start_ = 0;
        onChanged();
        return this;
      }
      
      // optional int32 end = 2;
      private int end_ ;
      public boolean hasEnd() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getEnd() {
        return end_;
      }
      public Builder setEnd(int value) {
        bitField0_ |= 0x00000002;
        end_ = value;
        onChanged();
        return this;
      }
      public Builder clearEnd() {
        bitField0_ = (bitField0_ & ~0x00000002);
        end_ = 0;
        onChanged();
        return this;
      }
      
      // repeated string tokens = 3;
      private com.google.protobuf.LazyStringList tokens_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTokensIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          tokens_ = new com.google.protobuf.LazyStringArrayList(tokens_);
          bitField0_ |= 0x00000004;
         }
      }
      public java.util.List<String>
          getTokensList() {
        return java.util.Collections.unmodifiableList(tokens_);
      }
      public int getTokensCount() {
        return tokens_.size();
      }
      public String getTokens(int index) {
        return tokens_.get(index);
      }
      public Builder setTokens(
          int index, String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTokensIsMutable();
        tokens_.set(index, value);
        onChanged();
        return this;
      }
      public Builder addTokens(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTokensIsMutable();
        tokens_.add(value);
        onChanged();
        return this;
      }
      public Builder addAllTokens(
          java.lang.Iterable<String> values) {
        ensureTokensIsMutable();
        super.addAll(values, tokens_);
        onChanged();
        return this;
      }
      public Builder clearTokens() {
        tokens_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      void addTokens(com.google.protobuf.ByteString value) {
        ensureTokensIsMutable();
        tokens_.add(value);
        onChanged();
      }
      
      // repeated string pos_tags = 4;
      private com.google.protobuf.LazyStringList posTags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePosTagsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          posTags_ = new com.google.protobuf.LazyStringArrayList(posTags_);
          bitField0_ |= 0x00000008;
         }
      }
      public java.util.List<String>
          getPosTagsList() {
        return java.util.Collections.unmodifiableList(posTags_);
      }
      public int getPosTagsCount() {
        return posTags_.size();
      }
      public String getPosTags(int index) {
        return posTags_.get(index);
      }
      public Builder setPosTags(
          int index, String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePosTagsIsMutable();
        posTags_.set(index, value);
        onChanged();
        return this;
      }
      public Builder addPosTags(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePosTagsIsMutable();
        posTags_.add(value);
        onChanged();
        return this;
      }
      public Builder addAllPosTags(
          java.lang.Iterable<String> values) {
        ensurePosTagsIsMutable();
        super.addAll(values, posTags_);
        onChanged();
        return this;
      }
      public Builder clearPosTags() {
        posTags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      void addPosTags(com.google.protobuf.ByteString value) {
        ensurePosTagsIsMutable();
        posTags_.add(value);
        onChanged();
      }
      
      // repeated .Mention.Dependency deps = 5;
      private java.util.List<edu.washington.cs.figer.data.EntityProtos.Mention.Dependency> deps_ =
        java.util.Collections.emptyList();
      private void ensureDepsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          deps_ = new java.util.ArrayList<edu.washington.cs.figer.data.EntityProtos.Mention.Dependency>(deps_);
          bitField0_ |= 0x00000010;
         }
      }
      
      private com.google.protobuf.RepeatedFieldBuilder<
          edu.washington.cs.figer.data.EntityProtos.Mention.Dependency, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder, edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder> depsBuilder_;
      
      public java.util.List<edu.washington.cs.figer.data.EntityProtos.Mention.Dependency> getDepsList() {
        if (depsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(deps_);
        } else {
          return depsBuilder_.getMessageList();
        }
      }
      public int getDepsCount() {
        if (depsBuilder_ == null) {
          return deps_.size();
        } else {
          return depsBuilder_.getCount();
        }
      }
      public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency getDeps(int index) {
        if (depsBuilder_ == null) {
          return deps_.get(index);
        } else {
          return depsBuilder_.getMessage(index);
        }
      }
      public Builder setDeps(
          int index, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency value) {
        if (depsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDepsIsMutable();
          deps_.set(index, value);
          onChanged();
        } else {
          depsBuilder_.setMessage(index, value);
        }
        return this;
      }
      public Builder setDeps(
          int index, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder builderForValue) {
        if (depsBuilder_ == null) {
          ensureDepsIsMutable();
          deps_.set(index, builderForValue.build());
          onChanged();
        } else {
          depsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addDeps(edu.washington.cs.figer.data.EntityProtos.Mention.Dependency value) {
        if (depsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDepsIsMutable();
          deps_.add(value);
          onChanged();
        } else {
          depsBuilder_.addMessage(value);
        }
        return this;
      }
      public Builder addDeps(
          int index, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency value) {
        if (depsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDepsIsMutable();
          deps_.add(index, value);
          onChanged();
        } else {
          depsBuilder_.addMessage(index, value);
        }
        return this;
      }
      public Builder addDeps(
          edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder builderForValue) {
        if (depsBuilder_ == null) {
          ensureDepsIsMutable();
          deps_.add(builderForValue.build());
          onChanged();
        } else {
          depsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      public Builder addDeps(
          int index, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder builderForValue) {
        if (depsBuilder_ == null) {
          ensureDepsIsMutable();
          deps_.add(index, builderForValue.build());
          onChanged();
        } else {
          depsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      public Builder addAllDeps(
          java.lang.Iterable<? extends edu.washington.cs.figer.data.EntityProtos.Mention.Dependency> values) {
        if (depsBuilder_ == null) {
          ensureDepsIsMutable();
          super.addAll(values, deps_);
          onChanged();
        } else {
          depsBuilder_.addAllMessages(values);
        }
        return this;
      }
      public Builder clearDeps() {
        if (depsBuilder_ == null) {
          deps_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          depsBuilder_.clear();
        }
        return this;
      }
      public Builder removeDeps(int index) {
        if (depsBuilder_ == null) {
          ensureDepsIsMutable();
          deps_.remove(index);
          onChanged();
        } else {
          depsBuilder_.remove(index);
        }
        return this;
      }
      public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder getDepsBuilder(
          int index) {
        return getDepsFieldBuilder().getBuilder(index);
      }
      public edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder getDepsOrBuilder(
          int index) {
        if (depsBuilder_ == null) {
          return deps_.get(index);  } else {
          return depsBuilder_.getMessageOrBuilder(index);
        }
      }
      public java.util.List<? extends edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder> 
           getDepsOrBuilderList() {
        if (depsBuilder_ != null) {
          return depsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(deps_);
        }
      }
      public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder addDepsBuilder() {
        return getDepsFieldBuilder().addBuilder(
            edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.getDefaultInstance());
      }
      public edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder addDepsBuilder(
          int index) {
        return getDepsFieldBuilder().addBuilder(
            index, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.getDefaultInstance());
      }
      public java.util.List<edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder> 
           getDepsBuilderList() {
        return getDepsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          edu.washington.cs.figer.data.EntityProtos.Mention.Dependency, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder, edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder> 
          getDepsFieldBuilder() {
        if (depsBuilder_ == null) {
          depsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              edu.washington.cs.figer.data.EntityProtos.Mention.Dependency, edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder, edu.washington.cs.figer.data.EntityProtos.Mention.DependencyOrBuilder>(
                  deps_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          deps_ = null;
        }
        return depsBuilder_;
      }
      
      // optional string entity_name = 6;
      private java.lang.Object entityName_ = "";
      public boolean hasEntityName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public String getEntityName() {
        java.lang.Object ref = entityName_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          entityName_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setEntityName(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        entityName_ = value;
        onChanged();
        return this;
      }
      public Builder clearEntityName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        entityName_ = getDefaultInstance().getEntityName();
        onChanged();
        return this;
      }
      void setEntityName(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000020;
        entityName_ = value;
        onChanged();
      }
      
      // repeated string features = 7;
      private com.google.protobuf.LazyStringList features_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureFeaturesIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          features_ = new com.google.protobuf.LazyStringArrayList(features_);
          bitField0_ |= 0x00000040;
         }
      }
      public java.util.List<String>
          getFeaturesList() {
        return java.util.Collections.unmodifiableList(features_);
      }
      public int getFeaturesCount() {
        return features_.size();
      }
      public String getFeatures(int index) {
        return features_.get(index);
      }
      public Builder setFeatures(
          int index, String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFeaturesIsMutable();
        features_.set(index, value);
        onChanged();
        return this;
      }
      public Builder addFeatures(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureFeaturesIsMutable();
        features_.add(value);
        onChanged();
        return this;
      }
      public Builder addAllFeatures(
          java.lang.Iterable<String> values) {
        ensureFeaturesIsMutable();
        super.addAll(values, features_);
        onChanged();
        return this;
      }
      public Builder clearFeatures() {
        features_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      void addFeatures(com.google.protobuf.ByteString value) {
        ensureFeaturesIsMutable();
        features_.add(value);
        onChanged();
      }
      
      // repeated string labels = 8;
      private com.google.protobuf.LazyStringList labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureLabelsIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          labels_ = new com.google.protobuf.LazyStringArrayList(labels_);
          bitField0_ |= 0x00000080;
         }
      }
      public java.util.List<String>
          getLabelsList() {
        return java.util.Collections.unmodifiableList(labels_);
      }
      public int getLabelsCount() {
        return labels_.size();
      }
      public String getLabels(int index) {
        return labels_.get(index);
      }
      public Builder setLabels(
          int index, String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLabelsIsMutable();
        labels_.set(index, value);
        onChanged();
        return this;
      }
      public Builder addLabels(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLabelsIsMutable();
        labels_.add(value);
        onChanged();
        return this;
      }
      public Builder addAllLabels(
          java.lang.Iterable<String> values) {
        ensureLabelsIsMutable();
        super.addAll(values, labels_);
        onChanged();
        return this;
      }
      public Builder clearLabels() {
        labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      void addLabels(com.google.protobuf.ByteString value) {
        ensureLabelsIsMutable();
        labels_.add(value);
        onChanged();
      }
      
      // optional int32 sentid = 9;
      private int sentid_ ;
      public boolean hasSentid() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public int getSentid() {
        return sentid_;
      }
      public Builder setSentid(int value) {
        bitField0_ |= 0x00000100;
        sentid_ = value;
        onChanged();
        return this;
      }
      public Builder clearSentid() {
        bitField0_ = (bitField0_ & ~0x00000100);
        sentid_ = 0;
        onChanged();
        return this;
      }
      
      // optional string fileid = 10;
      private java.lang.Object fileid_ = "";
      public boolean hasFileid() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public String getFileid() {
        java.lang.Object ref = fileid_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          fileid_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setFileid(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        fileid_ = value;
        onChanged();
        return this;
      }
      public Builder clearFileid() {
        bitField0_ = (bitField0_ & ~0x00000200);
        fileid_ = getDefaultInstance().getFileid();
        onChanged();
        return this;
      }
      void setFileid(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000200;
        fileid_ = value;
        onChanged();
      }
      
      // @@protoc_insertion_point(builder_scope:Mention)
    }
    
    static {
      defaultInstance = new Mention(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:Mention)
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Mention_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Mention_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Mention_Dependency_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Mention_Dependency_fieldAccessorTable;
  
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\014entity.proto\"\367\001\n\007Mention\022\r\n\005start\030\001 \001(" +
      "\005\022\013\n\003end\030\002 \001(\005\022\016\n\006tokens\030\003 \003(\t\022\020\n\010pos_ta" +
      "gs\030\004 \003(\t\022!\n\004deps\030\005 \003(\0132\023.Mention.Depende" +
      "ncy\022\023\n\013entity_name\030\006 \001(\t\022\020\n\010features\030\007 \003" +
      "(\t\022\016\n\006labels\030\010 \003(\t\022\016\n\006sentid\030\t \001(\005\022\016\n\006fi" +
      "leid\030\n \001(\t\0324\n\nDependency\022\014\n\004type\030\001 \001(\t\022\013" +
      "\n\003gov\030\002 \001(\005\022\013\n\003dep\030\003 \001(\005B,\n\034edu.washingt" +
      "on.cs.figer.dataB\014EntityProtos"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_Mention_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_Mention_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Mention_descriptor,
              new java.lang.String[] { "Start", "End", "Tokens", "PosTags", "Deps", "EntityName", "Features", "Labels", "Sentid", "Fileid", },
              edu.washington.cs.figer.data.EntityProtos.Mention.class,
              edu.washington.cs.figer.data.EntityProtos.Mention.Builder.class);
          internal_static_Mention_Dependency_descriptor =
            internal_static_Mention_descriptor.getNestedTypes().get(0);
          internal_static_Mention_Dependency_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Mention_Dependency_descriptor,
              new java.lang.String[] { "Type", "Gov", "Dep", },
              edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.class,
              edu.washington.cs.figer.data.EntityProtos.Mention.Dependency.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }
  
  // @@protoc_insertion_point(outer_class_scope)
}
