content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: com/android/aapt/Resources.proto
  // Protobuf Java Version: 4.27.0
  
  package com.android.aapt;
  
  public final class Resources {
    private Resources() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
    public interface StringPoolOrBuilder extends
        // @@protoc_insertion_point(interface_extends:StringPool)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>bytes data = 1;</code>
       * @return The data.
       */
      com.google.protobuf.ByteString getData();
    }
    /**
     * <pre>
     * A string pool that wraps the binary form of the C++ class android::ResStringPool.
     * </pre>
     *
     * Protobuf type {@code StringPool}
     */
    public  static final class StringPool extends
        com.google.protobuf.GeneratedMessageLite<
            StringPool, StringPool.Builder> implements
        // @@protoc_insertion_point(message_implements:StringPool)
        StringPoolOrBuilder {
      private StringPool() {
        data_ = com.google.protobuf.ByteString.EMPTY;
      }
      public static final int DATA_FIELD_NUMBER = 1;
      private com.google.protobuf.ByteString data_;
      /**
       * <code>bytes data = 1;</code>
       * @return The data.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * <code>bytes data = 1;</code>
       * @param value The data to set.
       */
      private void setData(com.google.protobuf.ByteString value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        data_ = value;
      }
      /**
       * <code>bytes data = 1;</code>
       */
      private void clearData() {
  
        data_ = getDefaultInstance().getData();
      }
  
      public static com.android.aapt.Resources.StringPool parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StringPool 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 com.android.aapt.Resources.StringPool parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StringPool 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 com.android.aapt.Resources.StringPool parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StringPool 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 com.android.aapt.Resources.StringPool parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StringPool 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 com.android.aapt.Resources.StringPool parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.StringPool parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.StringPool parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StringPool 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(com.android.aapt.Resources.StringPool prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A string pool that wraps the binary form of the C++ class android::ResStringPool.
       * </pre>
       *
       * Protobuf type {@code StringPool}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.StringPool, Builder> implements
          // @@protoc_insertion_point(builder_implements:StringPool)
          com.android.aapt.Resources.StringPoolOrBuilder {
        // Construct using com.android.aapt.Resources.StringPool.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>bytes data = 1;</code>
         * @return The data.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getData() {
          return instance.getData();
        }
        /**
         * <code>bytes data = 1;</code>
         * @param value The data to set.
         * @return This builder for chaining.
         */
        public Builder setData(com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setData(value);
          return this;
        }
        /**
         * <code>bytes data = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearData() {
          copyOnWrite();
          instance.clearData();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:StringPool)
      }
      @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 com.android.aapt.Resources.StringPool();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "data_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.StringPool> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.StringPool.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.StringPool>(
                          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:StringPool)
      private static final com.android.aapt.Resources.StringPool DEFAULT_INSTANCE;
      static {
        StringPool defaultInstance = new StringPool();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          StringPool.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.StringPool getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<StringPool> PARSER;
  
      public static com.google.protobuf.Parser<StringPool> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface SourcePositionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:SourcePosition)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>uint32 line_number = 1;</code>
       * @return The lineNumber.
       */
      int getLineNumber();
  
      /**
       * <code>uint32 column_number = 2;</code>
       * @return The columnNumber.
       */
      int getColumnNumber();
    }
    /**
     * <pre>
     * The position of a declared entity within a file.
     * </pre>
     *
     * Protobuf type {@code SourcePosition}
     */
    public  static final class SourcePosition extends
        com.google.protobuf.GeneratedMessageLite<
            SourcePosition, SourcePosition.Builder> implements
        // @@protoc_insertion_point(message_implements:SourcePosition)
        SourcePositionOrBuilder {
      private SourcePosition() {
      }
      public static final int LINE_NUMBER_FIELD_NUMBER = 1;
      private int lineNumber_;
      /**
       * <code>uint32 line_number = 1;</code>
       * @return The lineNumber.
       */
      @java.lang.Override
      public int getLineNumber() {
        return lineNumber_;
      }
      /**
       * <code>uint32 line_number = 1;</code>
       * @param value The lineNumber to set.
       */
      private void setLineNumber(int value) {
        
        lineNumber_ = value;
      }
      /**
       * <code>uint32 line_number = 1;</code>
       */
      private void clearLineNumber() {
  
        lineNumber_ = 0;
      }
  
      public static final int COLUMN_NUMBER_FIELD_NUMBER = 2;
      private int columnNumber_;
      /**
       * <code>uint32 column_number = 2;</code>
       * @return The columnNumber.
       */
      @java.lang.Override
      public int getColumnNumber() {
        return columnNumber_;
      }
      /**
       * <code>uint32 column_number = 2;</code>
       * @param value The columnNumber to set.
       */
      private void setColumnNumber(int value) {
        
        columnNumber_ = value;
      }
      /**
       * <code>uint32 column_number = 2;</code>
       */
      private void clearColumnNumber() {
  
        columnNumber_ = 0;
      }
  
      public static com.android.aapt.Resources.SourcePosition parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.SourcePosition 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 com.android.aapt.Resources.SourcePosition parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.SourcePosition 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 com.android.aapt.Resources.SourcePosition parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.SourcePosition 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 com.android.aapt.Resources.SourcePosition parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SourcePosition 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 com.android.aapt.Resources.SourcePosition parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.SourcePosition parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.SourcePosition parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.SourcePosition 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(com.android.aapt.Resources.SourcePosition prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * The position of a declared entity within a file.
       * </pre>
       *
       * Protobuf type {@code SourcePosition}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.SourcePosition, Builder> implements
          // @@protoc_insertion_point(builder_implements:SourcePosition)
          com.android.aapt.Resources.SourcePositionOrBuilder {
        // Construct using com.android.aapt.Resources.SourcePosition.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>uint32 line_number = 1;</code>
         * @return The lineNumber.
         */
        @java.lang.Override
        public int getLineNumber() {
          return instance.getLineNumber();
        }
        /**
         * <code>uint32 line_number = 1;</code>
         * @param value The lineNumber to set.
         * @return This builder for chaining.
         */
        public Builder setLineNumber(int value) {
          copyOnWrite();
          instance.setLineNumber(value);
          return this;
        }
        /**
         * <code>uint32 line_number = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearLineNumber() {
          copyOnWrite();
          instance.clearLineNumber();
          return this;
        }
  
        /**
         * <code>uint32 column_number = 2;</code>
         * @return The columnNumber.
         */
        @java.lang.Override
        public int getColumnNumber() {
          return instance.getColumnNumber();
        }
        /**
         * <code>uint32 column_number = 2;</code>
         * @param value The columnNumber to set.
         * @return This builder for chaining.
         */
        public Builder setColumnNumber(int value) {
          copyOnWrite();
          instance.setColumnNumber(value);
          return this;
        }
        /**
         * <code>uint32 column_number = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearColumnNumber() {
          copyOnWrite();
          instance.clearColumnNumber();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:SourcePosition)
      }
      @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 com.android.aapt.Resources.SourcePosition();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "lineNumber_",
                "columnNumber_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u000b\u0002\u000b" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.SourcePosition> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.SourcePosition.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.SourcePosition>(
                          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:SourcePosition)
      private static final com.android.aapt.Resources.SourcePosition DEFAULT_INSTANCE;
      static {
        SourcePosition defaultInstance = new SourcePosition();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          SourcePosition.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.SourcePosition getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<SourcePosition> PARSER;
  
      public static com.google.protobuf.Parser<SourcePosition> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface SourceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Source)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>uint32 path_idx = 1;</code>
       * @return The pathIdx.
       */
      int getPathIdx();
  
      /**
       * <code>.SourcePosition position = 2;</code>
       * @return Whether the position field is set.
       */
      boolean hasPosition();
      /**
       * <code>.SourcePosition position = 2;</code>
       * @return The position.
       */
      com.android.aapt.Resources.SourcePosition getPosition();
    }
    /**
     * <pre>
     * Developer friendly source file information for an entity in the resource table.
     * </pre>
     *
     * Protobuf type {@code Source}
     */
    public  static final class Source extends
        com.google.protobuf.GeneratedMessageLite<
            Source, Source.Builder> implements
        // @@protoc_insertion_point(message_implements:Source)
        SourceOrBuilder {
      private Source() {
      }
      private int bitField0_;
      public static final int PATH_IDX_FIELD_NUMBER = 1;
      private int pathIdx_;
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>uint32 path_idx = 1;</code>
       * @return The pathIdx.
       */
      @java.lang.Override
      public int getPathIdx() {
        return pathIdx_;
      }
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>uint32 path_idx = 1;</code>
       * @param value The pathIdx to set.
       */
      private void setPathIdx(int value) {
        
        pathIdx_ = value;
      }
      /**
       * <pre>
       * The index of the string path within the source string pool of a ResourceTable.
       * </pre>
       *
       * <code>uint32 path_idx = 1;</code>
       */
      private void clearPathIdx() {
  
        pathIdx_ = 0;
      }
  
      public static final int POSITION_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.SourcePosition position_;
      /**
       * <code>.SourcePosition position = 2;</code>
       */
      @java.lang.Override
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.SourcePosition position = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.SourcePosition getPosition() {
        return position_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : position_;
      }
      /**
       * <code>.SourcePosition position = 2;</code>
       */
      private void setPosition(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    position_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>.SourcePosition position = 2;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergePosition(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    if (position_ != null &&
            position_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          position_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(position_).mergeFrom(value).buildPartial();
        } else {
          position_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>.SourcePosition position = 2;</code>
       */
      private void clearPosition() {  position_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static com.android.aapt.Resources.Source parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Source 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 com.android.aapt.Resources.Source parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Source 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 com.android.aapt.Resources.Source parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Source 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 com.android.aapt.Resources.Source parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Source 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 com.android.aapt.Resources.Source parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Source parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Source parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Source 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(com.android.aapt.Resources.Source prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Developer friendly source file information for an entity in the resource table.
       * </pre>
       *
       * Protobuf type {@code Source}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Source, Builder> implements
          // @@protoc_insertion_point(builder_implements:Source)
          com.android.aapt.Resources.SourceOrBuilder {
        // Construct using com.android.aapt.Resources.Source.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The index of the string path within the source string pool of a ResourceTable.
         * </pre>
         *
         * <code>uint32 path_idx = 1;</code>
         * @return The pathIdx.
         */
        @java.lang.Override
        public int getPathIdx() {
          return instance.getPathIdx();
        }
        /**
         * <pre>
         * The index of the string path within the source string pool of a ResourceTable.
         * </pre>
         *
         * <code>uint32 path_idx = 1;</code>
         * @param value The pathIdx to set.
         * @return This builder for chaining.
         */
        public Builder setPathIdx(int value) {
          copyOnWrite();
          instance.setPathIdx(value);
          return this;
        }
        /**
         * <pre>
         * The index of the string path within the source string pool of a ResourceTable.
         * </pre>
         *
         * <code>uint32 path_idx = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPathIdx() {
          copyOnWrite();
          instance.clearPathIdx();
          return this;
        }
  
        /**
         * <code>.SourcePosition position = 2;</code>
         */
        @java.lang.Override
        public boolean hasPosition() {
          return instance.hasPosition();
        }
        /**
         * <code>.SourcePosition position = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.SourcePosition getPosition() {
          return instance.getPosition();
        }
        /**
         * <code>.SourcePosition position = 2;</code>
         */
        public Builder setPosition(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setPosition(value);
          return this;
          }
        /**
         * <code>.SourcePosition position = 2;</code>
         */
        public Builder setPosition(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setPosition(builderForValue.build());
          return this;
        }
        /**
         * <code>.SourcePosition position = 2;</code>
         */
        public Builder mergePosition(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergePosition(value);
          return this;
        }
        /**
         * <code>.SourcePosition position = 2;</code>
         */
        public Builder clearPosition() {  copyOnWrite();
          instance.clearPosition();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Source)
      }
      @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 com.android.aapt.Resources.Source();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "pathIdx_",
                "position_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u000b\u0002\u1009" +
                  "\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Source> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Source.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Source>(
                          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:Source)
      private static final com.android.aapt.Resources.Source DEFAULT_INSTANCE;
      static {
        Source defaultInstance = new Source();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Source.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Source getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Source> PARSER;
  
      public static com.google.protobuf.Parser<Source> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ToolFingerprintOrBuilder extends
        // @@protoc_insertion_point(interface_extends:ToolFingerprint)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string tool = 1;</code>
       * @return The tool.
       */
      java.lang.String getTool();
      /**
       * <code>string tool = 1;</code>
       * @return The bytes for tool.
       */
      com.google.protobuf.ByteString
          getToolBytes();
  
      /**
       * <code>string version = 2;</code>
       * @return The version.
       */
      java.lang.String getVersion();
      /**
       * <code>string version = 2;</code>
       * @return The bytes for version.
       */
      com.google.protobuf.ByteString
          getVersionBytes();
    }
    /**
     * <pre>
     * The name and version fingerprint of a build tool.
     * </pre>
     *
     * Protobuf type {@code ToolFingerprint}
     */
    public  static final class ToolFingerprint extends
        com.google.protobuf.GeneratedMessageLite<
            ToolFingerprint, ToolFingerprint.Builder> implements
        // @@protoc_insertion_point(message_implements:ToolFingerprint)
        ToolFingerprintOrBuilder {
      private ToolFingerprint() {
        tool_ = "";
        version_ = "";
      }
      public static final int TOOL_FIELD_NUMBER = 1;
      private java.lang.String tool_;
      /**
       * <code>string tool = 1;</code>
       * @return The tool.
       */
      @java.lang.Override
      public java.lang.String getTool() {
        return tool_;
      }
      /**
       * <code>string tool = 1;</code>
       * @return The bytes for tool.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getToolBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(tool_);
      }
      /**
       * <code>string tool = 1;</code>
       * @param value The tool to set.
       */
      private void setTool(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        tool_ = value;
      }
      /**
       * <code>string tool = 1;</code>
       */
      private void clearTool() {
  
        tool_ = getDefaultInstance().getTool();
      }
      /**
       * <code>string tool = 1;</code>
       * @param value The bytes for tool to set.
       */
      private void setToolBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        tool_ = value.toStringUtf8();
  
      }
  
      public static final int VERSION_FIELD_NUMBER = 2;
      private java.lang.String version_;
      /**
       * <code>string version = 2;</code>
       * @return The version.
       */
      @java.lang.Override
      public java.lang.String getVersion() {
        return version_;
      }
      /**
       * <code>string version = 2;</code>
       * @return The bytes for version.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getVersionBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(version_);
      }
      /**
       * <code>string version = 2;</code>
       * @param value The version to set.
       */
      private void setVersion(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        version_ = value;
      }
      /**
       * <code>string version = 2;</code>
       */
      private void clearVersion() {
  
        version_ = getDefaultInstance().getVersion();
      }
      /**
       * <code>string version = 2;</code>
       * @param value The bytes for version to set.
       */
      private void setVersionBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        version_ = value.toStringUtf8();
  
      }
  
      public static com.android.aapt.Resources.ToolFingerprint parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ToolFingerprint 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 com.android.aapt.Resources.ToolFingerprint parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ToolFingerprint 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 com.android.aapt.Resources.ToolFingerprint parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ToolFingerprint 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 com.android.aapt.Resources.ToolFingerprint parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ToolFingerprint 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 com.android.aapt.Resources.ToolFingerprint parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.ToolFingerprint parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.ToolFingerprint parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ToolFingerprint 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(com.android.aapt.Resources.ToolFingerprint prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * The name and version fingerprint of a build tool.
       * </pre>
       *
       * Protobuf type {@code ToolFingerprint}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.ToolFingerprint, Builder> implements
          // @@protoc_insertion_point(builder_implements:ToolFingerprint)
          com.android.aapt.Resources.ToolFingerprintOrBuilder {
        // Construct using com.android.aapt.Resources.ToolFingerprint.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string tool = 1;</code>
         * @return The tool.
         */
        @java.lang.Override
        public java.lang.String getTool() {
          return instance.getTool();
        }
        /**
         * <code>string tool = 1;</code>
         * @return The bytes for tool.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getToolBytes() {
          return instance.getToolBytes();
        }
        /**
         * <code>string tool = 1;</code>
         * @param value The tool to set.
         * @return This builder for chaining.
         */
        public Builder setTool(
            java.lang.String value) {
          copyOnWrite();
          instance.setTool(value);
          return this;
        }
        /**
         * <code>string tool = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearTool() {
          copyOnWrite();
          instance.clearTool();
          return this;
        }
        /**
         * <code>string tool = 1;</code>
         * @param value The bytes for tool to set.
         * @return This builder for chaining.
         */
        public Builder setToolBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setToolBytes(value);
          return this;
        }
  
        /**
         * <code>string version = 2;</code>
         * @return The version.
         */
        @java.lang.Override
        public java.lang.String getVersion() {
          return instance.getVersion();
        }
        /**
         * <code>string version = 2;</code>
         * @return The bytes for version.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getVersionBytes() {
          return instance.getVersionBytes();
        }
        /**
         * <code>string version = 2;</code>
         * @param value The version to set.
         * @return This builder for chaining.
         */
        public Builder setVersion(
            java.lang.String value) {
          copyOnWrite();
          instance.setVersion(value);
          return this;
        }
        /**
         * <code>string version = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearVersion() {
          copyOnWrite();
          instance.clearVersion();
          return this;
        }
        /**
         * <code>string version = 2;</code>
         * @param value The bytes for version to set.
         * @return This builder for chaining.
         */
        public Builder setVersionBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setVersionBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:ToolFingerprint)
      }
      @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 com.android.aapt.Resources.ToolFingerprint();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "tool_",
                "version_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.ToolFingerprint> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.ToolFingerprint.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.ToolFingerprint>(
                          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:ToolFingerprint)
      private static final com.android.aapt.Resources.ToolFingerprint DEFAULT_INSTANCE;
      static {
        ToolFingerprint defaultInstance = new ToolFingerprint();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          ToolFingerprint.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.ToolFingerprint getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<ToolFingerprint> PARSER;
  
      public static com.google.protobuf.Parser<ToolFingerprint> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface DynamicRefTableOrBuilder extends
        // @@protoc_insertion_point(interface_extends:DynamicRefTable)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.PackageId package_id = 1;</code>
       * @return Whether the packageId field is set.
       */
      boolean hasPackageId();
      /**
       * <code>.PackageId package_id = 1;</code>
       * @return The packageId.
       */
      com.android.aapt.Resources.PackageId getPackageId();
  
      /**
       * <code>string package_name = 2;</code>
       * @return The packageName.
       */
      java.lang.String getPackageName();
      /**
       * <code>string package_name = 2;</code>
       * @return The bytes for packageName.
       */
      com.google.protobuf.ByteString
          getPackageNameBytes();
    }
    /**
     * <pre>
     * References to non local resources
     * </pre>
     *
     * Protobuf type {@code DynamicRefTable}
     */
    public  static final class DynamicRefTable extends
        com.google.protobuf.GeneratedMessageLite<
            DynamicRefTable, DynamicRefTable.Builder> implements
        // @@protoc_insertion_point(message_implements:DynamicRefTable)
        DynamicRefTableOrBuilder {
      private DynamicRefTable() {
        packageName_ = "";
      }
      private int bitField0_;
      public static final int PACKAGE_ID_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.PackageId packageId_;
      /**
       * <code>.PackageId package_id = 1;</code>
       */
      @java.lang.Override
      public boolean hasPackageId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.PackageId package_id = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.PackageId getPackageId() {
        return packageId_ == null ? com.android.aapt.Resources.PackageId.getDefaultInstance() : packageId_;
      }
      /**
       * <code>.PackageId package_id = 1;</code>
       */
      private void setPackageId(com.android.aapt.Resources.PackageId value) {
        value.getClass();
    packageId_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>.PackageId package_id = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergePackageId(com.android.aapt.Resources.PackageId value) {
        value.getClass();
    if (packageId_ != null &&
            packageId_ != com.android.aapt.Resources.PackageId.getDefaultInstance()) {
          packageId_ =
            com.android.aapt.Resources.PackageId.newBuilder(packageId_).mergeFrom(value).buildPartial();
        } else {
          packageId_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>.PackageId package_id = 1;</code>
       */
      private void clearPackageId() {  packageId_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int PACKAGE_NAME_FIELD_NUMBER = 2;
      private java.lang.String packageName_;
      /**
       * <code>string package_name = 2;</code>
       * @return The packageName.
       */
      @java.lang.Override
      public java.lang.String getPackageName() {
        return packageName_;
      }
      /**
       * <code>string package_name = 2;</code>
       * @return The bytes for packageName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPackageNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(packageName_);
      }
      /**
       * <code>string package_name = 2;</code>
       * @param value The packageName to set.
       */
      private void setPackageName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        packageName_ = value;
      }
      /**
       * <code>string package_name = 2;</code>
       */
      private void clearPackageName() {
  
        packageName_ = getDefaultInstance().getPackageName();
      }
      /**
       * <code>string package_name = 2;</code>
       * @param value The bytes for packageName to set.
       */
      private void setPackageNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        packageName_ = value.toStringUtf8();
  
      }
  
      public static com.android.aapt.Resources.DynamicRefTable parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.DynamicRefTable 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 com.android.aapt.Resources.DynamicRefTable parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.DynamicRefTable 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 com.android.aapt.Resources.DynamicRefTable parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.DynamicRefTable 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 com.android.aapt.Resources.DynamicRefTable parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.DynamicRefTable 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 com.android.aapt.Resources.DynamicRefTable parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.DynamicRefTable parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.DynamicRefTable parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.DynamicRefTable 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(com.android.aapt.Resources.DynamicRefTable prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * References to non local resources
       * </pre>
       *
       * Protobuf type {@code DynamicRefTable}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.DynamicRefTable, Builder> implements
          // @@protoc_insertion_point(builder_implements:DynamicRefTable)
          com.android.aapt.Resources.DynamicRefTableOrBuilder {
        // Construct using com.android.aapt.Resources.DynamicRefTable.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>.PackageId package_id = 1;</code>
         */
        @java.lang.Override
        public boolean hasPackageId() {
          return instance.hasPackageId();
        }
        /**
         * <code>.PackageId package_id = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.PackageId getPackageId() {
          return instance.getPackageId();
        }
        /**
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder setPackageId(com.android.aapt.Resources.PackageId value) {
          copyOnWrite();
          instance.setPackageId(value);
          return this;
          }
        /**
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder setPackageId(
            com.android.aapt.Resources.PackageId.Builder builderForValue) {
          copyOnWrite();
          instance.setPackageId(builderForValue.build());
          return this;
        }
        /**
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder mergePackageId(com.android.aapt.Resources.PackageId value) {
          copyOnWrite();
          instance.mergePackageId(value);
          return this;
        }
        /**
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder clearPackageId() {  copyOnWrite();
          instance.clearPackageId();
          return this;
        }
  
        /**
         * <code>string package_name = 2;</code>
         * @return The packageName.
         */
        @java.lang.Override
        public java.lang.String getPackageName() {
          return instance.getPackageName();
        }
        /**
         * <code>string package_name = 2;</code>
         * @return The bytes for packageName.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getPackageNameBytes() {
          return instance.getPackageNameBytes();
        }
        /**
         * <code>string package_name = 2;</code>
         * @param value The packageName to set.
         * @return This builder for chaining.
         */
        public Builder setPackageName(
            java.lang.String value) {
          copyOnWrite();
          instance.setPackageName(value);
          return this;
        }
        /**
         * <code>string package_name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPackageName() {
          copyOnWrite();
          instance.clearPackageName();
          return this;
        }
        /**
         * <code>string package_name = 2;</code>
         * @param value The bytes for packageName to set.
         * @return This builder for chaining.
         */
        public Builder setPackageNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPackageNameBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:DynamicRefTable)
      }
      @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 com.android.aapt.Resources.DynamicRefTable();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "packageId_",
                "packageName_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                  "\u0208";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.DynamicRefTable> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.DynamicRefTable.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.DynamicRefTable>(
                          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:DynamicRefTable)
      private static final com.android.aapt.Resources.DynamicRefTable DEFAULT_INSTANCE;
      static {
        DynamicRefTable defaultInstance = new DynamicRefTable();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          DynamicRefTable.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.DynamicRefTable getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<DynamicRefTable> PARSER;
  
      public static com.google.protobuf.Parser<DynamicRefTable> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ResourceTableOrBuilder extends
        // @@protoc_insertion_point(interface_extends:ResourceTable)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>.StringPool source_pool = 1;</code>
       * @return Whether the sourcePool field is set.
       */
      boolean hasSourcePool();
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>.StringPool source_pool = 1;</code>
       * @return The sourcePool.
       */
      com.android.aapt.Resources.StringPool getSourcePool();
  
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      java.util.List<com.android.aapt.Resources.Package> 
          getPackageList();
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      com.android.aapt.Resources.Package getPackage(int index);
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      int getPackageCount();
  
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.Overlayable> 
          getOverlayableList();
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      com.android.aapt.Resources.Overlayable getOverlayable(int index);
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      int getOverlayableCount();
  
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      java.util.List<com.android.aapt.Resources.ToolFingerprint> 
          getToolFingerprintList();
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      com.android.aapt.Resources.ToolFingerprint getToolFingerprint(int index);
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      int getToolFingerprintCount();
  
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      java.util.List<com.android.aapt.Resources.DynamicRefTable> 
          getDynamicRefTableList();
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      com.android.aapt.Resources.DynamicRefTable getDynamicRefTable(int index);
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      int getDynamicRefTableCount();
    }
    /**
     * <pre>
     * Top level message representing a resource table.
     * </pre>
     *
     * Protobuf type {@code ResourceTable}
     */
    public  static final class ResourceTable extends
        com.google.protobuf.GeneratedMessageLite<
            ResourceTable, ResourceTable.Builder> implements
        // @@protoc_insertion_point(message_implements:ResourceTable)
        ResourceTableOrBuilder {
      private ResourceTable() {
        package_ = emptyProtobufList();
        overlayable_ = emptyProtobufList();
        toolFingerprint_ = emptyProtobufList();
        dynamicRefTable_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int SOURCE_POOL_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.StringPool sourcePool_;
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>.StringPool source_pool = 1;</code>
       */
      @java.lang.Override
      public boolean hasSourcePool() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>.StringPool source_pool = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.StringPool getSourcePool() {
        return sourcePool_ == null ? com.android.aapt.Resources.StringPool.getDefaultInstance() : sourcePool_;
      }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>.StringPool source_pool = 1;</code>
       */
      private void setSourcePool(com.android.aapt.Resources.StringPool value) {
        value.getClass();
    sourcePool_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>.StringPool source_pool = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSourcePool(com.android.aapt.Resources.StringPool value) {
        value.getClass();
    if (sourcePool_ != null &&
            sourcePool_ != com.android.aapt.Resources.StringPool.getDefaultInstance()) {
          sourcePool_ =
            com.android.aapt.Resources.StringPool.newBuilder(sourcePool_).mergeFrom(value).buildPartial();
        } else {
          sourcePool_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The string pool containing source paths referenced throughout the resource table. This does
       * not end up in the final binary ARSC file.
       * </pre>
       *
       * <code>.StringPool source_pool = 1;</code>
       */
      private void clearSourcePool() {  sourcePool_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int PACKAGE_FIELD_NUMBER = 2;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Package> package_;
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Package> getPackageList() {
        return package_;
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.PackageOrBuilder> 
          getPackageOrBuilderList() {
        return package_;
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      @java.lang.Override
      public int getPackageCount() {
        return package_.size();
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Package getPackage(int index) {
        return package_.get(index);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      public com.android.aapt.Resources.PackageOrBuilder getPackageOrBuilder(
          int index) {
        return package_.get(index);
      }
      private void ensurePackageIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Package> tmp = package_;
        if (!tmp.isModifiable()) {
          package_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      private void setPackage(
          int index, com.android.aapt.Resources.Package value) {
        value.getClass();
    ensurePackageIsMutable();
        package_.set(index, value);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      private void addPackage(com.android.aapt.Resources.Package value) {
        value.getClass();
    ensurePackageIsMutable();
        package_.add(value);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      private void addPackage(
          int index, com.android.aapt.Resources.Package value) {
        value.getClass();
    ensurePackageIsMutable();
        package_.add(index, value);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      private void addAllPackage(
          java.lang.Iterable<? extends com.android.aapt.Resources.Package> values) {
        ensurePackageIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, package_);
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      private void clearPackage() {
        package_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Resource definitions corresponding to an Android package.
       * </pre>
       *
       * <code>repeated .Package package = 2;</code>
       */
      private void removePackage(int index) {
        ensurePackageIsMutable();
        package_.remove(index);
      }
  
      public static final int OVERLAYABLE_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Overlayable> overlayable_;
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Overlayable> getOverlayableList() {
        return overlayable_;
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.OverlayableOrBuilder> 
          getOverlayableOrBuilderList() {
        return overlayable_;
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      @java.lang.Override
      public int getOverlayableCount() {
        return overlayable_.size();
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Overlayable getOverlayable(int index) {
        return overlayable_.get(index);
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      public com.android.aapt.Resources.OverlayableOrBuilder getOverlayableOrBuilder(
          int index) {
        return overlayable_.get(index);
      }
      private void ensureOverlayableIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Overlayable> tmp = overlayable_;
        if (!tmp.isModifiable()) {
          overlayable_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      private void setOverlayable(
          int index, com.android.aapt.Resources.Overlayable value) {
        value.getClass();
    ensureOverlayableIsMutable();
        overlayable_.set(index, value);
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      private void addOverlayable(com.android.aapt.Resources.Overlayable value) {
        value.getClass();
    ensureOverlayableIsMutable();
        overlayable_.add(value);
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      private void addOverlayable(
          int index, com.android.aapt.Resources.Overlayable value) {
        value.getClass();
    ensureOverlayableIsMutable();
        overlayable_.add(index, value);
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      private void addAllOverlayable(
          java.lang.Iterable<? extends com.android.aapt.Resources.Overlayable> values) {
        ensureOverlayableIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, overlayable_);
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      private void clearOverlayable() {
        overlayable_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The &lt;overlayable&gt; declarations within the resource table.
       * </pre>
       *
       * <code>repeated .Overlayable overlayable = 3;</code>
       */
      private void removeOverlayable(int index) {
        ensureOverlayableIsMutable();
        overlayable_.remove(index);
      }
  
      public static final int TOOL_FINGERPRINT_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.ToolFingerprint> toolFingerprint_;
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.ToolFingerprint> getToolFingerprintList() {
        return toolFingerprint_;
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.ToolFingerprintOrBuilder> 
          getToolFingerprintOrBuilderList() {
        return toolFingerprint_;
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      @java.lang.Override
      public int getToolFingerprintCount() {
        return toolFingerprint_.size();
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.ToolFingerprint getToolFingerprint(int index) {
        return toolFingerprint_.get(index);
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      public com.android.aapt.Resources.ToolFingerprintOrBuilder getToolFingerprintOrBuilder(
          int index) {
        return toolFingerprint_.get(index);
      }
      private void ensureToolFingerprintIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.ToolFingerprint> tmp = toolFingerprint_;
        if (!tmp.isModifiable()) {
          toolFingerprint_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      private void setToolFingerprint(
          int index, com.android.aapt.Resources.ToolFingerprint value) {
        value.getClass();
    ensureToolFingerprintIsMutable();
        toolFingerprint_.set(index, value);
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      private void addToolFingerprint(com.android.aapt.Resources.ToolFingerprint value) {
        value.getClass();
    ensureToolFingerprintIsMutable();
        toolFingerprint_.add(value);
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      private void addToolFingerprint(
          int index, com.android.aapt.Resources.ToolFingerprint value) {
        value.getClass();
    ensureToolFingerprintIsMutable();
        toolFingerprint_.add(index, value);
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      private void addAllToolFingerprint(
          java.lang.Iterable<? extends com.android.aapt.Resources.ToolFingerprint> values) {
        ensureToolFingerprintIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, toolFingerprint_);
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      private void clearToolFingerprint() {
        toolFingerprint_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The version fingerprints of the tools that built the resource table.
       * </pre>
       *
       * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
       */
      private void removeToolFingerprint(int index) {
        ensureToolFingerprintIsMutable();
        toolFingerprint_.remove(index);
      }
  
      public static final int DYNAMIC_REF_TABLE_FIELD_NUMBER = 5;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.DynamicRefTable> dynamicRefTable_;
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.DynamicRefTable> getDynamicRefTableList() {
        return dynamicRefTable_;
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.DynamicRefTableOrBuilder> 
          getDynamicRefTableOrBuilderList() {
        return dynamicRefTable_;
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      @java.lang.Override
      public int getDynamicRefTableCount() {
        return dynamicRefTable_.size();
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.DynamicRefTable getDynamicRefTable(int index) {
        return dynamicRefTable_.get(index);
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      public com.android.aapt.Resources.DynamicRefTableOrBuilder getDynamicRefTableOrBuilder(
          int index) {
        return dynamicRefTable_.get(index);
      }
      private void ensureDynamicRefTableIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.DynamicRefTable> tmp = dynamicRefTable_;
        if (!tmp.isModifiable()) {
          dynamicRefTable_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      private void setDynamicRefTable(
          int index, com.android.aapt.Resources.DynamicRefTable value) {
        value.getClass();
    ensureDynamicRefTableIsMutable();
        dynamicRefTable_.set(index, value);
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      private void addDynamicRefTable(com.android.aapt.Resources.DynamicRefTable value) {
        value.getClass();
    ensureDynamicRefTableIsMutable();
        dynamicRefTable_.add(value);
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      private void addDynamicRefTable(
          int index, com.android.aapt.Resources.DynamicRefTable value) {
        value.getClass();
    ensureDynamicRefTableIsMutable();
        dynamicRefTable_.add(index, value);
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      private void addAllDynamicRefTable(
          java.lang.Iterable<? extends com.android.aapt.Resources.DynamicRefTable> values) {
        ensureDynamicRefTableIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, dynamicRefTable_);
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      private void clearDynamicRefTable() {
        dynamicRefTable_ = emptyProtobufList();
      }
      /**
       * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
       */
      private void removeDynamicRefTable(int index) {
        ensureDynamicRefTableIsMutable();
        dynamicRefTable_.remove(index);
      }
  
      public static com.android.aapt.Resources.ResourceTable parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ResourceTable 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 com.android.aapt.Resources.ResourceTable parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ResourceTable 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 com.android.aapt.Resources.ResourceTable parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ResourceTable 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 com.android.aapt.Resources.ResourceTable parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ResourceTable 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 com.android.aapt.Resources.ResourceTable parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.ResourceTable parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.ResourceTable parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ResourceTable 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(com.android.aapt.Resources.ResourceTable prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Top level message representing a resource table.
       * </pre>
       *
       * Protobuf type {@code ResourceTable}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.ResourceTable, Builder> implements
          // @@protoc_insertion_point(builder_implements:ResourceTable)
          com.android.aapt.Resources.ResourceTableOrBuilder {
        // Construct using com.android.aapt.Resources.ResourceTable.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>.StringPool source_pool = 1;</code>
         */
        @java.lang.Override
        public boolean hasSourcePool() {
          return instance.hasSourcePool();
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>.StringPool source_pool = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.StringPool getSourcePool() {
          return instance.getSourcePool();
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>.StringPool source_pool = 1;</code>
         */
        public Builder setSourcePool(com.android.aapt.Resources.StringPool value) {
          copyOnWrite();
          instance.setSourcePool(value);
          return this;
          }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>.StringPool source_pool = 1;</code>
         */
        public Builder setSourcePool(
            com.android.aapt.Resources.StringPool.Builder builderForValue) {
          copyOnWrite();
          instance.setSourcePool(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>.StringPool source_pool = 1;</code>
         */
        public Builder mergeSourcePool(com.android.aapt.Resources.StringPool value) {
          copyOnWrite();
          instance.mergeSourcePool(value);
          return this;
        }
        /**
         * <pre>
         * The string pool containing source paths referenced throughout the resource table. This does
         * not end up in the final binary ARSC file.
         * </pre>
         *
         * <code>.StringPool source_pool = 1;</code>
         */
        public Builder clearSourcePool() {  copyOnWrite();
          instance.clearSourcePool();
          return this;
        }
  
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Package> getPackageList() {
          return java.util.Collections.unmodifiableList(
              instance.getPackageList());
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        @java.lang.Override
        public int getPackageCount() {
          return instance.getPackageCount();
        }/**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Package getPackage(int index) {
          return instance.getPackage(index);
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder setPackage(
            int index, com.android.aapt.Resources.Package value) {
          copyOnWrite();
          instance.setPackage(index, value);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder setPackage(
            int index, com.android.aapt.Resources.Package.Builder builderForValue) {
          copyOnWrite();
          instance.setPackage(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder addPackage(com.android.aapt.Resources.Package value) {
          copyOnWrite();
          instance.addPackage(value);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder addPackage(
            int index, com.android.aapt.Resources.Package value) {
          copyOnWrite();
          instance.addPackage(index, value);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder addPackage(
            com.android.aapt.Resources.Package.Builder builderForValue) {
          copyOnWrite();
          instance.addPackage(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder addPackage(
            int index, com.android.aapt.Resources.Package.Builder builderForValue) {
          copyOnWrite();
          instance.addPackage(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder addAllPackage(
            java.lang.Iterable<? extends com.android.aapt.Resources.Package> values) {
          copyOnWrite();
          instance.addAllPackage(values);
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder clearPackage() {
          copyOnWrite();
          instance.clearPackage();
          return this;
        }
        /**
         * <pre>
         * Resource definitions corresponding to an Android package.
         * </pre>
         *
         * <code>repeated .Package package = 2;</code>
         */
        public Builder removePackage(int index) {
          copyOnWrite();
          instance.removePackage(index);
          return this;
        }
  
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Overlayable> getOverlayableList() {
          return java.util.Collections.unmodifiableList(
              instance.getOverlayableList());
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        @java.lang.Override
        public int getOverlayableCount() {
          return instance.getOverlayableCount();
        }/**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Overlayable getOverlayable(int index) {
          return instance.getOverlayable(index);
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder setOverlayable(
            int index, com.android.aapt.Resources.Overlayable value) {
          copyOnWrite();
          instance.setOverlayable(index, value);
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder setOverlayable(
            int index, com.android.aapt.Resources.Overlayable.Builder builderForValue) {
          copyOnWrite();
          instance.setOverlayable(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder addOverlayable(com.android.aapt.Resources.Overlayable value) {
          copyOnWrite();
          instance.addOverlayable(value);
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder addOverlayable(
            int index, com.android.aapt.Resources.Overlayable value) {
          copyOnWrite();
          instance.addOverlayable(index, value);
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder addOverlayable(
            com.android.aapt.Resources.Overlayable.Builder builderForValue) {
          copyOnWrite();
          instance.addOverlayable(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder addOverlayable(
            int index, com.android.aapt.Resources.Overlayable.Builder builderForValue) {
          copyOnWrite();
          instance.addOverlayable(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder addAllOverlayable(
            java.lang.Iterable<? extends com.android.aapt.Resources.Overlayable> values) {
          copyOnWrite();
          instance.addAllOverlayable(values);
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder clearOverlayable() {
          copyOnWrite();
          instance.clearOverlayable();
          return this;
        }
        /**
         * <pre>
         * The &lt;overlayable&gt; declarations within the resource table.
         * </pre>
         *
         * <code>repeated .Overlayable overlayable = 3;</code>
         */
        public Builder removeOverlayable(int index) {
          copyOnWrite();
          instance.removeOverlayable(index);
          return this;
        }
  
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.ToolFingerprint> getToolFingerprintList() {
          return java.util.Collections.unmodifiableList(
              instance.getToolFingerprintList());
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        @java.lang.Override
        public int getToolFingerprintCount() {
          return instance.getToolFingerprintCount();
        }/**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.ToolFingerprint getToolFingerprint(int index) {
          return instance.getToolFingerprint(index);
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder setToolFingerprint(
            int index, com.android.aapt.Resources.ToolFingerprint value) {
          copyOnWrite();
          instance.setToolFingerprint(index, value);
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder setToolFingerprint(
            int index, com.android.aapt.Resources.ToolFingerprint.Builder builderForValue) {
          copyOnWrite();
          instance.setToolFingerprint(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder addToolFingerprint(com.android.aapt.Resources.ToolFingerprint value) {
          copyOnWrite();
          instance.addToolFingerprint(value);
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder addToolFingerprint(
            int index, com.android.aapt.Resources.ToolFingerprint value) {
          copyOnWrite();
          instance.addToolFingerprint(index, value);
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder addToolFingerprint(
            com.android.aapt.Resources.ToolFingerprint.Builder builderForValue) {
          copyOnWrite();
          instance.addToolFingerprint(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder addToolFingerprint(
            int index, com.android.aapt.Resources.ToolFingerprint.Builder builderForValue) {
          copyOnWrite();
          instance.addToolFingerprint(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder addAllToolFingerprint(
            java.lang.Iterable<? extends com.android.aapt.Resources.ToolFingerprint> values) {
          copyOnWrite();
          instance.addAllToolFingerprint(values);
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder clearToolFingerprint() {
          copyOnWrite();
          instance.clearToolFingerprint();
          return this;
        }
        /**
         * <pre>
         * The version fingerprints of the tools that built the resource table.
         * </pre>
         *
         * <code>repeated .ToolFingerprint tool_fingerprint = 4;</code>
         */
        public Builder removeToolFingerprint(int index) {
          copyOnWrite();
          instance.removeToolFingerprint(index);
          return this;
        }
  
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.DynamicRefTable> getDynamicRefTableList() {
          return java.util.Collections.unmodifiableList(
              instance.getDynamicRefTableList());
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        @java.lang.Override
        public int getDynamicRefTableCount() {
          return instance.getDynamicRefTableCount();
        }/**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.DynamicRefTable getDynamicRefTable(int index) {
          return instance.getDynamicRefTable(index);
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder setDynamicRefTable(
            int index, com.android.aapt.Resources.DynamicRefTable value) {
          copyOnWrite();
          instance.setDynamicRefTable(index, value);
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder setDynamicRefTable(
            int index, com.android.aapt.Resources.DynamicRefTable.Builder builderForValue) {
          copyOnWrite();
          instance.setDynamicRefTable(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder addDynamicRefTable(com.android.aapt.Resources.DynamicRefTable value) {
          copyOnWrite();
          instance.addDynamicRefTable(value);
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder addDynamicRefTable(
            int index, com.android.aapt.Resources.DynamicRefTable value) {
          copyOnWrite();
          instance.addDynamicRefTable(index, value);
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder addDynamicRefTable(
            com.android.aapt.Resources.DynamicRefTable.Builder builderForValue) {
          copyOnWrite();
          instance.addDynamicRefTable(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder addDynamicRefTable(
            int index, com.android.aapt.Resources.DynamicRefTable.Builder builderForValue) {
          copyOnWrite();
          instance.addDynamicRefTable(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder addAllDynamicRefTable(
            java.lang.Iterable<? extends com.android.aapt.Resources.DynamicRefTable> values) {
          copyOnWrite();
          instance.addAllDynamicRefTable(values);
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder clearDynamicRefTable() {
          copyOnWrite();
          instance.clearDynamicRefTable();
          return this;
        }
        /**
         * <code>repeated .DynamicRefTable dynamic_ref_table = 5;</code>
         */
        public Builder removeDynamicRefTable(int index) {
          copyOnWrite();
          instance.removeDynamicRefTable(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:ResourceTable)
      }
      @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 com.android.aapt.Resources.ResourceTable();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "sourcePool_",
                "package_",
                com.android.aapt.Resources.Package.class,
                "overlayable_",
                com.android.aapt.Resources.Overlayable.class,
                "toolFingerprint_",
                com.android.aapt.Resources.ToolFingerprint.class,
                "dynamicRefTable_",
                com.android.aapt.Resources.DynamicRefTable.class,
              };
              java.lang.String info =
                  "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0004\u0000\u0001\u1009\u0000\u0002" +
                  "\u001b\u0003\u001b\u0004\u001b\u0005\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.ResourceTable> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.ResourceTable.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.ResourceTable>(
                          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:ResourceTable)
      private static final com.android.aapt.Resources.ResourceTable DEFAULT_INSTANCE;
      static {
        ResourceTable defaultInstance = new ResourceTable();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          ResourceTable.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.ResourceTable getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<ResourceTable> PARSER;
  
      public static com.google.protobuf.Parser<ResourceTable> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface PackageIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PackageId)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      int getId();
    }
    /**
     * <pre>
     * A package ID in the range [0x00, 0xff].
     * </pre>
     *
     * Protobuf type {@code PackageId}
     */
    public  static final class PackageId extends
        com.google.protobuf.GeneratedMessageLite<
            PackageId, PackageId.Builder> implements
        // @@protoc_insertion_point(message_implements:PackageId)
        PackageIdOrBuilder {
      private PackageId() {
      }
      public static final int ID_FIELD_NUMBER = 1;
      private int id_;
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <code>uint32 id = 1;</code>
       * @param value The id to set.
       */
      private void setId(int value) {
        
        id_ = value;
      }
      /**
       * <code>uint32 id = 1;</code>
       */
      private void clearId() {
  
        id_ = 0;
      }
  
      public static com.android.aapt.Resources.PackageId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.PackageId 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 com.android.aapt.Resources.PackageId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.PackageId 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 com.android.aapt.Resources.PackageId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.PackageId 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 com.android.aapt.Resources.PackageId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.PackageId 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 com.android.aapt.Resources.PackageId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.PackageId parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.PackageId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.PackageId 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(com.android.aapt.Resources.PackageId prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A package ID in the range [0x00, 0xff].
       * </pre>
       *
       * Protobuf type {@code PackageId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.PackageId, Builder> implements
          // @@protoc_insertion_point(builder_implements:PackageId)
          com.android.aapt.Resources.PackageIdOrBuilder {
        // Construct using com.android.aapt.Resources.PackageId.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>uint32 id = 1;</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return instance.getId();
        }
        /**
         * <code>uint32 id = 1;</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <code>uint32 id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:PackageId)
      }
      @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 com.android.aapt.Resources.PackageId();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "id_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u000b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.PackageId> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.PackageId.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.PackageId>(
                          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:PackageId)
      private static final com.android.aapt.Resources.PackageId DEFAULT_INSTANCE;
      static {
        PackageId defaultInstance = new PackageId();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          PackageId.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.PackageId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<PackageId> PARSER;
  
      public static com.google.protobuf.Parser<PackageId> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface PackageOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Package)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * - ID 0x01 is reserved for the 'android' package (framework).
       * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * - ID 0x7f is reserved for the application package.
       * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.PackageId package_id = 1;</code>
       * @return Whether the packageId field is set.
       */
      boolean hasPackageId();
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * - ID 0x01 is reserved for the 'android' package (framework).
       * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * - ID 0x7f is reserved for the application package.
       * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.PackageId package_id = 1;</code>
       * @return The packageId.
       */
      com.android.aapt.Resources.PackageId getPackageId();
  
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>string package_name = 2;</code>
       * @return The packageName.
       */
      java.lang.String getPackageName();
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>string package_name = 2;</code>
       * @return The bytes for packageName.
       */
      com.google.protobuf.ByteString
          getPackageNameBytes();
  
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.Type> 
          getTypeList();
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      com.android.aapt.Resources.Type getType(int index);
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      int getTypeCount();
    }
    /**
     * <pre>
     * Defines resources for an Android package.
     * </pre>
     *
     * Protobuf type {@code Package}
     */
    public  static final class Package extends
        com.google.protobuf.GeneratedMessageLite<
            Package, Package.Builder> implements
        // @@protoc_insertion_point(message_implements:Package)
        PackageOrBuilder {
      private Package() {
        packageName_ = "";
        type_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int PACKAGE_ID_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.PackageId packageId_;
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * - ID 0x01 is reserved for the 'android' package (framework).
       * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * - ID 0x7f is reserved for the application package.
       * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.PackageId package_id = 1;</code>
       */
      @java.lang.Override
      public boolean hasPackageId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * - ID 0x01 is reserved for the 'android' package (framework).
       * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * - ID 0x7f is reserved for the application package.
       * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.PackageId package_id = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.PackageId getPackageId() {
        return packageId_ == null ? com.android.aapt.Resources.PackageId.getDefaultInstance() : packageId_;
      }
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * - ID 0x01 is reserved for the 'android' package (framework).
       * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * - ID 0x7f is reserved for the application package.
       * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.PackageId package_id = 1;</code>
       */
      private void setPackageId(com.android.aapt.Resources.PackageId value) {
        value.getClass();
    packageId_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * - ID 0x01 is reserved for the 'android' package (framework).
       * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * - ID 0x7f is reserved for the application package.
       * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.PackageId package_id = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergePackageId(com.android.aapt.Resources.PackageId value) {
        value.getClass();
    if (packageId_ != null &&
            packageId_ != com.android.aapt.Resources.PackageId.getDefaultInstance()) {
          packageId_ =
            com.android.aapt.Resources.PackageId.newBuilder(packageId_).mergeFrom(value).buildPartial();
        } else {
          packageId_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The package ID of this package, in the range [0x00, 0xff].
       * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
       * - ID 0x01 is reserved for the 'android' package (framework).
       * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
       * - ID 0x7f is reserved for the application package.
       * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.PackageId package_id = 1;</code>
       */
      private void clearPackageId() {  packageId_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int PACKAGE_NAME_FIELD_NUMBER = 2;
      private java.lang.String packageName_;
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>string package_name = 2;</code>
       * @return The packageName.
       */
      @java.lang.Override
      public java.lang.String getPackageName() {
        return packageName_;
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>string package_name = 2;</code>
       * @return The bytes for packageName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPackageNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(packageName_);
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>string package_name = 2;</code>
       * @param value The packageName to set.
       */
      private void setPackageName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        packageName_ = value;
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>string package_name = 2;</code>
       */
      private void clearPackageName() {
  
        packageName_ = getDefaultInstance().getPackageName();
      }
      /**
       * <pre>
       * The Java compatible Android package name of the app.
       * </pre>
       *
       * <code>string package_name = 2;</code>
       * @param value The bytes for packageName to set.
       */
      private void setPackageNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        packageName_ = value.toStringUtf8();
  
      }
  
      public static final int TYPE_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Type> type_;
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Type> getTypeList() {
        return type_;
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.TypeOrBuilder> 
          getTypeOrBuilderList() {
        return type_;
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      @java.lang.Override
      public int getTypeCount() {
        return type_.size();
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Type getType(int index) {
        return type_.get(index);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      public com.android.aapt.Resources.TypeOrBuilder getTypeOrBuilder(
          int index) {
        return type_.get(index);
      }
      private void ensureTypeIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Type> tmp = type_;
        if (!tmp.isModifiable()) {
          type_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      private void setType(
          int index, com.android.aapt.Resources.Type value) {
        value.getClass();
    ensureTypeIsMutable();
        type_.set(index, value);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      private void addType(com.android.aapt.Resources.Type value) {
        value.getClass();
    ensureTypeIsMutable();
        type_.add(value);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      private void addType(
          int index, com.android.aapt.Resources.Type value) {
        value.getClass();
    ensureTypeIsMutable();
        type_.add(index, value);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      private void addAllType(
          java.lang.Iterable<? extends com.android.aapt.Resources.Type> values) {
        ensureTypeIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, type_);
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      private void clearType() {
        type_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The series of types defined by the package.
       * </pre>
       *
       * <code>repeated .Type type = 3;</code>
       */
      private void removeType(int index) {
        ensureTypeIsMutable();
        type_.remove(index);
      }
  
      public static com.android.aapt.Resources.Package parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Package 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 com.android.aapt.Resources.Package parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Package 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 com.android.aapt.Resources.Package parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Package 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 com.android.aapt.Resources.Package parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Package 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 com.android.aapt.Resources.Package parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Package parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Package parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Package 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(com.android.aapt.Resources.Package prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Defines resources for an Android package.
       * </pre>
       *
       * Protobuf type {@code Package}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Package, Builder> implements
          // @@protoc_insertion_point(builder_implements:Package)
          com.android.aapt.Resources.PackageOrBuilder {
        // Construct using com.android.aapt.Resources.Package.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * - ID 0x01 is reserved for the 'android' package (framework).
         * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * - ID 0x7f is reserved for the application package.
         * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.PackageId package_id = 1;</code>
         */
        @java.lang.Override
        public boolean hasPackageId() {
          return instance.hasPackageId();
        }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * - ID 0x01 is reserved for the 'android' package (framework).
         * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * - ID 0x7f is reserved for the application package.
         * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.PackageId package_id = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.PackageId getPackageId() {
          return instance.getPackageId();
        }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * - ID 0x01 is reserved for the 'android' package (framework).
         * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * - ID 0x7f is reserved for the application package.
         * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder setPackageId(com.android.aapt.Resources.PackageId value) {
          copyOnWrite();
          instance.setPackageId(value);
          return this;
          }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * - ID 0x01 is reserved for the 'android' package (framework).
         * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * - ID 0x7f is reserved for the application package.
         * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder setPackageId(
            com.android.aapt.Resources.PackageId.Builder builderForValue) {
          copyOnWrite();
          instance.setPackageId(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * - ID 0x01 is reserved for the 'android' package (framework).
         * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * - ID 0x7f is reserved for the application package.
         * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder mergePackageId(com.android.aapt.Resources.PackageId value) {
          copyOnWrite();
          instance.mergePackageId(value);
          return this;
        }
        /**
         * <pre>
         * The package ID of this package, in the range [0x00, 0xff].
         * - ID 0x00 is reserved for shared libraries, or when the ID is assigned at run-time.
         * - ID 0x01 is reserved for the 'android' package (framework).
         * - ID range [0x02, 0x7f) is reserved for auto-assignment to shared libraries at run-time.
         * - ID 0x7f is reserved for the application package.
         * - IDs &gt; 0x7f are reserved for the application as well and are treated as feature splits.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.PackageId package_id = 1;</code>
         */
        public Builder clearPackageId() {  copyOnWrite();
          instance.clearPackageId();
          return this;
        }
  
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>string package_name = 2;</code>
         * @return The packageName.
         */
        @java.lang.Override
        public java.lang.String getPackageName() {
          return instance.getPackageName();
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>string package_name = 2;</code>
         * @return The bytes for packageName.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getPackageNameBytes() {
          return instance.getPackageNameBytes();
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>string package_name = 2;</code>
         * @param value The packageName to set.
         * @return This builder for chaining.
         */
        public Builder setPackageName(
            java.lang.String value) {
          copyOnWrite();
          instance.setPackageName(value);
          return this;
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>string package_name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPackageName() {
          copyOnWrite();
          instance.clearPackageName();
          return this;
        }
        /**
         * <pre>
         * The Java compatible Android package name of the app.
         * </pre>
         *
         * <code>string package_name = 2;</code>
         * @param value The bytes for packageName to set.
         * @return This builder for chaining.
         */
        public Builder setPackageNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPackageNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Type> getTypeList() {
          return java.util.Collections.unmodifiableList(
              instance.getTypeList());
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        @java.lang.Override
        public int getTypeCount() {
          return instance.getTypeCount();
        }/**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Type getType(int index) {
          return instance.getType(index);
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder setType(
            int index, com.android.aapt.Resources.Type value) {
          copyOnWrite();
          instance.setType(index, value);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder setType(
            int index, com.android.aapt.Resources.Type.Builder builderForValue) {
          copyOnWrite();
          instance.setType(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder addType(com.android.aapt.Resources.Type value) {
          copyOnWrite();
          instance.addType(value);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder addType(
            int index, com.android.aapt.Resources.Type value) {
          copyOnWrite();
          instance.addType(index, value);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder addType(
            com.android.aapt.Resources.Type.Builder builderForValue) {
          copyOnWrite();
          instance.addType(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder addType(
            int index, com.android.aapt.Resources.Type.Builder builderForValue) {
          copyOnWrite();
          instance.addType(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder addAllType(
            java.lang.Iterable<? extends com.android.aapt.Resources.Type> values) {
          copyOnWrite();
          instance.addAllType(values);
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }
        /**
         * <pre>
         * The series of types defined by the package.
         * </pre>
         *
         * <code>repeated .Type type = 3;</code>
         */
        public Builder removeType(int index) {
          copyOnWrite();
          instance.removeType(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Package)
      }
      @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 com.android.aapt.Resources.Package();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "packageId_",
                "packageName_",
                "type_",
                com.android.aapt.Resources.Type.class,
              };
              java.lang.String info =
                  "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0001\u0000\u0001\u1009\u0000\u0002" +
                  "\u0208\u0003\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Package> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Package.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Package>(
                          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:Package)
      private static final com.android.aapt.Resources.Package DEFAULT_INSTANCE;
      static {
        Package defaultInstance = new Package();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Package.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Package getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Package> PARSER;
  
      public static com.google.protobuf.Parser<Package> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface TypeIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:TypeId)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      int getId();
    }
    /**
     * <pre>
     * A type ID in the range [0x01, 0xff].
     * </pre>
     *
     * Protobuf type {@code TypeId}
     */
    public  static final class TypeId extends
        com.google.protobuf.GeneratedMessageLite<
            TypeId, TypeId.Builder> implements
        // @@protoc_insertion_point(message_implements:TypeId)
        TypeIdOrBuilder {
      private TypeId() {
      }
      public static final int ID_FIELD_NUMBER = 1;
      private int id_;
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <code>uint32 id = 1;</code>
       * @param value The id to set.
       */
      private void setId(int value) {
        
        id_ = value;
      }
      /**
       * <code>uint32 id = 1;</code>
       */
      private void clearId() {
  
        id_ = 0;
      }
  
      public static com.android.aapt.Resources.TypeId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.TypeId 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 com.android.aapt.Resources.TypeId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.TypeId 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 com.android.aapt.Resources.TypeId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.TypeId 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 com.android.aapt.Resources.TypeId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.TypeId 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 com.android.aapt.Resources.TypeId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.TypeId parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.TypeId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.TypeId 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(com.android.aapt.Resources.TypeId prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A type ID in the range [0x01, 0xff].
       * </pre>
       *
       * Protobuf type {@code TypeId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.TypeId, Builder> implements
          // @@protoc_insertion_point(builder_implements:TypeId)
          com.android.aapt.Resources.TypeIdOrBuilder {
        // Construct using com.android.aapt.Resources.TypeId.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>uint32 id = 1;</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return instance.getId();
        }
        /**
         * <code>uint32 id = 1;</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <code>uint32 id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:TypeId)
      }
      @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 com.android.aapt.Resources.TypeId();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "id_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u000b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.TypeId> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.TypeId.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.TypeId>(
                          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:TypeId)
      private static final com.android.aapt.Resources.TypeId DEFAULT_INSTANCE;
      static {
        TypeId defaultInstance = new TypeId();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          TypeId.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.TypeId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<TypeId> PARSER;
  
      public static com.google.protobuf.Parser<TypeId> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface TypeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Type)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The ID of the type. This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.TypeId type_id = 1;</code>
       * @return Whether the typeId field is set.
       */
      boolean hasTypeId();
      /**
       * <pre>
       * The ID of the type. This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.TypeId type_id = 1;</code>
       * @return The typeId.
       */
      com.android.aapt.Resources.TypeId getTypeId();
  
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.Entry> 
          getEntryList();
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      com.android.aapt.Resources.Entry getEntry(int index);
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A set of resources grouped under a common type. Such types include string, layout, xml, dimen,
     * attr, etc. This maps to the second part of a resource identifier in Java (R.type.entry).
     * </pre>
     *
     * Protobuf type {@code Type}
     */
    public  static final class Type extends
        com.google.protobuf.GeneratedMessageLite<
            Type, Type.Builder> implements
        // @@protoc_insertion_point(message_implements:Type)
        TypeOrBuilder {
      private Type() {
        name_ = "";
        entry_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int TYPE_ID_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.TypeId typeId_;
      /**
       * <pre>
       * The ID of the type. This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.TypeId type_id = 1;</code>
       */
      @java.lang.Override
      public boolean hasTypeId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The ID of the type. This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.TypeId type_id = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.TypeId getTypeId() {
        return typeId_ == null ? com.android.aapt.Resources.TypeId.getDefaultInstance() : typeId_;
      }
      /**
       * <pre>
       * The ID of the type. This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.TypeId type_id = 1;</code>
       */
      private void setTypeId(com.android.aapt.Resources.TypeId value) {
        value.getClass();
    typeId_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The ID of the type. This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.TypeId type_id = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeTypeId(com.android.aapt.Resources.TypeId value) {
        value.getClass();
    if (typeId_ != null &&
            typeId_ != com.android.aapt.Resources.TypeId.getDefaultInstance()) {
          typeId_ =
            com.android.aapt.Resources.TypeId.newBuilder(typeId_).mergeFrom(value).buildPartial();
        } else {
          typeId_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The ID of the type. This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.TypeId type_id = 1;</code>
       */
      private void clearTypeId() {  typeId_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The name to set.
       */
      private void setName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        name_ = value;
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>string name = 2;</code>
       */
      private void clearName() {
  
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of the type. This corresponds to the 'type' part of a full resource name of the form
       * package:type/entry. The set of legal type names is listed in Resource.cpp.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The bytes for name to set.
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        name_ = value.toStringUtf8();
  
      }
  
      public static final int ENTRY_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Entry> entry_;
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      @java.lang.Override
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      public com.android.aapt.Resources.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Entry> tmp = entry_;
        if (!tmp.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      private void addEntry(com.android.aapt.Resources.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The entries defined for this type.
       * </pre>
       *
       * <code>repeated .Entry entry = 3;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public static com.android.aapt.Resources.Type parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Type 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 com.android.aapt.Resources.Type parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Type 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 com.android.aapt.Resources.Type parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Type 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 com.android.aapt.Resources.Type parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Type 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 com.android.aapt.Resources.Type parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Type parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Type parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Type 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(com.android.aapt.Resources.Type prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A set of resources grouped under a common type. Such types include string, layout, xml, dimen,
       * attr, etc. This maps to the second part of a resource identifier in Java (R.type.entry).
       * </pre>
       *
       * Protobuf type {@code Type}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Type, Builder> implements
          // @@protoc_insertion_point(builder_implements:Type)
          com.android.aapt.Resources.TypeOrBuilder {
        // Construct using com.android.aapt.Resources.Type.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The ID of the type. This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.TypeId type_id = 1;</code>
         */
        @java.lang.Override
        public boolean hasTypeId() {
          return instance.hasTypeId();
        }
        /**
         * <pre>
         * The ID of the type. This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.TypeId type_id = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.TypeId getTypeId() {
          return instance.getTypeId();
        }
        /**
         * <pre>
         * The ID of the type. This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.TypeId type_id = 1;</code>
         */
        public Builder setTypeId(com.android.aapt.Resources.TypeId value) {
          copyOnWrite();
          instance.setTypeId(value);
          return this;
          }
        /**
         * <pre>
         * The ID of the type. This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.TypeId type_id = 1;</code>
         */
        public Builder setTypeId(
            com.android.aapt.Resources.TypeId.Builder builderForValue) {
          copyOnWrite();
          instance.setTypeId(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The ID of the type. This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.TypeId type_id = 1;</code>
         */
        public Builder mergeTypeId(com.android.aapt.Resources.TypeId value) {
          copyOnWrite();
          instance.mergeTypeId(value);
          return this;
        }
        /**
         * <pre>
         * The ID of the type. This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.TypeId type_id = 1;</code>
         */
        public Builder clearTypeId() {  copyOnWrite();
          instance.clearTypeId();
          return this;
        }
  
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of the type. This corresponds to the 'type' part of a full resource name of the form
         * package:type/entry. The set of legal type names is listed in Resource.cpp.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        @java.lang.Override
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The entries defined for this type.
         * </pre>
         *
         * <code>repeated .Entry entry = 3;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Type)
      }
      @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 com.android.aapt.Resources.Type();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "typeId_",
                "name_",
                "entry_",
                com.android.aapt.Resources.Entry.class,
              };
              java.lang.String info =
                  "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0001\u0000\u0001\u1009\u0000\u0002" +
                  "\u0208\u0003\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Type> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Type.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Type>(
                          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:Type)
      private static final com.android.aapt.Resources.Type DEFAULT_INSTANCE;
      static {
        Type defaultInstance = new Type();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Type.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Type getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Type> PARSER;
  
      public static com.google.protobuf.Parser<Type> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface VisibilityOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Visibility)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Visibility.Level level = 1;</code>
       * @return The enum numeric value on the wire for level.
       */
      int getLevelValue();
      /**
       * <code>.Visibility.Level level = 1;</code>
       * @return The level.
       */
      com.android.aapt.Resources.Visibility.Level getLevel();
  
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>.Source source = 2;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>.Source source = 2;</code>
       * @return The source.
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>string comment = 3;</code>
       * @return The comment.
       */
      java.lang.String getComment();
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>string comment = 3;</code>
       * @return The bytes for comment.
       */
      com.google.protobuf.ByteString
          getCommentBytes();
  
      /**
       * <pre>
       * Indicates that the resource id may change across builds and that the public R.java identifier
       * for this resource should not be final. This is set to `true` for resources in `staging-group`
       * tags.
       * </pre>
       *
       * <code>bool staged_api = 4;</code>
       * @return The stagedApi.
       */
      boolean getStagedApi();
    }
    /**
     * <pre>
     * The Visibility of a symbol/entry (public, private, undefined).
     * </pre>
     *
     * Protobuf type {@code Visibility}
     */
    public  static final class Visibility extends
        com.google.protobuf.GeneratedMessageLite<
            Visibility, Visibility.Builder> implements
        // @@protoc_insertion_point(message_implements:Visibility)
        VisibilityOrBuilder {
      private Visibility() {
        comment_ = "";
      }
      /**
       * <pre>
       * The visibility of the resource outside of its package.
       * </pre>
       *
       * Protobuf enum {@code Visibility.Level}
       */
      public enum Level
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * No visibility was explicitly specified. This is typically treated as private.
         * The distinction is important when two separate R.java files are generated: a public and
         * private one. An unknown visibility, in this case, would cause the resource to be omitted
         * from either R.java.
         * </pre>
         *
         * <code>UNKNOWN = 0;</code>
         */
        UNKNOWN(0),
        /**
         * <pre>
         * A resource was explicitly marked as private. This means the resource can not be accessed
         * outside of its package unless the &#64;*package:type/entry notation is used (the asterisk being
         * the private accessor). If two R.java files are generated (private + public), the resource
         * will only be emitted to the private R.java file.
         * </pre>
         *
         * <code>PRIVATE = 1;</code>
         */
        PRIVATE(1),
        /**
         * <pre>
         * A resource was explicitly marked as public. This means the resource can be accessed
         * from any package, and is emitted into all R.java files, public and private.
         * </pre>
         *
         * <code>PUBLIC = 2;</code>
         */
        PUBLIC(2),
        UNRECOGNIZED(-1),
        ;
  
        /**
         * <pre>
         * No visibility was explicitly specified. This is typically treated as private.
         * The distinction is important when two separate R.java files are generated: a public and
         * private one. An unknown visibility, in this case, would cause the resource to be omitted
         * from either R.java.
         * </pre>
         *
         * <code>UNKNOWN = 0;</code>
         */
        public static final int UNKNOWN_VALUE = 0;
        /**
         * <pre>
         * A resource was explicitly marked as private. This means the resource can not be accessed
         * outside of its package unless the &#64;*package:type/entry notation is used (the asterisk being
         * the private accessor). If two R.java files are generated (private + public), the resource
         * will only be emitted to the private R.java file.
         * </pre>
         *
         * <code>PRIVATE = 1;</code>
         */
        public static final int PRIVATE_VALUE = 1;
        /**
         * <pre>
         * A resource was explicitly marked as public. This means the resource can be accessed
         * from any package, and is emitted into all R.java files, public and private.
         * </pre>
         *
         * <code>PUBLIC = 2;</code>
         */
        public static final int PUBLIC_VALUE = 2;
  
  
        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }
  
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Level valueOf(int value) {
          return forNumber(value);
        }
  
        public static Level forNumber(int value) {
          switch (value) {
            case 0: return UNKNOWN;
            case 1: return PRIVATE;
            case 2: return PUBLIC;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Level>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Level> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Level>() {
                @java.lang.Override
                public Level findValueByNumber(int number) {
                  return Level.forNumber(number);
                }
              };
  
        public static com.google.protobuf.Internal.EnumVerifier 
            internalGetVerifier() {
          return LevelVerifier.INSTANCE;
        }
  
        private static final class LevelVerifier implements 
             com.google.protobuf.Internal.EnumVerifier { 
                static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new LevelVerifier();
                @java.lang.Override
                public boolean isInRange(int number) {
                  return Level.forNumber(number) != null;
                }
              };
  
        private final int value;
  
        private Level(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:Visibility.Level)
      }
  
      private int bitField0_;
      public static final int LEVEL_FIELD_NUMBER = 1;
      private int level_;
      /**
       * <code>.Visibility.Level level = 1;</code>
       * @return The enum numeric value on the wire for level.
       */
      @java.lang.Override
      public int getLevelValue() {
        return level_;
      }
      /**
       * <code>.Visibility.Level level = 1;</code>
       * @return The level.
       */
      @java.lang.Override
      public com.android.aapt.Resources.Visibility.Level getLevel() {
        com.android.aapt.Resources.Visibility.Level result = com.android.aapt.Resources.Visibility.Level.forNumber(level_);
        return result == null ? com.android.aapt.Resources.Visibility.Level.UNRECOGNIZED : result;
      }
      /**
       * <code>.Visibility.Level level = 1;</code>
       * @param value The enum numeric value on the wire for level to set.
       */
      private void setLevelValue(int value) {
          level_ = value;
      }
      /**
       * <code>.Visibility.Level level = 1;</code>
       * @param value The level to set.
       */
      private void setLevel(com.android.aapt.Resources.Visibility.Level value) {
        level_ = value.getNumber();
  
      }
      /**
       * <code>.Visibility.Level level = 1;</code>
       */
      private void clearLevel() {
  
        level_ = 0;
      }
  
      public static final int SOURCE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Source source_;
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The path at which this entry's visibility was defined (eg. public.xml).
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int COMMENT_FIELD_NUMBER = 3;
      private java.lang.String comment_;
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>string comment = 3;</code>
       * @return The comment.
       */
      @java.lang.Override
      public java.lang.String getComment() {
        return comment_;
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>string comment = 3;</code>
       * @return The bytes for comment.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCommentBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(comment_);
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>string comment = 3;</code>
       * @param value The comment to set.
       */
      private void setComment(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        comment_ = value;
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>string comment = 3;</code>
       */
      private void clearComment() {
  
        comment_ = getDefaultInstance().getComment();
      }
      /**
       * <pre>
       * The comment associated with the &lt;public&gt; tag.
       * </pre>
       *
       * <code>string comment = 3;</code>
       * @param value The bytes for comment to set.
       */
      private void setCommentBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        comment_ = value.toStringUtf8();
  
      }
  
      public static final int STAGED_API_FIELD_NUMBER = 4;
      private boolean stagedApi_;
      /**
       * <pre>
       * Indicates that the resource id may change across builds and that the public R.java identifier
       * for this resource should not be final. This is set to `true` for resources in `staging-group`
       * tags.
       * </pre>
       *
       * <code>bool staged_api = 4;</code>
       * @return The stagedApi.
       */
      @java.lang.Override
      public boolean getStagedApi() {
        return stagedApi_;
      }
      /**
       * <pre>
       * Indicates that the resource id may change across builds and that the public R.java identifier
       * for this resource should not be final. This is set to `true` for resources in `staging-group`
       * tags.
       * </pre>
       *
       * <code>bool staged_api = 4;</code>
       * @param value The stagedApi to set.
       */
      private void setStagedApi(boolean value) {
        
        stagedApi_ = value;
      }
      /**
       * <pre>
       * Indicates that the resource id may change across builds and that the public R.java identifier
       * for this resource should not be final. This is set to `true` for resources in `staging-group`
       * tags.
       * </pre>
       *
       * <code>bool staged_api = 4;</code>
       */
      private void clearStagedApi() {
  
        stagedApi_ = false;
      }
  
      public static com.android.aapt.Resources.Visibility parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Visibility 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 com.android.aapt.Resources.Visibility parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Visibility 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 com.android.aapt.Resources.Visibility parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Visibility 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 com.android.aapt.Resources.Visibility parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Visibility 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 com.android.aapt.Resources.Visibility parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Visibility parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Visibility parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Visibility 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(com.android.aapt.Resources.Visibility prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * The Visibility of a symbol/entry (public, private, undefined).
       * </pre>
       *
       * Protobuf type {@code Visibility}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Visibility, Builder> implements
          // @@protoc_insertion_point(builder_implements:Visibility)
          com.android.aapt.Resources.VisibilityOrBuilder {
        // Construct using com.android.aapt.Resources.Visibility.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>.Visibility.Level level = 1;</code>
         * @return The enum numeric value on the wire for level.
         */
        @java.lang.Override
        public int getLevelValue() {
          return instance.getLevelValue();
        }
        /**
         * <code>.Visibility.Level level = 1;</code>
         * @param value The level to set.
         * @return This builder for chaining.
         */
        public Builder setLevelValue(int value) {
          copyOnWrite();
          instance.setLevelValue(value);
          return this;
        }
        /**
         * <code>.Visibility.Level level = 1;</code>
         * @return The level.
         */
        @java.lang.Override
        public com.android.aapt.Resources.Visibility.Level getLevel() {
          return instance.getLevel();
        }
        /**
         * <code>.Visibility.Level level = 1;</code>
         * @param value The enum numeric value on the wire for level to set.
         * @return This builder for chaining.
         */
        public Builder setLevel(com.android.aapt.Resources.Visibility.Level value) {
          copyOnWrite();
          instance.setLevel(value);
          return this;
        }
        /**
         * <code>.Visibility.Level level = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearLevel() {
          copyOnWrite();
          instance.clearLevel();
          return this;
        }
  
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * The path at which this entry's visibility was defined (eg. public.xml).
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>string comment = 3;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return instance.getComment();
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>string comment = 3;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return instance.getCommentBytes();
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>string comment = 3;</code>
         * @param value The comment to set.
         * @return This builder for chaining.
         */
        public Builder setComment(
            java.lang.String value) {
          copyOnWrite();
          instance.setComment(value);
          return this;
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>string comment = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearComment() {
          copyOnWrite();
          instance.clearComment();
          return this;
        }
        /**
         * <pre>
         * The comment associated with the &lt;public&gt; tag.
         * </pre>
         *
         * <code>string comment = 3;</code>
         * @param value The bytes for comment to set.
         * @return This builder for chaining.
         */
        public Builder setCommentBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setCommentBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Indicates that the resource id may change across builds and that the public R.java identifier
         * for this resource should not be final. This is set to `true` for resources in `staging-group`
         * tags.
         * </pre>
         *
         * <code>bool staged_api = 4;</code>
         * @return The stagedApi.
         */
        @java.lang.Override
        public boolean getStagedApi() {
          return instance.getStagedApi();
        }
        /**
         * <pre>
         * Indicates that the resource id may change across builds and that the public R.java identifier
         * for this resource should not be final. This is set to `true` for resources in `staging-group`
         * tags.
         * </pre>
         *
         * <code>bool staged_api = 4;</code>
         * @param value The stagedApi to set.
         * @return This builder for chaining.
         */
        public Builder setStagedApi(boolean value) {
          copyOnWrite();
          instance.setStagedApi(value);
          return this;
        }
        /**
         * <pre>
         * Indicates that the resource id may change across builds and that the public R.java identifier
         * for this resource should not be final. This is set to `true` for resources in `staging-group`
         * tags.
         * </pre>
         *
         * <code>bool staged_api = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearStagedApi() {
          copyOnWrite();
          instance.clearStagedApi();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Visibility)
      }
      @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 com.android.aapt.Resources.Visibility();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "level_",
                "source_",
                "comment_",
                "stagedApi_",
              };
              java.lang.String info =
                  "\u0000\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0000\u0000\u0001\f\u0002\u1009" +
                  "\u0000\u0003\u0208\u0004\u0007";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Visibility> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Visibility.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Visibility>(
                          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:Visibility)
      private static final com.android.aapt.Resources.Visibility DEFAULT_INSTANCE;
      static {
        Visibility defaultInstance = new Visibility();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Visibility.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Visibility getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Visibility> PARSER;
  
      public static com.google.protobuf.Parser<Visibility> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface AllowNewOrBuilder extends
        // @@protoc_insertion_point(interface_extends:AllowNew)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * Where this was defined in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * Where this was defined in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       * @return The source.
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The comment.
       */
      java.lang.String getComment();
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The bytes for comment.
       */
      com.google.protobuf.ByteString
          getCommentBytes();
    }
    /**
     * <pre>
     * Whether a resource comes from a compile-time overlay and is explicitly allowed to not overlay an
     * existing resource.
     * </pre>
     *
     * Protobuf type {@code AllowNew}
     */
    public  static final class AllowNew extends
        com.google.protobuf.GeneratedMessageLite<
            AllowNew, AllowNew.Builder> implements
        // @@protoc_insertion_point(message_implements:AllowNew)
        AllowNewOrBuilder {
      private AllowNew() {
        comment_ = "";
      }
      private int bitField0_;
      public static final int SOURCE_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Source source_;
      /**
       * <pre>
       * Where this was defined in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Where this was defined in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Where this was defined in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * Where this was defined in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Where this was defined in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int COMMENT_FIELD_NUMBER = 2;
      private java.lang.String comment_;
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The comment.
       */
      @java.lang.Override
      public java.lang.String getComment() {
        return comment_;
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The bytes for comment.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCommentBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(comment_);
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @param value The comment to set.
       */
      private void setComment(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        comment_ = value;
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       */
      private void clearComment() {
  
        comment_ = getDefaultInstance().getComment();
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @param value The bytes for comment to set.
       */
      private void setCommentBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        comment_ = value.toStringUtf8();
  
      }
  
      public static com.android.aapt.Resources.AllowNew parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.AllowNew 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 com.android.aapt.Resources.AllowNew parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.AllowNew 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 com.android.aapt.Resources.AllowNew parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.AllowNew 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 com.android.aapt.Resources.AllowNew parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.AllowNew 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 com.android.aapt.Resources.AllowNew parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.AllowNew parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.AllowNew parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.AllowNew 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(com.android.aapt.Resources.AllowNew prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Whether a resource comes from a compile-time overlay and is explicitly allowed to not overlay an
       * existing resource.
       * </pre>
       *
       * Protobuf type {@code AllowNew}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.AllowNew, Builder> implements
          // @@protoc_insertion_point(builder_implements:AllowNew)
          com.android.aapt.Resources.AllowNewOrBuilder {
        // Construct using com.android.aapt.Resources.AllowNew.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * Where this was defined in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Where this was defined in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Where this was defined in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Where this was defined in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Where this was defined in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Where this was defined in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return instance.getComment();
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return instance.getCommentBytes();
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         * @return This builder for chaining.
         */
        public Builder setComment(
            java.lang.String value) {
          copyOnWrite();
          instance.setComment(value);
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearComment() {
          copyOnWrite();
          instance.clearComment();
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         * @return This builder for chaining.
         */
        public Builder setCommentBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setCommentBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:AllowNew)
      }
      @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 com.android.aapt.Resources.AllowNew();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "source_",
                "comment_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                  "\u0208";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.AllowNew> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.AllowNew.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.AllowNew>(
                          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:AllowNew)
      private static final com.android.aapt.Resources.AllowNew DEFAULT_INSTANCE;
      static {
        AllowNew defaultInstance = new AllowNew();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          AllowNew.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.AllowNew getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<AllowNew> PARSER;
  
      public static com.google.protobuf.Parser<AllowNew> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface OverlayableOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Overlayable)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The name of the &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string name = 1;</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of the &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string name = 1;</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * The location of the &lt;overlayable&gt; declaration in the source.
       * </pre>
       *
       * <code>.Source source = 2;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * The location of the &lt;overlayable&gt; declaration in the source.
       * </pre>
       *
       * <code>.Source source = 2;</code>
       * @return The source.
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <pre>
       * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string actor = 3;</code>
       * @return The actor.
       */
      java.lang.String getActor();
      /**
       * <pre>
       * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string actor = 3;</code>
       * @return The bytes for actor.
       */
      com.google.protobuf.ByteString
          getActorBytes();
    }
    /**
     * <pre>
     * Represents a set of overlayable resources.
     * </pre>
     *
     * Protobuf type {@code Overlayable}
     */
    public  static final class Overlayable extends
        com.google.protobuf.GeneratedMessageLite<
            Overlayable, Overlayable.Builder> implements
        // @@protoc_insertion_point(message_implements:Overlayable)
        OverlayableOrBuilder {
      private Overlayable() {
        name_ = "";
        actor_ = "";
      }
      private int bitField0_;
      public static final int NAME_FIELD_NUMBER = 1;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of the &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string name = 1;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of the &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string name = 1;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of the &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string name = 1;</code>
       * @param value The name to set.
       */
      private void setName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        name_ = value;
      }
      /**
       * <pre>
       * The name of the &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string name = 1;</code>
       */
      private void clearName() {
  
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of the &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string name = 1;</code>
       * @param value The bytes for name to set.
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        name_ = value.toStringUtf8();
  
      }
  
      public static final int SOURCE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Source source_;
      /**
       * <pre>
       * The location of the &lt;overlayable&gt; declaration in the source.
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The location of the &lt;overlayable&gt; declaration in the source.
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * The location of the &lt;overlayable&gt; declaration in the source.
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The location of the &lt;overlayable&gt; declaration in the source.
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The location of the &lt;overlayable&gt; declaration in the source.
       * </pre>
       *
       * <code>.Source source = 2;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int ACTOR_FIELD_NUMBER = 3;
      private java.lang.String actor_;
      /**
       * <pre>
       * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string actor = 3;</code>
       * @return The actor.
       */
      @java.lang.Override
      public java.lang.String getActor() {
        return actor_;
      }
      /**
       * <pre>
       * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string actor = 3;</code>
       * @return The bytes for actor.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getActorBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(actor_);
      }
      /**
       * <pre>
       * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string actor = 3;</code>
       * @param value The actor to set.
       */
      private void setActor(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        actor_ = value;
      }
      /**
       * <pre>
       * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string actor = 3;</code>
       */
      private void clearActor() {
  
        actor_ = getDefaultInstance().getActor();
      }
      /**
       * <pre>
       * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
       * </pre>
       *
       * <code>string actor = 3;</code>
       * @param value The bytes for actor to set.
       */
      private void setActorBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        actor_ = value.toStringUtf8();
  
      }
  
      public static com.android.aapt.Resources.Overlayable parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Overlayable 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 com.android.aapt.Resources.Overlayable parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Overlayable 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 com.android.aapt.Resources.Overlayable parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Overlayable 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 com.android.aapt.Resources.Overlayable parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Overlayable 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 com.android.aapt.Resources.Overlayable parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Overlayable parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Overlayable parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Overlayable 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(com.android.aapt.Resources.Overlayable prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Represents a set of overlayable resources.
       * </pre>
       *
       * Protobuf type {@code Overlayable}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Overlayable, Builder> implements
          // @@protoc_insertion_point(builder_implements:Overlayable)
          com.android.aapt.Resources.OverlayableOrBuilder {
        // Construct using com.android.aapt.Resources.Overlayable.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The name of the &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string name = 1;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of the &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string name = 1;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of the &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string name = 1;</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of the &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string name = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of the &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string name = 1;</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The location of the &lt;overlayable&gt; declaration in the source.
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * The location of the &lt;overlayable&gt; declaration in the source.
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * The location of the &lt;overlayable&gt; declaration in the source.
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * The location of the &lt;overlayable&gt; declaration in the source.
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The location of the &lt;overlayable&gt; declaration in the source.
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * The location of the &lt;overlayable&gt; declaration in the source.
         * </pre>
         *
         * <code>.Source source = 2;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string actor = 3;</code>
         * @return The actor.
         */
        @java.lang.Override
        public java.lang.String getActor() {
          return instance.getActor();
        }
        /**
         * <pre>
         * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string actor = 3;</code>
         * @return The bytes for actor.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getActorBytes() {
          return instance.getActorBytes();
        }
        /**
         * <pre>
         * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string actor = 3;</code>
         * @param value The actor to set.
         * @return This builder for chaining.
         */
        public Builder setActor(
            java.lang.String value) {
          copyOnWrite();
          instance.setActor(value);
          return this;
        }
        /**
         * <pre>
         * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string actor = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearActor() {
          copyOnWrite();
          instance.clearActor();
          return this;
        }
        /**
         * <pre>
         * The component responsible for enabling and disabling overlays targeting this &lt;overlayable&gt;.
         * </pre>
         *
         * <code>string actor = 3;</code>
         * @param value The bytes for actor to set.
         * @return This builder for chaining.
         */
        public Builder setActorBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setActorBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Overlayable)
      }
      @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 com.android.aapt.Resources.Overlayable();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "name_",
                "source_",
                "actor_",
              };
              java.lang.String info =
                  "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u1009" +
                  "\u0000\u0003\u0208";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Overlayable> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Overlayable.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Overlayable>(
                          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:Overlayable)
      private static final com.android.aapt.Resources.Overlayable DEFAULT_INSTANCE;
      static {
        Overlayable defaultInstance = new Overlayable();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Overlayable.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Overlayable getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Overlayable> PARSER;
  
      public static com.google.protobuf.Parser<Overlayable> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface OverlayableItemOrBuilder extends
        // @@protoc_insertion_point(interface_extends:OverlayableItem)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The location of the &lt;item&gt; declaration in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * The location of the &lt;item&gt; declaration in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       * @return The source.
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The comment.
       */
      java.lang.String getComment();
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The bytes for comment.
       */
      com.google.protobuf.ByteString
          getCommentBytes();
  
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @return A list containing the policy.
       */
      java.util.List<com.android.aapt.Resources.OverlayableItem.Policy> getPolicyList();
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @return The count of policy.
       */
      int getPolicyCount();
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param index The index of the element to return.
       * @return The policy at the given index.
       */
      com.android.aapt.Resources.OverlayableItem.Policy getPolicy(int index);
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @return A list containing the enum numeric values on the wire for policy.
       */
      java.util.List<java.lang.Integer>
      getPolicyValueList();
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of policy at the given index.
       */
      int getPolicyValue(int index);
  
      /**
       * <pre>
       * The index into overlayable list that points to the &lt;overlayable&gt; tag that contains
       * this &lt;item&gt;.
       * </pre>
       *
       * <code>uint32 overlayable_idx = 4;</code>
       * @return The overlayableIdx.
       */
      int getOverlayableIdx();
    }
    /**
     * <pre>
     * Represents an overlayable &lt;item&gt; declaration within an &lt;overlayable&gt; tag.
     * </pre>
     *
     * Protobuf type {@code OverlayableItem}
     */
    public  static final class OverlayableItem extends
        com.google.protobuf.GeneratedMessageLite<
            OverlayableItem, OverlayableItem.Builder> implements
        // @@protoc_insertion_point(message_implements:OverlayableItem)
        OverlayableItemOrBuilder {
      private OverlayableItem() {
        comment_ = "";
        policy_ = emptyIntList();
      }
      /**
       * Protobuf enum {@code OverlayableItem.Policy}
       */
      public enum Policy
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <code>NONE = 0;</code>
         */
        NONE(0),
        /**
         * <code>PUBLIC = 1;</code>
         */
        PUBLIC(1),
        /**
         * <code>SYSTEM = 2;</code>
         */
        SYSTEM(2),
        /**
         * <code>VENDOR = 3;</code>
         */
        VENDOR(3),
        /**
         * <code>PRODUCT = 4;</code>
         */
        PRODUCT(4),
        /**
         * <code>SIGNATURE = 5;</code>
         */
        SIGNATURE(5),
        /**
         * <code>ODM = 6;</code>
         */
        ODM(6),
        /**
         * <code>OEM = 7;</code>
         */
        OEM(7),
        /**
         * <code>ACTOR = 8;</code>
         */
        ACTOR(8),
        /**
         * <code>CONFIG_SIGNATURE = 9;</code>
         */
        CONFIG_SIGNATURE(9),
        UNRECOGNIZED(-1),
        ;
  
        /**
         * <code>NONE = 0;</code>
         */
        public static final int NONE_VALUE = 0;
        /**
         * <code>PUBLIC = 1;</code>
         */
        public static final int PUBLIC_VALUE = 1;
        /**
         * <code>SYSTEM = 2;</code>
         */
        public static final int SYSTEM_VALUE = 2;
        /**
         * <code>VENDOR = 3;</code>
         */
        public static final int VENDOR_VALUE = 3;
        /**
         * <code>PRODUCT = 4;</code>
         */
        public static final int PRODUCT_VALUE = 4;
        /**
         * <code>SIGNATURE = 5;</code>
         */
        public static final int SIGNATURE_VALUE = 5;
        /**
         * <code>ODM = 6;</code>
         */
        public static final int ODM_VALUE = 6;
        /**
         * <code>OEM = 7;</code>
         */
        public static final int OEM_VALUE = 7;
        /**
         * <code>ACTOR = 8;</code>
         */
        public static final int ACTOR_VALUE = 8;
        /**
         * <code>CONFIG_SIGNATURE = 9;</code>
         */
        public static final int CONFIG_SIGNATURE_VALUE = 9;
  
  
        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }
  
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Policy valueOf(int value) {
          return forNumber(value);
        }
  
        public static Policy forNumber(int value) {
          switch (value) {
            case 0: return NONE;
            case 1: return PUBLIC;
            case 2: return SYSTEM;
            case 3: return VENDOR;
            case 4: return PRODUCT;
            case 5: return SIGNATURE;
            case 6: return ODM;
            case 7: return OEM;
            case 8: return ACTOR;
            case 9: return CONFIG_SIGNATURE;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Policy>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Policy> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Policy>() {
                @java.lang.Override
                public Policy findValueByNumber(int number) {
                  return Policy.forNumber(number);
                }
              };
  
        public static com.google.protobuf.Internal.EnumVerifier 
            internalGetVerifier() {
          return PolicyVerifier.INSTANCE;
        }
  
        private static final class PolicyVerifier implements 
             com.google.protobuf.Internal.EnumVerifier { 
                static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new PolicyVerifier();
                @java.lang.Override
                public boolean isInRange(int number) {
                  return Policy.forNumber(number) != null;
                }
              };
  
        private final int value;
  
        private Policy(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:OverlayableItem.Policy)
      }
  
      private int bitField0_;
      public static final int SOURCE_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Source source_;
      /**
       * <pre>
       * The location of the &lt;item&gt; declaration in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The location of the &lt;item&gt; declaration in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * The location of the &lt;item&gt; declaration in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The location of the &lt;item&gt; declaration in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The location of the &lt;item&gt; declaration in source.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int COMMENT_FIELD_NUMBER = 2;
      private java.lang.String comment_;
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The comment.
       */
      @java.lang.Override
      public java.lang.String getComment() {
        return comment_;
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The bytes for comment.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCommentBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(comment_);
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @param value The comment to set.
       */
      private void setComment(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        comment_ = value;
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       */
      private void clearComment() {
  
        comment_ = getDefaultInstance().getComment();
      }
      /**
       * <pre>
       * Any comment associated with the declaration.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @param value The bytes for comment to set.
       */
      private void setCommentBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        comment_ = value.toStringUtf8();
  
      }
  
      public static final int POLICY_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.IntList policy_;
      private static final com.google.protobuf.Internal.ListAdapter.Converter<
          java.lang.Integer, com.android.aapt.Resources.OverlayableItem.Policy> policy_converter_ =
              new com.google.protobuf.Internal.ListAdapter.Converter<
                  java.lang.Integer, com.android.aapt.Resources.OverlayableItem.Policy>() {
                @java.lang.Override
                public com.android.aapt.Resources.OverlayableItem.Policy convert(java.lang.Integer from) {
                  com.android.aapt.Resources.OverlayableItem.Policy result = com.android.aapt.Resources.OverlayableItem.Policy.forNumber(from);
                  return result == null ? com.android.aapt.Resources.OverlayableItem.Policy.UNRECOGNIZED : result;
                }
              };
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @return A list containing the policy.
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.OverlayableItem.Policy> getPolicyList() {
        return new com.google.protobuf.Internal.ListAdapter<
            java.lang.Integer, com.android.aapt.Resources.OverlayableItem.Policy>(policy_, policy_converter_);
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @return The count of policy.
       */
      @java.lang.Override
      public int getPolicyCount() {
        return policy_.size();
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param index The index of the element to return.
       * @return The policy at the given index.
       */
      @java.lang.Override
      public com.android.aapt.Resources.OverlayableItem.Policy getPolicy(int index) {
        com.android.aapt.Resources.OverlayableItem.Policy result = com.android.aapt.Resources.OverlayableItem.Policy.forNumber(policy_.getInt(index));
        return result == null ? com.android.aapt.Resources.OverlayableItem.Policy.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @return A list containing the enum numeric values on the wire for policy.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
      getPolicyValueList() {
        return policy_;
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param index The index of the value to return.
       * @return The enum numeric value on the wire of policy at the given index.
       */
      @java.lang.Override
      public int getPolicyValue(int index) {
        return policy_.getInt(index);
      }
      private int policyMemoizedSerializedSize;
      private void ensurePolicyIsMutable() {
        com.google.protobuf.Internal.IntList tmp = policy_;
        if (!tmp.isModifiable()) {
          policy_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
        }
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param index The index to set the value at.
       * @param value The policy to set.
       */
      private void setPolicy(
          int index, com.android.aapt.Resources.OverlayableItem.Policy value) {
        value.getClass();
    ensurePolicyIsMutable();
        policy_.setInt(index, value.getNumber());
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param value The policy to add.
       */
      private void addPolicy(com.android.aapt.Resources.OverlayableItem.Policy value) {
        value.getClass();
    ensurePolicyIsMutable();
        policy_.addInt(value.getNumber());
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param values The policy to add.
       */
      private void addAllPolicy(
          java.lang.Iterable<? extends com.android.aapt.Resources.OverlayableItem.Policy> values) {
        ensurePolicyIsMutable();
        for (com.android.aapt.Resources.OverlayableItem.Policy value : values) {
          policy_.addInt(value.getNumber());
        }
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       */
      private void clearPolicy() {
        policy_ = emptyIntList();
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param value The enum numeric value on the wire for policy to set.
       */
      private void setPolicyValue(
          int index, int value) {
        ensurePolicyIsMutable();
        policy_.setInt(index, value);
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param value The enum numeric value on the wire for policy to add.
       */
      private void addPolicyValue(int value) {
        ensurePolicyIsMutable();
        policy_.addInt(value);
      }
      /**
       * <pre>
       * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
       * </pre>
       *
       * <code>repeated .OverlayableItem.Policy policy = 3;</code>
       * @param values The enum numeric values on the wire for policy to add.
       */
      private void addAllPolicyValue(
          java.lang.Iterable<java.lang.Integer> values) {
        ensurePolicyIsMutable();
        for (int value : values) {
          policy_.addInt(value);
        }
      }
  
      public static final int OVERLAYABLE_IDX_FIELD_NUMBER = 4;
      private int overlayableIdx_;
      /**
       * <pre>
       * The index into overlayable list that points to the &lt;overlayable&gt; tag that contains
       * this &lt;item&gt;.
       * </pre>
       *
       * <code>uint32 overlayable_idx = 4;</code>
       * @return The overlayableIdx.
       */
      @java.lang.Override
      public int getOverlayableIdx() {
        return overlayableIdx_;
      }
      /**
       * <pre>
       * The index into overlayable list that points to the &lt;overlayable&gt; tag that contains
       * this &lt;item&gt;.
       * </pre>
       *
       * <code>uint32 overlayable_idx = 4;</code>
       * @param value The overlayableIdx to set.
       */
      private void setOverlayableIdx(int value) {
        
        overlayableIdx_ = value;
      }
      /**
       * <pre>
       * The index into overlayable list that points to the &lt;overlayable&gt; tag that contains
       * this &lt;item&gt;.
       * </pre>
       *
       * <code>uint32 overlayable_idx = 4;</code>
       */
      private void clearOverlayableIdx() {
  
        overlayableIdx_ = 0;
      }
  
      public static com.android.aapt.Resources.OverlayableItem parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.OverlayableItem 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 com.android.aapt.Resources.OverlayableItem parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.OverlayableItem 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 com.android.aapt.Resources.OverlayableItem parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.OverlayableItem 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 com.android.aapt.Resources.OverlayableItem parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.OverlayableItem 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 com.android.aapt.Resources.OverlayableItem parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.OverlayableItem parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.OverlayableItem parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.OverlayableItem 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(com.android.aapt.Resources.OverlayableItem prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Represents an overlayable &lt;item&gt; declaration within an &lt;overlayable&gt; tag.
       * </pre>
       *
       * Protobuf type {@code OverlayableItem}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.OverlayableItem, Builder> implements
          // @@protoc_insertion_point(builder_implements:OverlayableItem)
          com.android.aapt.Resources.OverlayableItemOrBuilder {
        // Construct using com.android.aapt.Resources.OverlayableItem.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The location of the &lt;item&gt; declaration in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * The location of the &lt;item&gt; declaration in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * The location of the &lt;item&gt; declaration in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * The location of the &lt;item&gt; declaration in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The location of the &lt;item&gt; declaration in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * The location of the &lt;item&gt; declaration in source.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return instance.getComment();
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return instance.getCommentBytes();
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         * @return This builder for chaining.
         */
        public Builder setComment(
            java.lang.String value) {
          copyOnWrite();
          instance.setComment(value);
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearComment() {
          copyOnWrite();
          instance.clearComment();
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         * @return This builder for chaining.
         */
        public Builder setCommentBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setCommentBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @return A list containing the policy.
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.OverlayableItem.Policy> getPolicyList() {
          return instance.getPolicyList();
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @return The count of policy.
         */
        @java.lang.Override
        public int getPolicyCount() {
          return instance.getPolicyCount();
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param index The index of the element to return.
         * @return The policy at the given index.
         */
        @java.lang.Override
        public com.android.aapt.Resources.OverlayableItem.Policy getPolicy(int index) {
          return instance.getPolicy(index);
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param index The index to set the value at.
         * @param value The policy to set.
         * @return This builder for chaining.
         */
        public Builder setPolicy(
            int index, com.android.aapt.Resources.OverlayableItem.Policy value) {
          copyOnWrite();
          instance.setPolicy(index, value);
          return this;
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param value The policy to add.
         * @return This builder for chaining.
         */
        public Builder addPolicy(com.android.aapt.Resources.OverlayableItem.Policy value) {
          copyOnWrite();
          instance.addPolicy(value);
          return this;
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param values The policy to add.
         * @return This builder for chaining.
         */
        public Builder addAllPolicy(
            java.lang.Iterable<? extends com.android.aapt.Resources.OverlayableItem.Policy> values) {
          copyOnWrite();
          instance.addAllPolicy(values);  return this;
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearPolicy() {
          copyOnWrite();
          instance.clearPolicy();
          return this;
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @return A list containing the enum numeric values on the wire for policy.
         */
        @java.lang.Override
        public java.util.List<java.lang.Integer>
        getPolicyValueList() {
          return java.util.Collections.unmodifiableList(
              instance.getPolicyValueList());
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param index The index of the value to return.
         * @return The enum numeric value on the wire of policy at the given index.
         */
        @java.lang.Override
        public int getPolicyValue(int index) {
          return instance.getPolicyValue(index);
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param index The index to set the value at.
         * @param value The enum numeric value on the wire for policy to set.
         * @return This builder for chaining.
         */
        public Builder setPolicyValue(
            int index, int value) {
          copyOnWrite();
          instance.setPolicyValue(index, value);
          return this;
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param value The enum numeric value on the wire for policy to add.
         * @return This builder for chaining.
         */
        public Builder addPolicyValue(int value) {
          copyOnWrite();
          instance.addPolicyValue(value);
          return this;
        }
        /**
         * <pre>
         * The policy defined by the enclosing &lt;policy&gt; tag of this &lt;item&gt;.
         * </pre>
         *
         * <code>repeated .OverlayableItem.Policy policy = 3;</code>
         * @param values The enum numeric values on the wire for policy to add.
         * @return This builder for chaining.
         */
        public Builder addAllPolicyValue(
            java.lang.Iterable<java.lang.Integer> values) {
          copyOnWrite();
          instance.addAllPolicyValue(values);
          return this;
        }
  
        /**
         * <pre>
         * The index into overlayable list that points to the &lt;overlayable&gt; tag that contains
         * this &lt;item&gt;.
         * </pre>
         *
         * <code>uint32 overlayable_idx = 4;</code>
         * @return The overlayableIdx.
         */
        @java.lang.Override
        public int getOverlayableIdx() {
          return instance.getOverlayableIdx();
        }
        /**
         * <pre>
         * The index into overlayable list that points to the &lt;overlayable&gt; tag that contains
         * this &lt;item&gt;.
         * </pre>
         *
         * <code>uint32 overlayable_idx = 4;</code>
         * @param value The overlayableIdx to set.
         * @return This builder for chaining.
         */
        public Builder setOverlayableIdx(int value) {
          copyOnWrite();
          instance.setOverlayableIdx(value);
          return this;
        }
        /**
         * <pre>
         * The index into overlayable list that points to the &lt;overlayable&gt; tag that contains
         * this &lt;item&gt;.
         * </pre>
         *
         * <code>uint32 overlayable_idx = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearOverlayableIdx() {
          copyOnWrite();
          instance.clearOverlayableIdx();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:OverlayableItem)
      }
      @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 com.android.aapt.Resources.OverlayableItem();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "source_",
                "comment_",
                "policy_",
                "overlayableIdx_",
              };
              java.lang.String info =
                  "\u0000\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0001\u0000\u0001\u1009\u0000\u0002" +
                  "\u0208\u0003,\u0004\u000b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.OverlayableItem> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.OverlayableItem.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.OverlayableItem>(
                          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:OverlayableItem)
      private static final com.android.aapt.Resources.OverlayableItem DEFAULT_INSTANCE;
      static {
        OverlayableItem defaultInstance = new OverlayableItem();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          OverlayableItem.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.OverlayableItem getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<OverlayableItem> PARSER;
  
      public static com.google.protobuf.Parser<OverlayableItem> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StagedIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:StagedId)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Source source = 1;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <code>.Source source = 1;</code>
       * @return The source.
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <code>uint32 staged_id = 2;</code>
       * @return The stagedId.
       */
      int getStagedId();
    }
    /**
     * <pre>
     * The staged resource ID definition of a finalized resource.
     * </pre>
     *
     * Protobuf type {@code StagedId}
     */
    public  static final class StagedId extends
        com.google.protobuf.GeneratedMessageLite<
            StagedId, StagedId.Builder> implements
        // @@protoc_insertion_point(message_implements:StagedId)
        StagedIdOrBuilder {
      private StagedId() {
      }
      private int bitField0_;
      public static final int SOURCE_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Source source_;
      /**
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <code>.Source source = 1;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>.Source source = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>.Source source = 1;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int STAGED_ID_FIELD_NUMBER = 2;
      private int stagedId_;
      /**
       * <code>uint32 staged_id = 2;</code>
       * @return The stagedId.
       */
      @java.lang.Override
      public int getStagedId() {
        return stagedId_;
      }
      /**
       * <code>uint32 staged_id = 2;</code>
       * @param value The stagedId to set.
       */
      private void setStagedId(int value) {
        
        stagedId_ = value;
      }
      /**
       * <code>uint32 staged_id = 2;</code>
       */
      private void clearStagedId() {
  
        stagedId_ = 0;
      }
  
      public static com.android.aapt.Resources.StagedId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StagedId 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 com.android.aapt.Resources.StagedId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StagedId 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 com.android.aapt.Resources.StagedId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StagedId 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 com.android.aapt.Resources.StagedId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StagedId 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 com.android.aapt.Resources.StagedId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.StagedId parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.StagedId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StagedId 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(com.android.aapt.Resources.StagedId prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * The staged resource ID definition of a finalized resource.
       * </pre>
       *
       * Protobuf type {@code StagedId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.StagedId, Builder> implements
          // @@protoc_insertion_point(builder_implements:StagedId)
          com.android.aapt.Resources.StagedIdOrBuilder {
        // Construct using com.android.aapt.Resources.StagedId.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <code>.Source source = 1;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <code>.Source source = 1;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <code>uint32 staged_id = 2;</code>
         * @return The stagedId.
         */
        @java.lang.Override
        public int getStagedId() {
          return instance.getStagedId();
        }
        /**
         * <code>uint32 staged_id = 2;</code>
         * @param value The stagedId to set.
         * @return This builder for chaining.
         */
        public Builder setStagedId(int value) {
          copyOnWrite();
          instance.setStagedId(value);
          return this;
        }
        /**
         * <code>uint32 staged_id = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearStagedId() {
          copyOnWrite();
          instance.clearStagedId();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:StagedId)
      }
      @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 com.android.aapt.Resources.StagedId();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "source_",
                "stagedId_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                  "\u000b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.StagedId> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.StagedId.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.StagedId>(
                          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:StagedId)
      private static final com.android.aapt.Resources.StagedId DEFAULT_INSTANCE;
      static {
        StagedId defaultInstance = new StagedId();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          StagedId.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.StagedId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<StagedId> PARSER;
  
      public static com.google.protobuf.Parser<StagedId> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface EntryIdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:EntryId)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      int getId();
    }
    /**
     * <pre>
     * An entry ID in the range [0x0000, 0xffff].
     * </pre>
     *
     * Protobuf type {@code EntryId}
     */
    public  static final class EntryId extends
        com.google.protobuf.GeneratedMessageLite<
            EntryId, EntryId.Builder> implements
        // @@protoc_insertion_point(message_implements:EntryId)
        EntryIdOrBuilder {
      private EntryId() {
      }
      public static final int ID_FIELD_NUMBER = 1;
      private int id_;
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <code>uint32 id = 1;</code>
       * @param value The id to set.
       */
      private void setId(int value) {
        
        id_ = value;
      }
      /**
       * <code>uint32 id = 1;</code>
       */
      private void clearId() {
  
        id_ = 0;
      }
  
      public static com.android.aapt.Resources.EntryId parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.EntryId 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 com.android.aapt.Resources.EntryId parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.EntryId 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 com.android.aapt.Resources.EntryId parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.EntryId 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 com.android.aapt.Resources.EntryId parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.EntryId 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 com.android.aapt.Resources.EntryId parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.EntryId parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.EntryId parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.EntryId 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(com.android.aapt.Resources.EntryId prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * An entry ID in the range [0x0000, 0xffff].
       * </pre>
       *
       * Protobuf type {@code EntryId}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.EntryId, Builder> implements
          // @@protoc_insertion_point(builder_implements:EntryId)
          com.android.aapt.Resources.EntryIdOrBuilder {
        // Construct using com.android.aapt.Resources.EntryId.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>uint32 id = 1;</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return instance.getId();
        }
        /**
         * <code>uint32 id = 1;</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <code>uint32 id = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:EntryId)
      }
      @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 com.android.aapt.Resources.EntryId();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "id_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u000b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.EntryId> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.EntryId.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.EntryId>(
                          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:EntryId)
      private static final com.android.aapt.Resources.EntryId DEFAULT_INSTANCE;
      static {
        EntryId defaultInstance = new EntryId();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          EntryId.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.EntryId getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<EntryId> PARSER;
  
      public static com.google.protobuf.Parser<EntryId> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface EntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Entry)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.EntryId entry_id = 1;</code>
       * @return Whether the entryId field is set.
       */
      boolean hasEntryId();
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.EntryId entry_id = 1;</code>
       * @return The entryId.
       */
      com.android.aapt.Resources.EntryId getEntryId();
  
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * The visibility of this entry (public, private, undefined).
       * </pre>
       *
       * <code>.Visibility visibility = 3;</code>
       * @return Whether the visibility field is set.
       */
      boolean hasVisibility();
      /**
       * <pre>
       * The visibility of this entry (public, private, undefined).
       * </pre>
       *
       * <code>.Visibility visibility = 3;</code>
       * @return The visibility.
       */
      com.android.aapt.Resources.Visibility getVisibility();
  
      /**
       * <pre>
       * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
       * any existing resources.
       * </pre>
       *
       * <code>.AllowNew allow_new = 4;</code>
       * @return Whether the allowNew field is set.
       */
      boolean hasAllowNew();
      /**
       * <pre>
       * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
       * any existing resources.
       * </pre>
       *
       * <code>.AllowNew allow_new = 4;</code>
       * @return The allowNew.
       */
      com.android.aapt.Resources.AllowNew getAllowNew();
  
      /**
       * <pre>
       * Whether this resource can be overlaid by a runtime resource overlay (RRO).
       * </pre>
       *
       * <code>.OverlayableItem overlayable_item = 5;</code>
       * @return Whether the overlayableItem field is set.
       */
      boolean hasOverlayableItem();
      /**
       * <pre>
       * Whether this resource can be overlaid by a runtime resource overlay (RRO).
       * </pre>
       *
       * <code>.OverlayableItem overlayable_item = 5;</code>
       * @return The overlayableItem.
       */
      com.android.aapt.Resources.OverlayableItem getOverlayableItem();
  
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      java.util.List<com.android.aapt.Resources.ConfigValue> 
          getConfigValueList();
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      com.android.aapt.Resources.ConfigValue getConfigValue(int index);
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      int getConfigValueCount();
  
      /**
       * <pre>
       * The staged resource ID of this finalized resource.
       * </pre>
       *
       * <code>.StagedId staged_id = 7;</code>
       * @return Whether the stagedId field is set.
       */
      boolean hasStagedId();
      /**
       * <pre>
       * The staged resource ID of this finalized resource.
       * </pre>
       *
       * <code>.StagedId staged_id = 7;</code>
       * @return The stagedId.
       */
      com.android.aapt.Resources.StagedId getStagedId();
    }
    /**
     * <pre>
     * An entry declaration. An entry has a full resource ID that is the combination of package ID,
     * type ID, and its own entry ID. An entry on its own has no value, but values are defined for
     * various configurations/variants.
     * </pre>
     *
     * Protobuf type {@code Entry}
     */
    public  static final class Entry extends
        com.google.protobuf.GeneratedMessageLite<
            Entry, Entry.Builder> implements
        // @@protoc_insertion_point(message_implements:Entry)
        EntryOrBuilder {
      private Entry() {
        name_ = "";
        configValue_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int ENTRY_ID_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.EntryId entryId_;
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.EntryId entry_id = 1;</code>
       */
      @java.lang.Override
      public boolean hasEntryId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.EntryId entry_id = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.EntryId getEntryId() {
        return entryId_ == null ? com.android.aapt.Resources.EntryId.getDefaultInstance() : entryId_;
      }
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.EntryId entry_id = 1;</code>
       */
      private void setEntryId(com.android.aapt.Resources.EntryId value) {
        value.getClass();
    entryId_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.EntryId entry_id = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeEntryId(com.android.aapt.Resources.EntryId value) {
        value.getClass();
    if (entryId_ != null &&
            entryId_ != com.android.aapt.Resources.EntryId.getDefaultInstance()) {
          entryId_ =
            com.android.aapt.Resources.EntryId.newBuilder(entryId_).mergeFrom(value).buildPartial();
        } else {
          entryId_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
       * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
       * ID.
       * This may not be set if no ID was assigned.
       * </pre>
       *
       * <code>.EntryId entry_id = 1;</code>
       */
      private void clearEntryId() {  entryId_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The name to set.
       */
      private void setName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        name_ = value;
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>string name = 2;</code>
       */
      private void clearName() {
  
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
       * form package:type/entry.
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The bytes for name to set.
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        name_ = value.toStringUtf8();
  
      }
  
      public static final int VISIBILITY_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.Visibility visibility_;
      /**
       * <pre>
       * The visibility of this entry (public, private, undefined).
       * </pre>
       *
       * <code>.Visibility visibility = 3;</code>
       */
      @java.lang.Override
      public boolean hasVisibility() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * The visibility of this entry (public, private, undefined).
       * </pre>
       *
       * <code>.Visibility visibility = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Visibility getVisibility() {
        return visibility_ == null ? com.android.aapt.Resources.Visibility.getDefaultInstance() : visibility_;
      }
      /**
       * <pre>
       * The visibility of this entry (public, private, undefined).
       * </pre>
       *
       * <code>.Visibility visibility = 3;</code>
       */
      private void setVisibility(com.android.aapt.Resources.Visibility value) {
        value.getClass();
    visibility_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <pre>
       * The visibility of this entry (public, private, undefined).
       * </pre>
       *
       * <code>.Visibility visibility = 3;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeVisibility(com.android.aapt.Resources.Visibility value) {
        value.getClass();
    if (visibility_ != null &&
            visibility_ != com.android.aapt.Resources.Visibility.getDefaultInstance()) {
          visibility_ =
            com.android.aapt.Resources.Visibility.newBuilder(visibility_).mergeFrom(value).buildPartial();
        } else {
          visibility_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * The visibility of this entry (public, private, undefined).
       * </pre>
       *
       * <code>.Visibility visibility = 3;</code>
       */
      private void clearVisibility() {  visibility_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static final int ALLOW_NEW_FIELD_NUMBER = 4;
      private com.android.aapt.Resources.AllowNew allowNew_;
      /**
       * <pre>
       * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
       * any existing resources.
       * </pre>
       *
       * <code>.AllowNew allow_new = 4;</code>
       */
      @java.lang.Override
      public boolean hasAllowNew() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
       * any existing resources.
       * </pre>
       *
       * <code>.AllowNew allow_new = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.AllowNew getAllowNew() {
        return allowNew_ == null ? com.android.aapt.Resources.AllowNew.getDefaultInstance() : allowNew_;
      }
      /**
       * <pre>
       * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
       * any existing resources.
       * </pre>
       *
       * <code>.AllowNew allow_new = 4;</code>
       */
      private void setAllowNew(com.android.aapt.Resources.AllowNew value) {
        value.getClass();
    allowNew_ = value;
        bitField0_ |= 0x00000004;
        }
      /**
       * <pre>
       * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
       * any existing resources.
       * </pre>
       *
       * <code>.AllowNew allow_new = 4;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeAllowNew(com.android.aapt.Resources.AllowNew value) {
        value.getClass();
    if (allowNew_ != null &&
            allowNew_ != com.android.aapt.Resources.AllowNew.getDefaultInstance()) {
          allowNew_ =
            com.android.aapt.Resources.AllowNew.newBuilder(allowNew_).mergeFrom(value).buildPartial();
        } else {
          allowNew_ = value;
        }
        bitField0_ |= 0x00000004;
      }
      /**
       * <pre>
       * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
       * any existing resources.
       * </pre>
       *
       * <code>.AllowNew allow_new = 4;</code>
       */
      private void clearAllowNew() {  allowNew_ = null;
        bitField0_ = (bitField0_ & ~0x00000004);
      }
  
      public static final int OVERLAYABLE_ITEM_FIELD_NUMBER = 5;
      private com.android.aapt.Resources.OverlayableItem overlayableItem_;
      /**
       * <pre>
       * Whether this resource can be overlaid by a runtime resource overlay (RRO).
       * </pre>
       *
       * <code>.OverlayableItem overlayable_item = 5;</code>
       */
      @java.lang.Override
      public boolean hasOverlayableItem() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Whether this resource can be overlaid by a runtime resource overlay (RRO).
       * </pre>
       *
       * <code>.OverlayableItem overlayable_item = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.OverlayableItem getOverlayableItem() {
        return overlayableItem_ == null ? com.android.aapt.Resources.OverlayableItem.getDefaultInstance() : overlayableItem_;
      }
      /**
       * <pre>
       * Whether this resource can be overlaid by a runtime resource overlay (RRO).
       * </pre>
       *
       * <code>.OverlayableItem overlayable_item = 5;</code>
       */
      private void setOverlayableItem(com.android.aapt.Resources.OverlayableItem value) {
        value.getClass();
    overlayableItem_ = value;
        bitField0_ |= 0x00000008;
        }
      /**
       * <pre>
       * Whether this resource can be overlaid by a runtime resource overlay (RRO).
       * </pre>
       *
       * <code>.OverlayableItem overlayable_item = 5;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeOverlayableItem(com.android.aapt.Resources.OverlayableItem value) {
        value.getClass();
    if (overlayableItem_ != null &&
            overlayableItem_ != com.android.aapt.Resources.OverlayableItem.getDefaultInstance()) {
          overlayableItem_ =
            com.android.aapt.Resources.OverlayableItem.newBuilder(overlayableItem_).mergeFrom(value).buildPartial();
        } else {
          overlayableItem_ = value;
        }
        bitField0_ |= 0x00000008;
      }
      /**
       * <pre>
       * Whether this resource can be overlaid by a runtime resource overlay (RRO).
       * </pre>
       *
       * <code>.OverlayableItem overlayable_item = 5;</code>
       */
      private void clearOverlayableItem() {  overlayableItem_ = null;
        bitField0_ = (bitField0_ & ~0x00000008);
      }
  
      public static final int CONFIG_VALUE_FIELD_NUMBER = 6;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.ConfigValue> configValue_;
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.ConfigValue> getConfigValueList() {
        return configValue_;
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.ConfigValueOrBuilder> 
          getConfigValueOrBuilderList() {
        return configValue_;
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      @java.lang.Override
      public int getConfigValueCount() {
        return configValue_.size();
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.ConfigValue getConfigValue(int index) {
        return configValue_.get(index);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      public com.android.aapt.Resources.ConfigValueOrBuilder getConfigValueOrBuilder(
          int index) {
        return configValue_.get(index);
      }
      private void ensureConfigValueIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.ConfigValue> tmp = configValue_;
        if (!tmp.isModifiable()) {
          configValue_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      private void setConfigValue(
          int index, com.android.aapt.Resources.ConfigValue value) {
        value.getClass();
    ensureConfigValueIsMutable();
        configValue_.set(index, value);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      private void addConfigValue(com.android.aapt.Resources.ConfigValue value) {
        value.getClass();
    ensureConfigValueIsMutable();
        configValue_.add(value);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      private void addConfigValue(
          int index, com.android.aapt.Resources.ConfigValue value) {
        value.getClass();
    ensureConfigValueIsMutable();
        configValue_.add(index, value);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      private void addAllConfigValue(
          java.lang.Iterable<? extends com.android.aapt.Resources.ConfigValue> values) {
        ensureConfigValueIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, configValue_);
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      private void clearConfigValue() {
        configValue_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of values defined for this entry, each corresponding to a different
       * configuration/variant.
       * </pre>
       *
       * <code>repeated .ConfigValue config_value = 6;</code>
       */
      private void removeConfigValue(int index) {
        ensureConfigValueIsMutable();
        configValue_.remove(index);
      }
  
      public static final int STAGED_ID_FIELD_NUMBER = 7;
      private com.android.aapt.Resources.StagedId stagedId_;
      /**
       * <pre>
       * The staged resource ID of this finalized resource.
       * </pre>
       *
       * <code>.StagedId staged_id = 7;</code>
       */
      @java.lang.Override
      public boolean hasStagedId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * The staged resource ID of this finalized resource.
       * </pre>
       *
       * <code>.StagedId staged_id = 7;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.StagedId getStagedId() {
        return stagedId_ == null ? com.android.aapt.Resources.StagedId.getDefaultInstance() : stagedId_;
      }
      /**
       * <pre>
       * The staged resource ID of this finalized resource.
       * </pre>
       *
       * <code>.StagedId staged_id = 7;</code>
       */
      private void setStagedId(com.android.aapt.Resources.StagedId value) {
        value.getClass();
    stagedId_ = value;
        bitField0_ |= 0x00000010;
        }
      /**
       * <pre>
       * The staged resource ID of this finalized resource.
       * </pre>
       *
       * <code>.StagedId staged_id = 7;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeStagedId(com.android.aapt.Resources.StagedId value) {
        value.getClass();
    if (stagedId_ != null &&
            stagedId_ != com.android.aapt.Resources.StagedId.getDefaultInstance()) {
          stagedId_ =
            com.android.aapt.Resources.StagedId.newBuilder(stagedId_).mergeFrom(value).buildPartial();
        } else {
          stagedId_ = value;
        }
        bitField0_ |= 0x00000010;
      }
      /**
       * <pre>
       * The staged resource ID of this finalized resource.
       * </pre>
       *
       * <code>.StagedId staged_id = 7;</code>
       */
      private void clearStagedId() {  stagedId_ = null;
        bitField0_ = (bitField0_ & ~0x00000010);
      }
  
      public static com.android.aapt.Resources.Entry parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Entry 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 com.android.aapt.Resources.Entry parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Entry 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 com.android.aapt.Resources.Entry parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Entry 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 com.android.aapt.Resources.Entry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Entry 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 com.android.aapt.Resources.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Entry parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Entry parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Entry 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(com.android.aapt.Resources.Entry prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * An entry declaration. An entry has a full resource ID that is the combination of package ID,
       * type ID, and its own entry ID. An entry on its own has no value, but values are defined for
       * various configurations/variants.
       * </pre>
       *
       * Protobuf type {@code Entry}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Entry, Builder> implements
          // @@protoc_insertion_point(builder_implements:Entry)
          com.android.aapt.Resources.EntryOrBuilder {
        // Construct using com.android.aapt.Resources.Entry.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.EntryId entry_id = 1;</code>
         */
        @java.lang.Override
        public boolean hasEntryId() {
          return instance.hasEntryId();
        }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.EntryId entry_id = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.EntryId getEntryId() {
          return instance.getEntryId();
        }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.EntryId entry_id = 1;</code>
         */
        public Builder setEntryId(com.android.aapt.Resources.EntryId value) {
          copyOnWrite();
          instance.setEntryId(value);
          return this;
          }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.EntryId entry_id = 1;</code>
         */
        public Builder setEntryId(
            com.android.aapt.Resources.EntryId.Builder builderForValue) {
          copyOnWrite();
          instance.setEntryId(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.EntryId entry_id = 1;</code>
         */
        public Builder mergeEntryId(com.android.aapt.Resources.EntryId value) {
          copyOnWrite();
          instance.mergeEntryId(value);
          return this;
        }
        /**
         * <pre>
         * The ID of this entry. Together with the package ID and type ID, this forms a full resource ID
         * of the form 0xPPTTEEEE, where PP is the package ID, TT is the type ID, and EEEE is the entry
         * ID.
         * This may not be set if no ID was assigned.
         * </pre>
         *
         * <code>.EntryId entry_id = 1;</code>
         */
        public Builder clearEntryId() {  copyOnWrite();
          instance.clearEntryId();
          return this;
        }
  
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of this entry. This corresponds to the 'entry' part of a full resource name of the
         * form package:type/entry.
         * </pre>
         *
         * <code>string name = 2;</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The visibility of this entry (public, private, undefined).
         * </pre>
         *
         * <code>.Visibility visibility = 3;</code>
         */
        @java.lang.Override
        public boolean hasVisibility() {
          return instance.hasVisibility();
        }
        /**
         * <pre>
         * The visibility of this entry (public, private, undefined).
         * </pre>
         *
         * <code>.Visibility visibility = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Visibility getVisibility() {
          return instance.getVisibility();
        }
        /**
         * <pre>
         * The visibility of this entry (public, private, undefined).
         * </pre>
         *
         * <code>.Visibility visibility = 3;</code>
         */
        public Builder setVisibility(com.android.aapt.Resources.Visibility value) {
          copyOnWrite();
          instance.setVisibility(value);
          return this;
          }
        /**
         * <pre>
         * The visibility of this entry (public, private, undefined).
         * </pre>
         *
         * <code>.Visibility visibility = 3;</code>
         */
        public Builder setVisibility(
            com.android.aapt.Resources.Visibility.Builder builderForValue) {
          copyOnWrite();
          instance.setVisibility(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The visibility of this entry (public, private, undefined).
         * </pre>
         *
         * <code>.Visibility visibility = 3;</code>
         */
        public Builder mergeVisibility(com.android.aapt.Resources.Visibility value) {
          copyOnWrite();
          instance.mergeVisibility(value);
          return this;
        }
        /**
         * <pre>
         * The visibility of this entry (public, private, undefined).
         * </pre>
         *
         * <code>.Visibility visibility = 3;</code>
         */
        public Builder clearVisibility() {  copyOnWrite();
          instance.clearVisibility();
          return this;
        }
  
        /**
         * <pre>
         * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
         * any existing resources.
         * </pre>
         *
         * <code>.AllowNew allow_new = 4;</code>
         */
        @java.lang.Override
        public boolean hasAllowNew() {
          return instance.hasAllowNew();
        }
        /**
         * <pre>
         * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
         * any existing resources.
         * </pre>
         *
         * <code>.AllowNew allow_new = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.AllowNew getAllowNew() {
          return instance.getAllowNew();
        }
        /**
         * <pre>
         * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
         * any existing resources.
         * </pre>
         *
         * <code>.AllowNew allow_new = 4;</code>
         */
        public Builder setAllowNew(com.android.aapt.Resources.AllowNew value) {
          copyOnWrite();
          instance.setAllowNew(value);
          return this;
          }
        /**
         * <pre>
         * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
         * any existing resources.
         * </pre>
         *
         * <code>.AllowNew allow_new = 4;</code>
         */
        public Builder setAllowNew(
            com.android.aapt.Resources.AllowNew.Builder builderForValue) {
          copyOnWrite();
          instance.setAllowNew(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
         * any existing resources.
         * </pre>
         *
         * <code>.AllowNew allow_new = 4;</code>
         */
        public Builder mergeAllowNew(com.android.aapt.Resources.AllowNew value) {
          copyOnWrite();
          instance.mergeAllowNew(value);
          return this;
        }
        /**
         * <pre>
         * Whether this resource, when originating from a compile-time overlay, is allowed to NOT overlay
         * any existing resources.
         * </pre>
         *
         * <code>.AllowNew allow_new = 4;</code>
         */
        public Builder clearAllowNew() {  copyOnWrite();
          instance.clearAllowNew();
          return this;
        }
  
        /**
         * <pre>
         * Whether this resource can be overlaid by a runtime resource overlay (RRO).
         * </pre>
         *
         * <code>.OverlayableItem overlayable_item = 5;</code>
         */
        @java.lang.Override
        public boolean hasOverlayableItem() {
          return instance.hasOverlayableItem();
        }
        /**
         * <pre>
         * Whether this resource can be overlaid by a runtime resource overlay (RRO).
         * </pre>
         *
         * <code>.OverlayableItem overlayable_item = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.OverlayableItem getOverlayableItem() {
          return instance.getOverlayableItem();
        }
        /**
         * <pre>
         * Whether this resource can be overlaid by a runtime resource overlay (RRO).
         * </pre>
         *
         * <code>.OverlayableItem overlayable_item = 5;</code>
         */
        public Builder setOverlayableItem(com.android.aapt.Resources.OverlayableItem value) {
          copyOnWrite();
          instance.setOverlayableItem(value);
          return this;
          }
        /**
         * <pre>
         * Whether this resource can be overlaid by a runtime resource overlay (RRO).
         * </pre>
         *
         * <code>.OverlayableItem overlayable_item = 5;</code>
         */
        public Builder setOverlayableItem(
            com.android.aapt.Resources.OverlayableItem.Builder builderForValue) {
          copyOnWrite();
          instance.setOverlayableItem(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Whether this resource can be overlaid by a runtime resource overlay (RRO).
         * </pre>
         *
         * <code>.OverlayableItem overlayable_item = 5;</code>
         */
        public Builder mergeOverlayableItem(com.android.aapt.Resources.OverlayableItem value) {
          copyOnWrite();
          instance.mergeOverlayableItem(value);
          return this;
        }
        /**
         * <pre>
         * Whether this resource can be overlaid by a runtime resource overlay (RRO).
         * </pre>
         *
         * <code>.OverlayableItem overlayable_item = 5;</code>
         */
        public Builder clearOverlayableItem() {  copyOnWrite();
          instance.clearOverlayableItem();
          return this;
        }
  
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.ConfigValue> getConfigValueList() {
          return java.util.Collections.unmodifiableList(
              instance.getConfigValueList());
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        @java.lang.Override
        public int getConfigValueCount() {
          return instance.getConfigValueCount();
        }/**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.ConfigValue getConfigValue(int index) {
          return instance.getConfigValue(index);
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder setConfigValue(
            int index, com.android.aapt.Resources.ConfigValue value) {
          copyOnWrite();
          instance.setConfigValue(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder setConfigValue(
            int index, com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
          copyOnWrite();
          instance.setConfigValue(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder addConfigValue(com.android.aapt.Resources.ConfigValue value) {
          copyOnWrite();
          instance.addConfigValue(value);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder addConfigValue(
            int index, com.android.aapt.Resources.ConfigValue value) {
          copyOnWrite();
          instance.addConfigValue(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder addConfigValue(
            com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
          copyOnWrite();
          instance.addConfigValue(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder addConfigValue(
            int index, com.android.aapt.Resources.ConfigValue.Builder builderForValue) {
          copyOnWrite();
          instance.addConfigValue(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder addAllConfigValue(
            java.lang.Iterable<? extends com.android.aapt.Resources.ConfigValue> values) {
          copyOnWrite();
          instance.addAllConfigValue(values);
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder clearConfigValue() {
          copyOnWrite();
          instance.clearConfigValue();
          return this;
        }
        /**
         * <pre>
         * The set of values defined for this entry, each corresponding to a different
         * configuration/variant.
         * </pre>
         *
         * <code>repeated .ConfigValue config_value = 6;</code>
         */
        public Builder removeConfigValue(int index) {
          copyOnWrite();
          instance.removeConfigValue(index);
          return this;
        }
  
        /**
         * <pre>
         * The staged resource ID of this finalized resource.
         * </pre>
         *
         * <code>.StagedId staged_id = 7;</code>
         */
        @java.lang.Override
        public boolean hasStagedId() {
          return instance.hasStagedId();
        }
        /**
         * <pre>
         * The staged resource ID of this finalized resource.
         * </pre>
         *
         * <code>.StagedId staged_id = 7;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.StagedId getStagedId() {
          return instance.getStagedId();
        }
        /**
         * <pre>
         * The staged resource ID of this finalized resource.
         * </pre>
         *
         * <code>.StagedId staged_id = 7;</code>
         */
        public Builder setStagedId(com.android.aapt.Resources.StagedId value) {
          copyOnWrite();
          instance.setStagedId(value);
          return this;
          }
        /**
         * <pre>
         * The staged resource ID of this finalized resource.
         * </pre>
         *
         * <code>.StagedId staged_id = 7;</code>
         */
        public Builder setStagedId(
            com.android.aapt.Resources.StagedId.Builder builderForValue) {
          copyOnWrite();
          instance.setStagedId(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The staged resource ID of this finalized resource.
         * </pre>
         *
         * <code>.StagedId staged_id = 7;</code>
         */
        public Builder mergeStagedId(com.android.aapt.Resources.StagedId value) {
          copyOnWrite();
          instance.mergeStagedId(value);
          return this;
        }
        /**
         * <pre>
         * The staged resource ID of this finalized resource.
         * </pre>
         *
         * <code>.StagedId staged_id = 7;</code>
         */
        public Builder clearStagedId() {  copyOnWrite();
          instance.clearStagedId();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Entry)
      }
      @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 com.android.aapt.Resources.Entry();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "entryId_",
                "name_",
                "visibility_",
                "allowNew_",
                "overlayableItem_",
                "configValue_",
                com.android.aapt.Resources.ConfigValue.class,
                "stagedId_",
              };
              java.lang.String info =
                  "\u0000\u0007\u0000\u0001\u0001\u0007\u0007\u0000\u0001\u0000\u0001\u1009\u0000\u0002" +
                  "\u0208\u0003\u1009\u0001\u0004\u1009\u0002\u0005\u1009\u0003\u0006\u001b\u0007\u1009" +
                  "\u0004";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Entry> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Entry.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Entry>(
                          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:Entry)
      private static final com.android.aapt.Resources.Entry DEFAULT_INSTANCE;
      static {
        Entry defaultInstance = new Entry();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Entry.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Entry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
      public static com.google.protobuf.Parser<Entry> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ConfigValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:ConfigValue)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Configuration config = 1;</code>
       * @return Whether the config field is set.
       */
      boolean hasConfig();
      /**
       * <code>.Configuration config = 1;</code>
       * @return The config.
       */
      com.android.aapt.ConfigurationOuterClass.Configuration getConfig();
  
      /**
       * <code>.Value value = 2;</code>
       * @return Whether the value field is set.
       */
      boolean hasValue();
      /**
       * <code>.Value value = 2;</code>
       * @return The value.
       */
      com.android.aapt.Resources.Value getValue();
    }
    /**
     * <pre>
     * A Configuration/Value pair.
     * </pre>
     *
     * Protobuf type {@code ConfigValue}
     */
    public  static final class ConfigValue extends
        com.google.protobuf.GeneratedMessageLite<
            ConfigValue, ConfigValue.Builder> implements
        // @@protoc_insertion_point(message_implements:ConfigValue)
        ConfigValueOrBuilder {
      private ConfigValue() {
      }
      private int bitField0_;
      public static final int CONFIG_FIELD_NUMBER = 1;
      private com.android.aapt.ConfigurationOuterClass.Configuration config_;
      /**
       * <code>.Configuration config = 1;</code>
       */
      @java.lang.Override
      public boolean hasConfig() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.Configuration config = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.ConfigurationOuterClass.Configuration getConfig() {
        return config_ == null ? com.android.aapt.ConfigurationOuterClass.Configuration.getDefaultInstance() : config_;
      }
      /**
       * <code>.Configuration config = 1;</code>
       */
      private void setConfig(com.android.aapt.ConfigurationOuterClass.Configuration value) {
        value.getClass();
    config_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>.Configuration config = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeConfig(com.android.aapt.ConfigurationOuterClass.Configuration value) {
        value.getClass();
    if (config_ != null &&
            config_ != com.android.aapt.ConfigurationOuterClass.Configuration.getDefaultInstance()) {
          config_ =
            com.android.aapt.ConfigurationOuterClass.Configuration.newBuilder(config_).mergeFrom(value).buildPartial();
        } else {
          config_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>.Configuration config = 1;</code>
       */
      private void clearConfig() {  config_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int VALUE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Value value_;
      /**
       * <code>.Value value = 2;</code>
       */
      @java.lang.Override
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.Value value = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Value getValue() {
        return value_ == null ? com.android.aapt.Resources.Value.getDefaultInstance() : value_;
      }
      /**
       * <code>.Value value = 2;</code>
       */
      private void setValue(com.android.aapt.Resources.Value value) {
        value.getClass();
    value_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <code>.Value value = 2;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeValue(com.android.aapt.Resources.Value value) {
        value.getClass();
    if (value_ != null &&
            value_ != com.android.aapt.Resources.Value.getDefaultInstance()) {
          value_ =
            com.android.aapt.Resources.Value.newBuilder(value_).mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>.Value value = 2;</code>
       */
      private void clearValue() {  value_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static com.android.aapt.Resources.ConfigValue parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ConfigValue 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 com.android.aapt.Resources.ConfigValue parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ConfigValue 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 com.android.aapt.Resources.ConfigValue parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.ConfigValue 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 com.android.aapt.Resources.ConfigValue parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigValue 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 com.android.aapt.Resources.ConfigValue parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.ConfigValue parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.ConfigValue parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.ConfigValue 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(com.android.aapt.Resources.ConfigValue prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A Configuration/Value pair.
       * </pre>
       *
       * Protobuf type {@code ConfigValue}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.ConfigValue, Builder> implements
          // @@protoc_insertion_point(builder_implements:ConfigValue)
          com.android.aapt.Resources.ConfigValueOrBuilder {
        // Construct using com.android.aapt.Resources.ConfigValue.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>.Configuration config = 1;</code>
         */
        @java.lang.Override
        public boolean hasConfig() {
          return instance.hasConfig();
        }
        /**
         * <code>.Configuration config = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.ConfigurationOuterClass.Configuration getConfig() {
          return instance.getConfig();
        }
        /**
         * <code>.Configuration config = 1;</code>
         */
        public Builder setConfig(com.android.aapt.ConfigurationOuterClass.Configuration value) {
          copyOnWrite();
          instance.setConfig(value);
          return this;
          }
        /**
         * <code>.Configuration config = 1;</code>
         */
        public Builder setConfig(
            com.android.aapt.ConfigurationOuterClass.Configuration.Builder builderForValue) {
          copyOnWrite();
          instance.setConfig(builderForValue.build());
          return this;
        }
        /**
         * <code>.Configuration config = 1;</code>
         */
        public Builder mergeConfig(com.android.aapt.ConfigurationOuterClass.Configuration value) {
          copyOnWrite();
          instance.mergeConfig(value);
          return this;
        }
        /**
         * <code>.Configuration config = 1;</code>
         */
        public Builder clearConfig() {  copyOnWrite();
          instance.clearConfig();
          return this;
        }
  
        /**
         * <code>.Value value = 2;</code>
         */
        @java.lang.Override
        public boolean hasValue() {
          return instance.hasValue();
        }
        /**
         * <code>.Value value = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Value getValue() {
          return instance.getValue();
        }
        /**
         * <code>.Value value = 2;</code>
         */
        public Builder setValue(com.android.aapt.Resources.Value value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
          }
        /**
         * <code>.Value value = 2;</code>
         */
        public Builder setValue(
            com.android.aapt.Resources.Value.Builder builderForValue) {
          copyOnWrite();
          instance.setValue(builderForValue.build());
          return this;
        }
        /**
         * <code>.Value value = 2;</code>
         */
        public Builder mergeValue(com.android.aapt.Resources.Value value) {
          copyOnWrite();
          instance.mergeValue(value);
          return this;
        }
        /**
         * <code>.Value value = 2;</code>
         */
        public Builder clearValue() {  copyOnWrite();
          instance.clearValue();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:ConfigValue)
      }
      @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 com.android.aapt.Resources.ConfigValue();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "config_",
                "value_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                  "\u1009\u0001";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.ConfigValue> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.ConfigValue.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.ConfigValue>(
                          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:ConfigValue)
      private static final com.android.aapt.Resources.ConfigValue DEFAULT_INSTANCE;
      static {
        ConfigValue defaultInstance = new ConfigValue();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          ConfigValue.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.ConfigValue getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<ConfigValue> PARSER;
  
      public static com.google.protobuf.Parser<ConfigValue> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Value)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       * @return The source.
       */
      com.android.aapt.Resources.Source getSource();
  
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The comment.
       */
      java.lang.String getComment();
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The bytes for comment.
       */
      com.google.protobuf.ByteString
          getCommentBytes();
  
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>bool weak = 3;</code>
       * @return The weak.
       */
      boolean getWeak();
  
      /**
       * <code>.Item item = 4;</code>
       * @return Whether the item field is set.
       */
      boolean hasItem();
      /**
       * <code>.Item item = 4;</code>
       * @return The item.
       */
      com.android.aapt.Resources.Item getItem();
  
      /**
       * <code>.CompoundValue compound_value = 5;</code>
       * @return Whether the compoundValue field is set.
       */
      boolean hasCompoundValue();
      /**
       * <code>.CompoundValue compound_value = 5;</code>
       * @return The compoundValue.
       */
      com.android.aapt.Resources.CompoundValue getCompoundValue();
  
      public com.android.aapt.Resources.Value.ValueCase getValueCase();
    }
    /**
     * <pre>
     * The generic meta-data for every value in a resource table.
     * </pre>
     *
     * Protobuf type {@code Value}
     */
    public  static final class Value extends
        com.google.protobuf.GeneratedMessageLite<
            Value, Value.Builder> implements
        // @@protoc_insertion_point(message_implements:Value)
        ValueOrBuilder {
      private Value() {
        comment_ = "";
      }
      private int bitField0_;
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase {
        ITEM(4),
        COMPOUND_VALUE(5),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static ValueCase forNumber(int value) {
          switch (value) {
            case 4: return ITEM;
            case 5: return COMPOUND_VALUE;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      @java.lang.Override
      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }
  
      private void clearValue() {
        valueCase_ = 0;
        value_ = null;
      }
  
      public static final int SOURCE_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Source source_;
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Source getSource() {
        return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      private void setSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Where the value was defined.
       * </pre>
       *
       * <code>.Source source = 1;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int COMMENT_FIELD_NUMBER = 2;
      private java.lang.String comment_;
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The comment.
       */
      @java.lang.Override
      public java.lang.String getComment() {
        return comment_;
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @return The bytes for comment.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCommentBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(comment_);
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @param value The comment to set.
       */
      private void setComment(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        comment_ = value;
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>string comment = 2;</code>
       */
      private void clearComment() {
  
        comment_ = getDefaultInstance().getComment();
      }
      /**
       * <pre>
       * Any comment associated with the value.
       * </pre>
       *
       * <code>string comment = 2;</code>
       * @param value The bytes for comment to set.
       */
      private void setCommentBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        comment_ = value.toStringUtf8();
  
      }
  
      public static final int WEAK_FIELD_NUMBER = 3;
      private boolean weak_;
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>bool weak = 3;</code>
       * @return The weak.
       */
      @java.lang.Override
      public boolean getWeak() {
        return weak_;
      }
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>bool weak = 3;</code>
       * @param value The weak to set.
       */
      private void setWeak(boolean value) {
        
        weak_ = value;
      }
      /**
       * <pre>
       * Whether the value can be overridden.
       * </pre>
       *
       * <code>bool weak = 3;</code>
       */
      private void clearWeak() {
  
        weak_ = false;
      }
  
      public static final int ITEM_FIELD_NUMBER = 4;
      /**
       * <code>.Item item = 4;</code>
       */
      @java.lang.Override
      public boolean hasItem() {
        return valueCase_ == 4;
      }
      /**
       * <code>.Item item = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Item getItem() {
        if (valueCase_ == 4) {
           return (com.android.aapt.Resources.Item) value_;
        }
        return com.android.aapt.Resources.Item.getDefaultInstance();
      }
      /**
       * <code>.Item item = 4;</code>
       */
      private void setItem(com.android.aapt.Resources.Item value) {
        value.getClass();
    value_ = value;
        valueCase_ = 4;
      }
      /**
       * <code>.Item item = 4;</code>
       */
      private void mergeItem(com.android.aapt.Resources.Item value) {
        value.getClass();
    if (valueCase_ == 4 &&
            value_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Item.newBuilder((com.android.aapt.Resources.Item) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 4;
      }
      /**
       * <code>.Item item = 4;</code>
       */
      private void clearItem() {
        if (valueCase_ == 4) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int COMPOUND_VALUE_FIELD_NUMBER = 5;
      /**
       * <code>.CompoundValue compound_value = 5;</code>
       */
      @java.lang.Override
      public boolean hasCompoundValue() {
        return valueCase_ == 5;
      }
      /**
       * <code>.CompoundValue compound_value = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.CompoundValue getCompoundValue() {
        if (valueCase_ == 5) {
           return (com.android.aapt.Resources.CompoundValue) value_;
        }
        return com.android.aapt.Resources.CompoundValue.getDefaultInstance();
      }
      /**
       * <code>.CompoundValue compound_value = 5;</code>
       */
      private void setCompoundValue(com.android.aapt.Resources.CompoundValue value) {
        value.getClass();
    value_ = value;
        valueCase_ = 5;
      }
      /**
       * <code>.CompoundValue compound_value = 5;</code>
       */
      private void mergeCompoundValue(com.android.aapt.Resources.CompoundValue value) {
        value.getClass();
    if (valueCase_ == 5 &&
            value_ != com.android.aapt.Resources.CompoundValue.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.CompoundValue.newBuilder((com.android.aapt.Resources.CompoundValue) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 5;
      }
      /**
       * <code>.CompoundValue compound_value = 5;</code>
       */
      private void clearCompoundValue() {
        if (valueCase_ == 5) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static com.android.aapt.Resources.Value parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Value 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 com.android.aapt.Resources.Value parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Value 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 com.android.aapt.Resources.Value parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Value 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 com.android.aapt.Resources.Value parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Value 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 com.android.aapt.Resources.Value parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Value parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Value parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Value 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(com.android.aapt.Resources.Value prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * The generic meta-data for every value in a resource table.
       * </pre>
       *
       * Protobuf type {@code Value}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Value, Builder> implements
          // @@protoc_insertion_point(builder_implements:Value)
          com.android.aapt.Resources.ValueOrBuilder {
        // Construct using com.android.aapt.Resources.Value.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
        @java.lang.Override
        public ValueCase
            getValueCase() {
          return instance.getValueCase();
        }
  
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
  
  
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Where the value was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return instance.getComment();
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return instance.getCommentBytes();
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         * @return This builder for chaining.
         */
        public Builder setComment(
            java.lang.String value) {
          copyOnWrite();
          instance.setComment(value);
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearComment() {
          copyOnWrite();
          instance.clearComment();
          return this;
        }
        /**
         * <pre>
         * Any comment associated with the value.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         * @return This builder for chaining.
         */
        public Builder setCommentBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setCommentBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Whether the value can be overridden.
         * </pre>
         *
         * <code>bool weak = 3;</code>
         * @return The weak.
         */
        @java.lang.Override
        public boolean getWeak() {
          return instance.getWeak();
        }
        /**
         * <pre>
         * Whether the value can be overridden.
         * </pre>
         *
         * <code>bool weak = 3;</code>
         * @param value The weak to set.
         * @return This builder for chaining.
         */
        public Builder setWeak(boolean value) {
          copyOnWrite();
          instance.setWeak(value);
          return this;
        }
        /**
         * <pre>
         * Whether the value can be overridden.
         * </pre>
         *
         * <code>bool weak = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearWeak() {
          copyOnWrite();
          instance.clearWeak();
          return this;
        }
  
        /**
         * <code>.Item item = 4;</code>
         */
        @java.lang.Override
        public boolean hasItem() {
          return instance.hasItem();
        }
        /**
         * <code>.Item item = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Item getItem() {
          return instance.getItem();
        }
        /**
         * <code>.Item item = 4;</code>
         */
        public Builder setItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.setItem(value);
          return this;
        }
        /**
         * <code>.Item item = 4;</code>
         */
        public Builder setItem(
            com.android.aapt.Resources.Item.Builder builderForValue) {
          copyOnWrite();
          instance.setItem(builderForValue.build());
          return this;
        }
        /**
         * <code>.Item item = 4;</code>
         */
        public Builder mergeItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.mergeItem(value);
          return this;
        }
        /**
         * <code>.Item item = 4;</code>
         */
        public Builder clearItem() {
          copyOnWrite();
          instance.clearItem();
          return this;
        }
  
        /**
         * <code>.CompoundValue compound_value = 5;</code>
         */
        @java.lang.Override
        public boolean hasCompoundValue() {
          return instance.hasCompoundValue();
        }
        /**
         * <code>.CompoundValue compound_value = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.CompoundValue getCompoundValue() {
          return instance.getCompoundValue();
        }
        /**
         * <code>.CompoundValue compound_value = 5;</code>
         */
        public Builder setCompoundValue(com.android.aapt.Resources.CompoundValue value) {
          copyOnWrite();
          instance.setCompoundValue(value);
          return this;
        }
        /**
         * <code>.CompoundValue compound_value = 5;</code>
         */
        public Builder setCompoundValue(
            com.android.aapt.Resources.CompoundValue.Builder builderForValue) {
          copyOnWrite();
          instance.setCompoundValue(builderForValue.build());
          return this;
        }
        /**
         * <code>.CompoundValue compound_value = 5;</code>
         */
        public Builder mergeCompoundValue(com.android.aapt.Resources.CompoundValue value) {
          copyOnWrite();
          instance.mergeCompoundValue(value);
          return this;
        }
        /**
         * <code>.CompoundValue compound_value = 5;</code>
         */
        public Builder clearCompoundValue() {
          copyOnWrite();
          instance.clearCompoundValue();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Value)
      }
      @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 com.android.aapt.Resources.Value();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "value_",
                "valueCase_",
                "bitField0_",
                "source_",
                "comment_",
                "weak_",
                com.android.aapt.Resources.Item.class,
                com.android.aapt.Resources.CompoundValue.class,
              };
              java.lang.String info =
                  "\u0000\u0005\u0001\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                  "\u0208\u0003\u0007\u0004<\u0000\u0005<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Value> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Value.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Value>(
                          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:Value)
      private static final com.android.aapt.Resources.Value DEFAULT_INSTANCE;
      static {
        Value defaultInstance = new Value();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Value.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Value getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Value> PARSER;
  
      public static com.google.protobuf.Parser<Value> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ItemOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Item)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Reference ref = 1;</code>
       * @return Whether the ref field is set.
       */
      boolean hasRef();
      /**
       * <code>.Reference ref = 1;</code>
       * @return The ref.
       */
      com.android.aapt.Resources.Reference getRef();
  
      /**
       * <code>.String str = 2;</code>
       * @return Whether the str field is set.
       */
      boolean hasStr();
      /**
       * <code>.String str = 2;</code>
       * @return The str.
       */
      com.android.aapt.Resources.String getStr();
  
      /**
       * <code>.RawString raw_str = 3;</code>
       * @return Whether the rawStr field is set.
       */
      boolean hasRawStr();
      /**
       * <code>.RawString raw_str = 3;</code>
       * @return The rawStr.
       */
      com.android.aapt.Resources.RawString getRawStr();
  
      /**
       * <code>.StyledString styled_str = 4;</code>
       * @return Whether the styledStr field is set.
       */
      boolean hasStyledStr();
      /**
       * <code>.StyledString styled_str = 4;</code>
       * @return The styledStr.
       */
      com.android.aapt.Resources.StyledString getStyledStr();
  
      /**
       * <code>.FileReference file = 5;</code>
       * @return Whether the file field is set.
       */
      boolean hasFile();
      /**
       * <code>.FileReference file = 5;</code>
       * @return The file.
       */
      com.android.aapt.Resources.FileReference getFile();
  
      /**
       * <code>.Id id = 6;</code>
       * @return Whether the id field is set.
       */
      boolean hasId();
      /**
       * <code>.Id id = 6;</code>
       * @return The id.
       */
      com.android.aapt.Resources.Id getId();
  
      /**
       * <code>.Primitive prim = 7;</code>
       * @return Whether the prim field is set.
       */
      boolean hasPrim();
      /**
       * <code>.Primitive prim = 7;</code>
       * @return The prim.
       */
      com.android.aapt.Resources.Primitive getPrim();
  
      public com.android.aapt.Resources.Item.ValueCase getValueCase();
    }
    /**
     * <pre>
     * An Item is an abstract type. It represents a value that can appear inline in many places, such
     * as XML attribute values or on the right hand side of style attribute definitions. The concrete
     * type is one of the types below. Only one can be set.
     * </pre>
     *
     * Protobuf type {@code Item}
     */
    public  static final class Item extends
        com.google.protobuf.GeneratedMessageLite<
            Item, Item.Builder> implements
        // @@protoc_insertion_point(message_implements:Item)
        ItemOrBuilder {
      private Item() {
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase {
        REF(1),
        STR(2),
        RAW_STR(3),
        STYLED_STR(4),
        FILE(5),
        ID(6),
        PRIM(7),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static ValueCase forNumber(int value) {
          switch (value) {
            case 1: return REF;
            case 2: return STR;
            case 3: return RAW_STR;
            case 4: return STYLED_STR;
            case 5: return FILE;
            case 6: return ID;
            case 7: return PRIM;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      @java.lang.Override
      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }
  
      private void clearValue() {
        valueCase_ = 0;
        value_ = null;
      }
  
      public static final int REF_FIELD_NUMBER = 1;
      /**
       * <code>.Reference ref = 1;</code>
       */
      @java.lang.Override
      public boolean hasRef() {
        return valueCase_ == 1;
      }
      /**
       * <code>.Reference ref = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Reference getRef() {
        if (valueCase_ == 1) {
           return (com.android.aapt.Resources.Reference) value_;
        }
        return com.android.aapt.Resources.Reference.getDefaultInstance();
      }
      /**
       * <code>.Reference ref = 1;</code>
       */
      private void setRef(com.android.aapt.Resources.Reference value) {
        value.getClass();
    value_ = value;
        valueCase_ = 1;
      }
      /**
       * <code>.Reference ref = 1;</code>
       */
      private void mergeRef(com.android.aapt.Resources.Reference value) {
        value.getClass();
    if (valueCase_ == 1 &&
            value_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Reference.newBuilder((com.android.aapt.Resources.Reference) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 1;
      }
      /**
       * <code>.Reference ref = 1;</code>
       */
      private void clearRef() {
        if (valueCase_ == 1) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int STR_FIELD_NUMBER = 2;
      /**
       * <code>.String str = 2;</code>
       */
      @java.lang.Override
      public boolean hasStr() {
        return valueCase_ == 2;
      }
      /**
       * <code>.String str = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.String getStr() {
        if (valueCase_ == 2) {
           return (com.android.aapt.Resources.String) value_;
        }
        return com.android.aapt.Resources.String.getDefaultInstance();
      }
      /**
       * <code>.String str = 2;</code>
       */
      private void setStr(com.android.aapt.Resources.String value) {
        value.getClass();
    value_ = value;
        valueCase_ = 2;
      }
      /**
       * <code>.String str = 2;</code>
       */
      private void mergeStr(com.android.aapt.Resources.String value) {
        value.getClass();
    if (valueCase_ == 2 &&
            value_ != com.android.aapt.Resources.String.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.String.newBuilder((com.android.aapt.Resources.String) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 2;
      }
      /**
       * <code>.String str = 2;</code>
       */
      private void clearStr() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int RAW_STR_FIELD_NUMBER = 3;
      /**
       * <code>.RawString raw_str = 3;</code>
       */
      @java.lang.Override
      public boolean hasRawStr() {
        return valueCase_ == 3;
      }
      /**
       * <code>.RawString raw_str = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.RawString getRawStr() {
        if (valueCase_ == 3) {
           return (com.android.aapt.Resources.RawString) value_;
        }
        return com.android.aapt.Resources.RawString.getDefaultInstance();
      }
      /**
       * <code>.RawString raw_str = 3;</code>
       */
      private void setRawStr(com.android.aapt.Resources.RawString value) {
        value.getClass();
    value_ = value;
        valueCase_ = 3;
      }
      /**
       * <code>.RawString raw_str = 3;</code>
       */
      private void mergeRawStr(com.android.aapt.Resources.RawString value) {
        value.getClass();
    if (valueCase_ == 3 &&
            value_ != com.android.aapt.Resources.RawString.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.RawString.newBuilder((com.android.aapt.Resources.RawString) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 3;
      }
      /**
       * <code>.RawString raw_str = 3;</code>
       */
      private void clearRawStr() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int STYLED_STR_FIELD_NUMBER = 4;
      /**
       * <code>.StyledString styled_str = 4;</code>
       */
      @java.lang.Override
      public boolean hasStyledStr() {
        return valueCase_ == 4;
      }
      /**
       * <code>.StyledString styled_str = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.StyledString getStyledStr() {
        if (valueCase_ == 4) {
           return (com.android.aapt.Resources.StyledString) value_;
        }
        return com.android.aapt.Resources.StyledString.getDefaultInstance();
      }
      /**
       * <code>.StyledString styled_str = 4;</code>
       */
      private void setStyledStr(com.android.aapt.Resources.StyledString value) {
        value.getClass();
    value_ = value;
        valueCase_ = 4;
      }
      /**
       * <code>.StyledString styled_str = 4;</code>
       */
      private void mergeStyledStr(com.android.aapt.Resources.StyledString value) {
        value.getClass();
    if (valueCase_ == 4 &&
            value_ != com.android.aapt.Resources.StyledString.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.StyledString.newBuilder((com.android.aapt.Resources.StyledString) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 4;
      }
      /**
       * <code>.StyledString styled_str = 4;</code>
       */
      private void clearStyledStr() {
        if (valueCase_ == 4) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int FILE_FIELD_NUMBER = 5;
      /**
       * <code>.FileReference file = 5;</code>
       */
      @java.lang.Override
      public boolean hasFile() {
        return valueCase_ == 5;
      }
      /**
       * <code>.FileReference file = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.FileReference getFile() {
        if (valueCase_ == 5) {
           return (com.android.aapt.Resources.FileReference) value_;
        }
        return com.android.aapt.Resources.FileReference.getDefaultInstance();
      }
      /**
       * <code>.FileReference file = 5;</code>
       */
      private void setFile(com.android.aapt.Resources.FileReference value) {
        value.getClass();
    value_ = value;
        valueCase_ = 5;
      }
      /**
       * <code>.FileReference file = 5;</code>
       */
      private void mergeFile(com.android.aapt.Resources.FileReference value) {
        value.getClass();
    if (valueCase_ == 5 &&
            value_ != com.android.aapt.Resources.FileReference.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.FileReference.newBuilder((com.android.aapt.Resources.FileReference) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 5;
      }
      /**
       * <code>.FileReference file = 5;</code>
       */
      private void clearFile() {
        if (valueCase_ == 5) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int ID_FIELD_NUMBER = 6;
      /**
       * <code>.Id id = 6;</code>
       */
      @java.lang.Override
      public boolean hasId() {
        return valueCase_ == 6;
      }
      /**
       * <code>.Id id = 6;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Id getId() {
        if (valueCase_ == 6) {
           return (com.android.aapt.Resources.Id) value_;
        }
        return com.android.aapt.Resources.Id.getDefaultInstance();
      }
      /**
       * <code>.Id id = 6;</code>
       */
      private void setId(com.android.aapt.Resources.Id value) {
        value.getClass();
    value_ = value;
        valueCase_ = 6;
      }
      /**
       * <code>.Id id = 6;</code>
       */
      private void mergeId(com.android.aapt.Resources.Id value) {
        value.getClass();
    if (valueCase_ == 6 &&
            value_ != com.android.aapt.Resources.Id.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Id.newBuilder((com.android.aapt.Resources.Id) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 6;
      }
      /**
       * <code>.Id id = 6;</code>
       */
      private void clearId() {
        if (valueCase_ == 6) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int PRIM_FIELD_NUMBER = 7;
      /**
       * <code>.Primitive prim = 7;</code>
       */
      @java.lang.Override
      public boolean hasPrim() {
        return valueCase_ == 7;
      }
      /**
       * <code>.Primitive prim = 7;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Primitive getPrim() {
        if (valueCase_ == 7) {
           return (com.android.aapt.Resources.Primitive) value_;
        }
        return com.android.aapt.Resources.Primitive.getDefaultInstance();
      }
      /**
       * <code>.Primitive prim = 7;</code>
       */
      private void setPrim(com.android.aapt.Resources.Primitive value) {
        value.getClass();
    value_ = value;
        valueCase_ = 7;
      }
      /**
       * <code>.Primitive prim = 7;</code>
       */
      private void mergePrim(com.android.aapt.Resources.Primitive value) {
        value.getClass();
    if (valueCase_ == 7 &&
            value_ != com.android.aapt.Resources.Primitive.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Primitive.newBuilder((com.android.aapt.Resources.Primitive) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 7;
      }
      /**
       * <code>.Primitive prim = 7;</code>
       */
      private void clearPrim() {
        if (valueCase_ == 7) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static com.android.aapt.Resources.Item parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Item 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 com.android.aapt.Resources.Item parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Item 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 com.android.aapt.Resources.Item parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Item 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 com.android.aapt.Resources.Item parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Item 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 com.android.aapt.Resources.Item parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Item parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Item parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Item 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(com.android.aapt.Resources.Item prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * An Item is an abstract type. It represents a value that can appear inline in many places, such
       * as XML attribute values or on the right hand side of style attribute definitions. The concrete
       * type is one of the types below. Only one can be set.
       * </pre>
       *
       * Protobuf type {@code Item}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Item, Builder> implements
          // @@protoc_insertion_point(builder_implements:Item)
          com.android.aapt.Resources.ItemOrBuilder {
        // Construct using com.android.aapt.Resources.Item.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
        @java.lang.Override
        public ValueCase
            getValueCase() {
          return instance.getValueCase();
        }
  
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
  
  
        /**
         * <code>.Reference ref = 1;</code>
         */
        @java.lang.Override
        public boolean hasRef() {
          return instance.hasRef();
        }
        /**
         * <code>.Reference ref = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Reference getRef() {
          return instance.getRef();
        }
        /**
         * <code>.Reference ref = 1;</code>
         */
        public Builder setRef(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.setRef(value);
          return this;
        }
        /**
         * <code>.Reference ref = 1;</code>
         */
        public Builder setRef(
            com.android.aapt.Resources.Reference.Builder builderForValue) {
          copyOnWrite();
          instance.setRef(builderForValue.build());
          return this;
        }
        /**
         * <code>.Reference ref = 1;</code>
         */
        public Builder mergeRef(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.mergeRef(value);
          return this;
        }
        /**
         * <code>.Reference ref = 1;</code>
         */
        public Builder clearRef() {
          copyOnWrite();
          instance.clearRef();
          return this;
        }
  
        /**
         * <code>.String str = 2;</code>
         */
        @java.lang.Override
        public boolean hasStr() {
          return instance.hasStr();
        }
        /**
         * <code>.String str = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.String getStr() {
          return instance.getStr();
        }
        /**
         * <code>.String str = 2;</code>
         */
        public Builder setStr(com.android.aapt.Resources.String value) {
          copyOnWrite();
          instance.setStr(value);
          return this;
        }
        /**
         * <code>.String str = 2;</code>
         */
        public Builder setStr(
            com.android.aapt.Resources.String.Builder builderForValue) {
          copyOnWrite();
          instance.setStr(builderForValue.build());
          return this;
        }
        /**
         * <code>.String str = 2;</code>
         */
        public Builder mergeStr(com.android.aapt.Resources.String value) {
          copyOnWrite();
          instance.mergeStr(value);
          return this;
        }
        /**
         * <code>.String str = 2;</code>
         */
        public Builder clearStr() {
          copyOnWrite();
          instance.clearStr();
          return this;
        }
  
        /**
         * <code>.RawString raw_str = 3;</code>
         */
        @java.lang.Override
        public boolean hasRawStr() {
          return instance.hasRawStr();
        }
        /**
         * <code>.RawString raw_str = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.RawString getRawStr() {
          return instance.getRawStr();
        }
        /**
         * <code>.RawString raw_str = 3;</code>
         */
        public Builder setRawStr(com.android.aapt.Resources.RawString value) {
          copyOnWrite();
          instance.setRawStr(value);
          return this;
        }
        /**
         * <code>.RawString raw_str = 3;</code>
         */
        public Builder setRawStr(
            com.android.aapt.Resources.RawString.Builder builderForValue) {
          copyOnWrite();
          instance.setRawStr(builderForValue.build());
          return this;
        }
        /**
         * <code>.RawString raw_str = 3;</code>
         */
        public Builder mergeRawStr(com.android.aapt.Resources.RawString value) {
          copyOnWrite();
          instance.mergeRawStr(value);
          return this;
        }
        /**
         * <code>.RawString raw_str = 3;</code>
         */
        public Builder clearRawStr() {
          copyOnWrite();
          instance.clearRawStr();
          return this;
        }
  
        /**
         * <code>.StyledString styled_str = 4;</code>
         */
        @java.lang.Override
        public boolean hasStyledStr() {
          return instance.hasStyledStr();
        }
        /**
         * <code>.StyledString styled_str = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.StyledString getStyledStr() {
          return instance.getStyledStr();
        }
        /**
         * <code>.StyledString styled_str = 4;</code>
         */
        public Builder setStyledStr(com.android.aapt.Resources.StyledString value) {
          copyOnWrite();
          instance.setStyledStr(value);
          return this;
        }
        /**
         * <code>.StyledString styled_str = 4;</code>
         */
        public Builder setStyledStr(
            com.android.aapt.Resources.StyledString.Builder builderForValue) {
          copyOnWrite();
          instance.setStyledStr(builderForValue.build());
          return this;
        }
        /**
         * <code>.StyledString styled_str = 4;</code>
         */
        public Builder mergeStyledStr(com.android.aapt.Resources.StyledString value) {
          copyOnWrite();
          instance.mergeStyledStr(value);
          return this;
        }
        /**
         * <code>.StyledString styled_str = 4;</code>
         */
        public Builder clearStyledStr() {
          copyOnWrite();
          instance.clearStyledStr();
          return this;
        }
  
        /**
         * <code>.FileReference file = 5;</code>
         */
        @java.lang.Override
        public boolean hasFile() {
          return instance.hasFile();
        }
        /**
         * <code>.FileReference file = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.FileReference getFile() {
          return instance.getFile();
        }
        /**
         * <code>.FileReference file = 5;</code>
         */
        public Builder setFile(com.android.aapt.Resources.FileReference value) {
          copyOnWrite();
          instance.setFile(value);
          return this;
        }
        /**
         * <code>.FileReference file = 5;</code>
         */
        public Builder setFile(
            com.android.aapt.Resources.FileReference.Builder builderForValue) {
          copyOnWrite();
          instance.setFile(builderForValue.build());
          return this;
        }
        /**
         * <code>.FileReference file = 5;</code>
         */
        public Builder mergeFile(com.android.aapt.Resources.FileReference value) {
          copyOnWrite();
          instance.mergeFile(value);
          return this;
        }
        /**
         * <code>.FileReference file = 5;</code>
         */
        public Builder clearFile() {
          copyOnWrite();
          instance.clearFile();
          return this;
        }
  
        /**
         * <code>.Id id = 6;</code>
         */
        @java.lang.Override
        public boolean hasId() {
          return instance.hasId();
        }
        /**
         * <code>.Id id = 6;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Id getId() {
          return instance.getId();
        }
        /**
         * <code>.Id id = 6;</code>
         */
        public Builder setId(com.android.aapt.Resources.Id value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <code>.Id id = 6;</code>
         */
        public Builder setId(
            com.android.aapt.Resources.Id.Builder builderForValue) {
          copyOnWrite();
          instance.setId(builderForValue.build());
          return this;
        }
        /**
         * <code>.Id id = 6;</code>
         */
        public Builder mergeId(com.android.aapt.Resources.Id value) {
          copyOnWrite();
          instance.mergeId(value);
          return this;
        }
        /**
         * <code>.Id id = 6;</code>
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        /**
         * <code>.Primitive prim = 7;</code>
         */
        @java.lang.Override
        public boolean hasPrim() {
          return instance.hasPrim();
        }
        /**
         * <code>.Primitive prim = 7;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Primitive getPrim() {
          return instance.getPrim();
        }
        /**
         * <code>.Primitive prim = 7;</code>
         */
        public Builder setPrim(com.android.aapt.Resources.Primitive value) {
          copyOnWrite();
          instance.setPrim(value);
          return this;
        }
        /**
         * <code>.Primitive prim = 7;</code>
         */
        public Builder setPrim(
            com.android.aapt.Resources.Primitive.Builder builderForValue) {
          copyOnWrite();
          instance.setPrim(builderForValue.build());
          return this;
        }
        /**
         * <code>.Primitive prim = 7;</code>
         */
        public Builder mergePrim(com.android.aapt.Resources.Primitive value) {
          copyOnWrite();
          instance.mergePrim(value);
          return this;
        }
        /**
         * <code>.Primitive prim = 7;</code>
         */
        public Builder clearPrim() {
          copyOnWrite();
          instance.clearPrim();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Item)
      }
      @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 com.android.aapt.Resources.Item();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "value_",
                "valueCase_",
                com.android.aapt.Resources.Reference.class,
                com.android.aapt.Resources.String.class,
                com.android.aapt.Resources.RawString.class,
                com.android.aapt.Resources.StyledString.class,
                com.android.aapt.Resources.FileReference.class,
                com.android.aapt.Resources.Id.class,
                com.android.aapt.Resources.Primitive.class,
              };
              java.lang.String info =
                  "\u0000\u0007\u0001\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                  "\u0000\u0003<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000\u0007<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Item> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Item.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Item>(
                          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:Item)
      private static final com.android.aapt.Resources.Item DEFAULT_INSTANCE;
      static {
        Item defaultInstance = new Item();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Item.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Item getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Item> PARSER;
  
      public static com.google.protobuf.Parser<Item> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface CompoundValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CompoundValue)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Attribute attr = 1;</code>
       * @return Whether the attr field is set.
       */
      boolean hasAttr();
      /**
       * <code>.Attribute attr = 1;</code>
       * @return The attr.
       */
      com.android.aapt.Resources.Attribute getAttr();
  
      /**
       * <code>.Style style = 2;</code>
       * @return Whether the style field is set.
       */
      boolean hasStyle();
      /**
       * <code>.Style style = 2;</code>
       * @return The style.
       */
      com.android.aapt.Resources.Style getStyle();
  
      /**
       * <code>.Styleable styleable = 3;</code>
       * @return Whether the styleable field is set.
       */
      boolean hasStyleable();
      /**
       * <code>.Styleable styleable = 3;</code>
       * @return The styleable.
       */
      com.android.aapt.Resources.Styleable getStyleable();
  
      /**
       * <code>.Array array = 4;</code>
       * @return Whether the array field is set.
       */
      boolean hasArray();
      /**
       * <code>.Array array = 4;</code>
       * @return The array.
       */
      com.android.aapt.Resources.Array getArray();
  
      /**
       * <code>.Plural plural = 5;</code>
       * @return Whether the plural field is set.
       */
      boolean hasPlural();
      /**
       * <code>.Plural plural = 5;</code>
       * @return The plural.
       */
      com.android.aapt.Resources.Plural getPlural();
  
      /**
       * <code>.MacroBody macro = 6;</code>
       * @return Whether the macro field is set.
       */
      boolean hasMacro();
      /**
       * <code>.MacroBody macro = 6;</code>
       * @return The macro.
       */
      com.android.aapt.Resources.MacroBody getMacro();
  
      public com.android.aapt.Resources.CompoundValue.ValueCase getValueCase();
    }
    /**
     * <pre>
     * A CompoundValue is an abstract type. It represents a value that is a made of other values.
     * These can only usually appear as top-level resources. The concrete type is one of the types
     * below. Only one can be set.
     * </pre>
     *
     * Protobuf type {@code CompoundValue}
     */
    public  static final class CompoundValue extends
        com.google.protobuf.GeneratedMessageLite<
            CompoundValue, CompoundValue.Builder> implements
        // @@protoc_insertion_point(message_implements:CompoundValue)
        CompoundValueOrBuilder {
      private CompoundValue() {
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase {
        ATTR(1),
        STYLE(2),
        STYLEABLE(3),
        ARRAY(4),
        PLURAL(5),
        MACRO(6),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static ValueCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static ValueCase forNumber(int value) {
          switch (value) {
            case 1: return ATTR;
            case 2: return STYLE;
            case 3: return STYLEABLE;
            case 4: return ARRAY;
            case 5: return PLURAL;
            case 6: return MACRO;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      @java.lang.Override
      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }
  
      private void clearValue() {
        valueCase_ = 0;
        value_ = null;
      }
  
      public static final int ATTR_FIELD_NUMBER = 1;
      /**
       * <code>.Attribute attr = 1;</code>
       */
      @java.lang.Override
      public boolean hasAttr() {
        return valueCase_ == 1;
      }
      /**
       * <code>.Attribute attr = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Attribute getAttr() {
        if (valueCase_ == 1) {
           return (com.android.aapt.Resources.Attribute) value_;
        }
        return com.android.aapt.Resources.Attribute.getDefaultInstance();
      }
      /**
       * <code>.Attribute attr = 1;</code>
       */
      private void setAttr(com.android.aapt.Resources.Attribute value) {
        value.getClass();
    value_ = value;
        valueCase_ = 1;
      }
      /**
       * <code>.Attribute attr = 1;</code>
       */
      private void mergeAttr(com.android.aapt.Resources.Attribute value) {
        value.getClass();
    if (valueCase_ == 1 &&
            value_ != com.android.aapt.Resources.Attribute.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Attribute.newBuilder((com.android.aapt.Resources.Attribute) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 1;
      }
      /**
       * <code>.Attribute attr = 1;</code>
       */
      private void clearAttr() {
        if (valueCase_ == 1) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int STYLE_FIELD_NUMBER = 2;
      /**
       * <code>.Style style = 2;</code>
       */
      @java.lang.Override
      public boolean hasStyle() {
        return valueCase_ == 2;
      }
      /**
       * <code>.Style style = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Style getStyle() {
        if (valueCase_ == 2) {
           return (com.android.aapt.Resources.Style) value_;
        }
        return com.android.aapt.Resources.Style.getDefaultInstance();
      }
      /**
       * <code>.Style style = 2;</code>
       */
      private void setStyle(com.android.aapt.Resources.Style value) {
        value.getClass();
    value_ = value;
        valueCase_ = 2;
      }
      /**
       * <code>.Style style = 2;</code>
       */
      private void mergeStyle(com.android.aapt.Resources.Style value) {
        value.getClass();
    if (valueCase_ == 2 &&
            value_ != com.android.aapt.Resources.Style.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Style.newBuilder((com.android.aapt.Resources.Style) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 2;
      }
      /**
       * <code>.Style style = 2;</code>
       */
      private void clearStyle() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int STYLEABLE_FIELD_NUMBER = 3;
      /**
       * <code>.Styleable styleable = 3;</code>
       */
      @java.lang.Override
      public boolean hasStyleable() {
        return valueCase_ == 3;
      }
      /**
       * <code>.Styleable styleable = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Styleable getStyleable() {
        if (valueCase_ == 3) {
           return (com.android.aapt.Resources.Styleable) value_;
        }
        return com.android.aapt.Resources.Styleable.getDefaultInstance();
      }
      /**
       * <code>.Styleable styleable = 3;</code>
       */
      private void setStyleable(com.android.aapt.Resources.Styleable value) {
        value.getClass();
    value_ = value;
        valueCase_ = 3;
      }
      /**
       * <code>.Styleable styleable = 3;</code>
       */
      private void mergeStyleable(com.android.aapt.Resources.Styleable value) {
        value.getClass();
    if (valueCase_ == 3 &&
            value_ != com.android.aapt.Resources.Styleable.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Styleable.newBuilder((com.android.aapt.Resources.Styleable) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 3;
      }
      /**
       * <code>.Styleable styleable = 3;</code>
       */
      private void clearStyleable() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int ARRAY_FIELD_NUMBER = 4;
      /**
       * <code>.Array array = 4;</code>
       */
      @java.lang.Override
      public boolean hasArray() {
        return valueCase_ == 4;
      }
      /**
       * <code>.Array array = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Array getArray() {
        if (valueCase_ == 4) {
           return (com.android.aapt.Resources.Array) value_;
        }
        return com.android.aapt.Resources.Array.getDefaultInstance();
      }
      /**
       * <code>.Array array = 4;</code>
       */
      private void setArray(com.android.aapt.Resources.Array value) {
        value.getClass();
    value_ = value;
        valueCase_ = 4;
      }
      /**
       * <code>.Array array = 4;</code>
       */
      private void mergeArray(com.android.aapt.Resources.Array value) {
        value.getClass();
    if (valueCase_ == 4 &&
            value_ != com.android.aapt.Resources.Array.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Array.newBuilder((com.android.aapt.Resources.Array) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 4;
      }
      /**
       * <code>.Array array = 4;</code>
       */
      private void clearArray() {
        if (valueCase_ == 4) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int PLURAL_FIELD_NUMBER = 5;
      /**
       * <code>.Plural plural = 5;</code>
       */
      @java.lang.Override
      public boolean hasPlural() {
        return valueCase_ == 5;
      }
      /**
       * <code>.Plural plural = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Plural getPlural() {
        if (valueCase_ == 5) {
           return (com.android.aapt.Resources.Plural) value_;
        }
        return com.android.aapt.Resources.Plural.getDefaultInstance();
      }
      /**
       * <code>.Plural plural = 5;</code>
       */
      private void setPlural(com.android.aapt.Resources.Plural value) {
        value.getClass();
    value_ = value;
        valueCase_ = 5;
      }
      /**
       * <code>.Plural plural = 5;</code>
       */
      private void mergePlural(com.android.aapt.Resources.Plural value) {
        value.getClass();
    if (valueCase_ == 5 &&
            value_ != com.android.aapt.Resources.Plural.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.Plural.newBuilder((com.android.aapt.Resources.Plural) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 5;
      }
      /**
       * <code>.Plural plural = 5;</code>
       */
      private void clearPlural() {
        if (valueCase_ == 5) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static final int MACRO_FIELD_NUMBER = 6;
      /**
       * <code>.MacroBody macro = 6;</code>
       */
      @java.lang.Override
      public boolean hasMacro() {
        return valueCase_ == 6;
      }
      /**
       * <code>.MacroBody macro = 6;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.MacroBody getMacro() {
        if (valueCase_ == 6) {
           return (com.android.aapt.Resources.MacroBody) value_;
        }
        return com.android.aapt.Resources.MacroBody.getDefaultInstance();
      }
      /**
       * <code>.MacroBody macro = 6;</code>
       */
      private void setMacro(com.android.aapt.Resources.MacroBody value) {
        value.getClass();
    value_ = value;
        valueCase_ = 6;
      }
      /**
       * <code>.MacroBody macro = 6;</code>
       */
      private void mergeMacro(com.android.aapt.Resources.MacroBody value) {
        value.getClass();
    if (valueCase_ == 6 &&
            value_ != com.android.aapt.Resources.MacroBody.getDefaultInstance()) {
          value_ = com.android.aapt.Resources.MacroBody.newBuilder((com.android.aapt.Resources.MacroBody) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }
        valueCase_ = 6;
      }
      /**
       * <code>.MacroBody macro = 6;</code>
       */
      private void clearMacro() {
        if (valueCase_ == 6) {
          valueCase_ = 0;
          value_ = null;
        }
      }
  
      public static com.android.aapt.Resources.CompoundValue parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.CompoundValue 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 com.android.aapt.Resources.CompoundValue parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.CompoundValue 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 com.android.aapt.Resources.CompoundValue parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.CompoundValue 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 com.android.aapt.Resources.CompoundValue parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.CompoundValue 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 com.android.aapt.Resources.CompoundValue parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.CompoundValue parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.CompoundValue parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.CompoundValue 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(com.android.aapt.Resources.CompoundValue prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A CompoundValue is an abstract type. It represents a value that is a made of other values.
       * These can only usually appear as top-level resources. The concrete type is one of the types
       * below. Only one can be set.
       * </pre>
       *
       * Protobuf type {@code CompoundValue}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.CompoundValue, Builder> implements
          // @@protoc_insertion_point(builder_implements:CompoundValue)
          com.android.aapt.Resources.CompoundValueOrBuilder {
        // Construct using com.android.aapt.Resources.CompoundValue.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
        @java.lang.Override
        public ValueCase
            getValueCase() {
          return instance.getValueCase();
        }
  
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
  
  
        /**
         * <code>.Attribute attr = 1;</code>
         */
        @java.lang.Override
        public boolean hasAttr() {
          return instance.hasAttr();
        }
        /**
         * <code>.Attribute attr = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Attribute getAttr() {
          return instance.getAttr();
        }
        /**
         * <code>.Attribute attr = 1;</code>
         */
        public Builder setAttr(com.android.aapt.Resources.Attribute value) {
          copyOnWrite();
          instance.setAttr(value);
          return this;
        }
        /**
         * <code>.Attribute attr = 1;</code>
         */
        public Builder setAttr(
            com.android.aapt.Resources.Attribute.Builder builderForValue) {
          copyOnWrite();
          instance.setAttr(builderForValue.build());
          return this;
        }
        /**
         * <code>.Attribute attr = 1;</code>
         */
        public Builder mergeAttr(com.android.aapt.Resources.Attribute value) {
          copyOnWrite();
          instance.mergeAttr(value);
          return this;
        }
        /**
         * <code>.Attribute attr = 1;</code>
         */
        public Builder clearAttr() {
          copyOnWrite();
          instance.clearAttr();
          return this;
        }
  
        /**
         * <code>.Style style = 2;</code>
         */
        @java.lang.Override
        public boolean hasStyle() {
          return instance.hasStyle();
        }
        /**
         * <code>.Style style = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Style getStyle() {
          return instance.getStyle();
        }
        /**
         * <code>.Style style = 2;</code>
         */
        public Builder setStyle(com.android.aapt.Resources.Style value) {
          copyOnWrite();
          instance.setStyle(value);
          return this;
        }
        /**
         * <code>.Style style = 2;</code>
         */
        public Builder setStyle(
            com.android.aapt.Resources.Style.Builder builderForValue) {
          copyOnWrite();
          instance.setStyle(builderForValue.build());
          return this;
        }
        /**
         * <code>.Style style = 2;</code>
         */
        public Builder mergeStyle(com.android.aapt.Resources.Style value) {
          copyOnWrite();
          instance.mergeStyle(value);
          return this;
        }
        /**
         * <code>.Style style = 2;</code>
         */
        public Builder clearStyle() {
          copyOnWrite();
          instance.clearStyle();
          return this;
        }
  
        /**
         * <code>.Styleable styleable = 3;</code>
         */
        @java.lang.Override
        public boolean hasStyleable() {
          return instance.hasStyleable();
        }
        /**
         * <code>.Styleable styleable = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Styleable getStyleable() {
          return instance.getStyleable();
        }
        /**
         * <code>.Styleable styleable = 3;</code>
         */
        public Builder setStyleable(com.android.aapt.Resources.Styleable value) {
          copyOnWrite();
          instance.setStyleable(value);
          return this;
        }
        /**
         * <code>.Styleable styleable = 3;</code>
         */
        public Builder setStyleable(
            com.android.aapt.Resources.Styleable.Builder builderForValue) {
          copyOnWrite();
          instance.setStyleable(builderForValue.build());
          return this;
        }
        /**
         * <code>.Styleable styleable = 3;</code>
         */
        public Builder mergeStyleable(com.android.aapt.Resources.Styleable value) {
          copyOnWrite();
          instance.mergeStyleable(value);
          return this;
        }
        /**
         * <code>.Styleable styleable = 3;</code>
         */
        public Builder clearStyleable() {
          copyOnWrite();
          instance.clearStyleable();
          return this;
        }
  
        /**
         * <code>.Array array = 4;</code>
         */
        @java.lang.Override
        public boolean hasArray() {
          return instance.hasArray();
        }
        /**
         * <code>.Array array = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Array getArray() {
          return instance.getArray();
        }
        /**
         * <code>.Array array = 4;</code>
         */
        public Builder setArray(com.android.aapt.Resources.Array value) {
          copyOnWrite();
          instance.setArray(value);
          return this;
        }
        /**
         * <code>.Array array = 4;</code>
         */
        public Builder setArray(
            com.android.aapt.Resources.Array.Builder builderForValue) {
          copyOnWrite();
          instance.setArray(builderForValue.build());
          return this;
        }
        /**
         * <code>.Array array = 4;</code>
         */
        public Builder mergeArray(com.android.aapt.Resources.Array value) {
          copyOnWrite();
          instance.mergeArray(value);
          return this;
        }
        /**
         * <code>.Array array = 4;</code>
         */
        public Builder clearArray() {
          copyOnWrite();
          instance.clearArray();
          return this;
        }
  
        /**
         * <code>.Plural plural = 5;</code>
         */
        @java.lang.Override
        public boolean hasPlural() {
          return instance.hasPlural();
        }
        /**
         * <code>.Plural plural = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Plural getPlural() {
          return instance.getPlural();
        }
        /**
         * <code>.Plural plural = 5;</code>
         */
        public Builder setPlural(com.android.aapt.Resources.Plural value) {
          copyOnWrite();
          instance.setPlural(value);
          return this;
        }
        /**
         * <code>.Plural plural = 5;</code>
         */
        public Builder setPlural(
            com.android.aapt.Resources.Plural.Builder builderForValue) {
          copyOnWrite();
          instance.setPlural(builderForValue.build());
          return this;
        }
        /**
         * <code>.Plural plural = 5;</code>
         */
        public Builder mergePlural(com.android.aapt.Resources.Plural value) {
          copyOnWrite();
          instance.mergePlural(value);
          return this;
        }
        /**
         * <code>.Plural plural = 5;</code>
         */
        public Builder clearPlural() {
          copyOnWrite();
          instance.clearPlural();
          return this;
        }
  
        /**
         * <code>.MacroBody macro = 6;</code>
         */
        @java.lang.Override
        public boolean hasMacro() {
          return instance.hasMacro();
        }
        /**
         * <code>.MacroBody macro = 6;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.MacroBody getMacro() {
          return instance.getMacro();
        }
        /**
         * <code>.MacroBody macro = 6;</code>
         */
        public Builder setMacro(com.android.aapt.Resources.MacroBody value) {
          copyOnWrite();
          instance.setMacro(value);
          return this;
        }
        /**
         * <code>.MacroBody macro = 6;</code>
         */
        public Builder setMacro(
            com.android.aapt.Resources.MacroBody.Builder builderForValue) {
          copyOnWrite();
          instance.setMacro(builderForValue.build());
          return this;
        }
        /**
         * <code>.MacroBody macro = 6;</code>
         */
        public Builder mergeMacro(com.android.aapt.Resources.MacroBody value) {
          copyOnWrite();
          instance.mergeMacro(value);
          return this;
        }
        /**
         * <code>.MacroBody macro = 6;</code>
         */
        public Builder clearMacro() {
          copyOnWrite();
          instance.clearMacro();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:CompoundValue)
      }
      @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 com.android.aapt.Resources.CompoundValue();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "value_",
                "valueCase_",
                com.android.aapt.Resources.Attribute.class,
                com.android.aapt.Resources.Style.class,
                com.android.aapt.Resources.Styleable.class,
                com.android.aapt.Resources.Array.class,
                com.android.aapt.Resources.Plural.class,
                com.android.aapt.Resources.MacroBody.class,
              };
              java.lang.String info =
                  "\u0000\u0006\u0001\u0000\u0001\u0006\u0006\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                  "\u0000\u0003<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.CompoundValue> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.CompoundValue.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.CompoundValue>(
                          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:CompoundValue)
      private static final com.android.aapt.Resources.CompoundValue DEFAULT_INSTANCE;
      static {
        CompoundValue defaultInstance = new CompoundValue();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          CompoundValue.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.CompoundValue getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<CompoundValue> PARSER;
  
      public static com.google.protobuf.Parser<CompoundValue> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface BooleanOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Boolean)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>bool value = 1;</code>
       * @return The value.
       */
      boolean getValue();
    }
    /**
     * <pre>
     * Message holding a boolean, so it can be optionally encoded.
     * </pre>
     *
     * Protobuf type {@code Boolean}
     */
    public  static final class Boolean extends
        com.google.protobuf.GeneratedMessageLite<
            Boolean, Boolean.Builder> implements
        // @@protoc_insertion_point(message_implements:Boolean)
        BooleanOrBuilder {
      private Boolean() {
      }
      public static final int VALUE_FIELD_NUMBER = 1;
      private boolean value_;
      /**
       * <code>bool value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public boolean getValue() {
        return value_;
      }
      /**
       * <code>bool value = 1;</code>
       * @param value The value to set.
       */
      private void setValue(boolean value) {
        
        value_ = value;
      }
      /**
       * <code>bool value = 1;</code>
       */
      private void clearValue() {
  
        value_ = false;
      }
  
      public static com.android.aapt.Resources.Boolean parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Boolean 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 com.android.aapt.Resources.Boolean parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Boolean 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 com.android.aapt.Resources.Boolean parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Boolean 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 com.android.aapt.Resources.Boolean parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Boolean 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 com.android.aapt.Resources.Boolean parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Boolean parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Boolean parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Boolean 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(com.android.aapt.Resources.Boolean prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Message holding a boolean, so it can be optionally encoded.
       * </pre>
       *
       * Protobuf type {@code Boolean}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Boolean, Builder> implements
          // @@protoc_insertion_point(builder_implements:Boolean)
          com.android.aapt.Resources.BooleanOrBuilder {
        // Construct using com.android.aapt.Resources.Boolean.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>bool value = 1;</code>
         * @return The value.
         */
        @java.lang.Override
        public boolean getValue() {
          return instance.getValue();
        }
        /**
         * <code>bool value = 1;</code>
         * @param value The value to set.
         * @return This builder for chaining.
         */
        public Builder setValue(boolean value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <code>bool value = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Boolean)
      }
      @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 com.android.aapt.Resources.Boolean();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "value_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0007";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Boolean> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Boolean.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Boolean>(
                          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:Boolean)
      private static final com.android.aapt.Resources.Boolean DEFAULT_INSTANCE;
      static {
        Boolean defaultInstance = new Boolean();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Boolean.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Boolean getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Boolean> PARSER;
  
      public static com.google.protobuf.Parser<Boolean> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ReferenceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Reference)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Reference.Type type = 1;</code>
       * @return The enum numeric value on the wire for type.
       */
      int getTypeValue();
      /**
       * <code>.Reference.Type type = 1;</code>
       * @return The type.
       */
      com.android.aapt.Resources.Reference.Type getType();
  
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred. This is optional.
       * </pre>
       *
       * <code>uint32 id = 2;</code>
       * @return The id.
       */
      int getId();
  
      /**
       * <pre>
       * The name of the resource being referred. This is optional if the resource ID is set.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of the resource being referred. This is optional if the resource ID is set.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>bool private = 4;</code>
       * @return The private.
       */
      boolean getPrivate();
  
      /**
       * <pre>
       * Whether this reference is dynamic.
       * </pre>
       *
       * <code>.Boolean is_dynamic = 5;</code>
       * @return Whether the isDynamic field is set.
       */
      boolean hasIsDynamic();
      /**
       * <pre>
       * Whether this reference is dynamic.
       * </pre>
       *
       * <code>.Boolean is_dynamic = 5;</code>
       * @return The isDynamic.
       */
      com.android.aapt.Resources.Boolean getIsDynamic();
  
      /**
       * <pre>
       * The type flags used when compiling the reference. Used for substituting the contents of macros.
       * </pre>
       *
       * <code>uint32 type_flags = 6;</code>
       * @return The typeFlags.
       */
      int getTypeFlags();
  
      /**
       * <pre>
       * Whether raw string values would have been accepted in place of this reference definition. Used
       * for substituting the contents of macros.
       * </pre>
       *
       * <code>bool allow_raw = 7;</code>
       * @return The allowRaw.
       */
      boolean getAllowRaw();
    }
    /**
     * <pre>
     * A value that is a reference to another resource. This reference can be by name or resource ID.
     * </pre>
     *
     * Protobuf type {@code Reference}
     */
    public  static final class Reference extends
        com.google.protobuf.GeneratedMessageLite<
            Reference, Reference.Builder> implements
        // @@protoc_insertion_point(message_implements:Reference)
        ReferenceOrBuilder {
      private Reference() {
        name_ = "";
      }
      /**
       * Protobuf enum {@code Reference.Type}
       */
      public enum Type
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * A plain reference (&#64;package:type/entry).
         * </pre>
         *
         * <code>REFERENCE = 0;</code>
         */
        REFERENCE(0),
        /**
         * <pre>
         * A reference to a theme attribute (?package:type/entry).
         * </pre>
         *
         * <code>ATTRIBUTE = 1;</code>
         */
        ATTRIBUTE(1),
        UNRECOGNIZED(-1),
        ;
  
        /**
         * <pre>
         * A plain reference (&#64;package:type/entry).
         * </pre>
         *
         * <code>REFERENCE = 0;</code>
         */
        public static final int REFERENCE_VALUE = 0;
        /**
         * <pre>
         * A reference to a theme attribute (?package:type/entry).
         * </pre>
         *
         * <code>ATTRIBUTE = 1;</code>
         */
        public static final int ATTRIBUTE_VALUE = 1;
  
  
        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }
  
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Type valueOf(int value) {
          return forNumber(value);
        }
  
        public static Type forNumber(int value) {
          switch (value) {
            case 0: return REFERENCE;
            case 1: return ATTRIBUTE;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Type>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Type> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Type>() {
                @java.lang.Override
                public Type findValueByNumber(int number) {
                  return Type.forNumber(number);
                }
              };
  
        public static com.google.protobuf.Internal.EnumVerifier 
            internalGetVerifier() {
          return TypeVerifier.INSTANCE;
        }
  
        private static final class TypeVerifier implements 
             com.google.protobuf.Internal.EnumVerifier { 
                static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new TypeVerifier();
                @java.lang.Override
                public boolean isInRange(int number) {
                  return Type.forNumber(number) != null;
                }
              };
  
        private final int value;
  
        private Type(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:Reference.Type)
      }
  
      private int bitField0_;
      public static final int TYPE_FIELD_NUMBER = 1;
      private int type_;
      /**
       * <code>.Reference.Type type = 1;</code>
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override
      public int getTypeValue() {
        return type_;
      }
      /**
       * <code>.Reference.Type type = 1;</code>
       * @return The type.
       */
      @java.lang.Override
      public com.android.aapt.Resources.Reference.Type getType() {
        com.android.aapt.Resources.Reference.Type result = com.android.aapt.Resources.Reference.Type.forNumber(type_);
        return result == null ? com.android.aapt.Resources.Reference.Type.UNRECOGNIZED : result;
      }
      /**
       * <code>.Reference.Type type = 1;</code>
       * @param value The enum numeric value on the wire for type to set.
       */
      private void setTypeValue(int value) {
          type_ = value;
      }
      /**
       * <code>.Reference.Type type = 1;</code>
       * @param value The type to set.
       */
      private void setType(com.android.aapt.Resources.Reference.Type value) {
        type_ = value.getNumber();
  
      }
      /**
       * <code>.Reference.Type type = 1;</code>
       */
      private void clearType() {
  
        type_ = 0;
      }
  
      public static final int ID_FIELD_NUMBER = 2;
      private int id_;
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred. This is optional.
       * </pre>
       *
       * <code>uint32 id = 2;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred. This is optional.
       * </pre>
       *
       * <code>uint32 id = 2;</code>
       * @param value The id to set.
       */
      private void setId(int value) {
        
        id_ = value;
      }
      /**
       * <pre>
       * The resource ID (0xPPTTEEEE) of the resource being referred. This is optional.
       * </pre>
       *
       * <code>uint32 id = 2;</code>
       */
      private void clearId() {
  
        id_ = 0;
      }
  
      public static final int NAME_FIELD_NUMBER = 3;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of the resource being referred. This is optional if the resource ID is set.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of the resource being referred. This is optional if the resource ID is set.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of the resource being referred. This is optional if the resource ID is set.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @param value The name to set.
       */
      private void setName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        name_ = value;
      }
      /**
       * <pre>
       * The name of the resource being referred. This is optional if the resource ID is set.
       * </pre>
       *
       * <code>string name = 3;</code>
       */
      private void clearName() {
  
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of the resource being referred. This is optional if the resource ID is set.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @param value The bytes for name to set.
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        name_ = value.toStringUtf8();
  
      }
  
      public static final int PRIVATE_FIELD_NUMBER = 4;
      private boolean private_;
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>bool private = 4;</code>
       * @return The private.
       */
      @java.lang.Override
      public boolean getPrivate() {
        return private_;
      }
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>bool private = 4;</code>
       * @param value The private to set.
       */
      private void setPrivate(boolean value) {
        
        private_ = value;
      }
      /**
       * <pre>
       * Whether this reference is referencing a private resource (&#64;*package:type/entry).
       * </pre>
       *
       * <code>bool private = 4;</code>
       */
      private void clearPrivate() {
  
        private_ = false;
      }
  
      public static final int IS_DYNAMIC_FIELD_NUMBER = 5;
      private com.android.aapt.Resources.Boolean isDynamic_;
      /**
       * <pre>
       * Whether this reference is dynamic.
       * </pre>
       *
       * <code>.Boolean is_dynamic = 5;</code>
       */
      @java.lang.Override
      public boolean hasIsDynamic() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Whether this reference is dynamic.
       * </pre>
       *
       * <code>.Boolean is_dynamic = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Boolean getIsDynamic() {
        return isDynamic_ == null ? com.android.aapt.Resources.Boolean.getDefaultInstance() : isDynamic_;
      }
      /**
       * <pre>
       * Whether this reference is dynamic.
       * </pre>
       *
       * <code>.Boolean is_dynamic = 5;</code>
       */
      private void setIsDynamic(com.android.aapt.Resources.Boolean value) {
        value.getClass();
    isDynamic_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * Whether this reference is dynamic.
       * </pre>
       *
       * <code>.Boolean is_dynamic = 5;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeIsDynamic(com.android.aapt.Resources.Boolean value) {
        value.getClass();
    if (isDynamic_ != null &&
            isDynamic_ != com.android.aapt.Resources.Boolean.getDefaultInstance()) {
          isDynamic_ =
            com.android.aapt.Resources.Boolean.newBuilder(isDynamic_).mergeFrom(value).buildPartial();
        } else {
          isDynamic_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Whether this reference is dynamic.
       * </pre>
       *
       * <code>.Boolean is_dynamic = 5;</code>
       */
      private void clearIsDynamic() {  isDynamic_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int TYPE_FLAGS_FIELD_NUMBER = 6;
      private int typeFlags_;
      /**
       * <pre>
       * The type flags used when compiling the reference. Used for substituting the contents of macros.
       * </pre>
       *
       * <code>uint32 type_flags = 6;</code>
       * @return The typeFlags.
       */
      @java.lang.Override
      public int getTypeFlags() {
        return typeFlags_;
      }
      /**
       * <pre>
       * The type flags used when compiling the reference. Used for substituting the contents of macros.
       * </pre>
       *
       * <code>uint32 type_flags = 6;</code>
       * @param value The typeFlags to set.
       */
      private void setTypeFlags(int value) {
        
        typeFlags_ = value;
      }
      /**
       * <pre>
       * The type flags used when compiling the reference. Used for substituting the contents of macros.
       * </pre>
       *
       * <code>uint32 type_flags = 6;</code>
       */
      private void clearTypeFlags() {
  
        typeFlags_ = 0;
      }
  
      public static final int ALLOW_RAW_FIELD_NUMBER = 7;
      private boolean allowRaw_;
      /**
       * <pre>
       * Whether raw string values would have been accepted in place of this reference definition. Used
       * for substituting the contents of macros.
       * </pre>
       *
       * <code>bool allow_raw = 7;</code>
       * @return The allowRaw.
       */
      @java.lang.Override
      public boolean getAllowRaw() {
        return allowRaw_;
      }
      /**
       * <pre>
       * Whether raw string values would have been accepted in place of this reference definition. Used
       * for substituting the contents of macros.
       * </pre>
       *
       * <code>bool allow_raw = 7;</code>
       * @param value The allowRaw to set.
       */
      private void setAllowRaw(boolean value) {
        
        allowRaw_ = value;
      }
      /**
       * <pre>
       * Whether raw string values would have been accepted in place of this reference definition. Used
       * for substituting the contents of macros.
       * </pre>
       *
       * <code>bool allow_raw = 7;</code>
       */
      private void clearAllowRaw() {
  
        allowRaw_ = false;
      }
  
      public static com.android.aapt.Resources.Reference parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Reference 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 com.android.aapt.Resources.Reference parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Reference 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 com.android.aapt.Resources.Reference parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Reference 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 com.android.aapt.Resources.Reference parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Reference 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 com.android.aapt.Resources.Reference parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Reference parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Reference parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Reference 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(com.android.aapt.Resources.Reference prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that is a reference to another resource. This reference can be by name or resource ID.
       * </pre>
       *
       * Protobuf type {@code Reference}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Reference, Builder> implements
          // @@protoc_insertion_point(builder_implements:Reference)
          com.android.aapt.Resources.ReferenceOrBuilder {
        // Construct using com.android.aapt.Resources.Reference.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>.Reference.Type type = 1;</code>
         * @return The enum numeric value on the wire for type.
         */
        @java.lang.Override
        public int getTypeValue() {
          return instance.getTypeValue();
        }
        /**
         * <code>.Reference.Type type = 1;</code>
         * @param value The type to set.
         * @return This builder for chaining.
         */
        public Builder setTypeValue(int value) {
          copyOnWrite();
          instance.setTypeValue(value);
          return this;
        }
        /**
         * <code>.Reference.Type type = 1;</code>
         * @return The type.
         */
        @java.lang.Override
        public com.android.aapt.Resources.Reference.Type getType() {
          return instance.getType();
        }
        /**
         * <code>.Reference.Type type = 1;</code>
         * @param value The enum numeric value on the wire for type to set.
         * @return This builder for chaining.
         */
        public Builder setType(com.android.aapt.Resources.Reference.Type value) {
          copyOnWrite();
          instance.setType(value);
          return this;
        }
        /**
         * <code>.Reference.Type type = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }
  
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the resource being referred. This is optional.
         * </pre>
         *
         * <code>uint32 id = 2;</code>
         * @return The id.
         */
        @java.lang.Override
        public int getId() {
          return instance.getId();
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the resource being referred. This is optional.
         * </pre>
         *
         * <code>uint32 id = 2;</code>
         * @param value The id to set.
         * @return This builder for chaining.
         */
        public Builder setId(int value) {
          copyOnWrite();
          instance.setId(value);
          return this;
        }
        /**
         * <pre>
         * The resource ID (0xPPTTEEEE) of the resource being referred. This is optional.
         * </pre>
         *
         * <code>uint32 id = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearId() {
          copyOnWrite();
          instance.clearId();
          return this;
        }
  
        /**
         * <pre>
         * The name of the resource being referred. This is optional if the resource ID is set.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of the resource being referred. This is optional if the resource ID is set.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of the resource being referred. This is optional if the resource ID is set.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of the resource being referred. This is optional if the resource ID is set.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of the resource being referred. This is optional if the resource ID is set.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Whether this reference is referencing a private resource (&#64;*package:type/entry).
         * </pre>
         *
         * <code>bool private = 4;</code>
         * @return The private.
         */
        @java.lang.Override
        public boolean getPrivate() {
          return instance.getPrivate();
        }
        /**
         * <pre>
         * Whether this reference is referencing a private resource (&#64;*package:type/entry).
         * </pre>
         *
         * <code>bool private = 4;</code>
         * @param value The private to set.
         * @return This builder for chaining.
         */
        public Builder setPrivate(boolean value) {
          copyOnWrite();
          instance.setPrivate(value);
          return this;
        }
        /**
         * <pre>
         * Whether this reference is referencing a private resource (&#64;*package:type/entry).
         * </pre>
         *
         * <code>bool private = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearPrivate() {
          copyOnWrite();
          instance.clearPrivate();
          return this;
        }
  
        /**
         * <pre>
         * Whether this reference is dynamic.
         * </pre>
         *
         * <code>.Boolean is_dynamic = 5;</code>
         */
        @java.lang.Override
        public boolean hasIsDynamic() {
          return instance.hasIsDynamic();
        }
        /**
         * <pre>
         * Whether this reference is dynamic.
         * </pre>
         *
         * <code>.Boolean is_dynamic = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Boolean getIsDynamic() {
          return instance.getIsDynamic();
        }
        /**
         * <pre>
         * Whether this reference is dynamic.
         * </pre>
         *
         * <code>.Boolean is_dynamic = 5;</code>
         */
        public Builder setIsDynamic(com.android.aapt.Resources.Boolean value) {
          copyOnWrite();
          instance.setIsDynamic(value);
          return this;
          }
        /**
         * <pre>
         * Whether this reference is dynamic.
         * </pre>
         *
         * <code>.Boolean is_dynamic = 5;</code>
         */
        public Builder setIsDynamic(
            com.android.aapt.Resources.Boolean.Builder builderForValue) {
          copyOnWrite();
          instance.setIsDynamic(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Whether this reference is dynamic.
         * </pre>
         *
         * <code>.Boolean is_dynamic = 5;</code>
         */
        public Builder mergeIsDynamic(com.android.aapt.Resources.Boolean value) {
          copyOnWrite();
          instance.mergeIsDynamic(value);
          return this;
        }
        /**
         * <pre>
         * Whether this reference is dynamic.
         * </pre>
         *
         * <code>.Boolean is_dynamic = 5;</code>
         */
        public Builder clearIsDynamic() {  copyOnWrite();
          instance.clearIsDynamic();
          return this;
        }
  
        /**
         * <pre>
         * The type flags used when compiling the reference. Used for substituting the contents of macros.
         * </pre>
         *
         * <code>uint32 type_flags = 6;</code>
         * @return The typeFlags.
         */
        @java.lang.Override
        public int getTypeFlags() {
          return instance.getTypeFlags();
        }
        /**
         * <pre>
         * The type flags used when compiling the reference. Used for substituting the contents of macros.
         * </pre>
         *
         * <code>uint32 type_flags = 6;</code>
         * @param value The typeFlags to set.
         * @return This builder for chaining.
         */
        public Builder setTypeFlags(int value) {
          copyOnWrite();
          instance.setTypeFlags(value);
          return this;
        }
        /**
         * <pre>
         * The type flags used when compiling the reference. Used for substituting the contents of macros.
         * </pre>
         *
         * <code>uint32 type_flags = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearTypeFlags() {
          copyOnWrite();
          instance.clearTypeFlags();
          return this;
        }
  
        /**
         * <pre>
         * Whether raw string values would have been accepted in place of this reference definition. Used
         * for substituting the contents of macros.
         * </pre>
         *
         * <code>bool allow_raw = 7;</code>
         * @return The allowRaw.
         */
        @java.lang.Override
        public boolean getAllowRaw() {
          return instance.getAllowRaw();
        }
        /**
         * <pre>
         * Whether raw string values would have been accepted in place of this reference definition. Used
         * for substituting the contents of macros.
         * </pre>
         *
         * <code>bool allow_raw = 7;</code>
         * @param value The allowRaw to set.
         * @return This builder for chaining.
         */
        public Builder setAllowRaw(boolean value) {
          copyOnWrite();
          instance.setAllowRaw(value);
          return this;
        }
        /**
         * <pre>
         * Whether raw string values would have been accepted in place of this reference definition. Used
         * for substituting the contents of macros.
         * </pre>
         *
         * <code>bool allow_raw = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearAllowRaw() {
          copyOnWrite();
          instance.clearAllowRaw();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Reference)
      }
      @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 com.android.aapt.Resources.Reference();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "type_",
                "id_",
                "name_",
                "private_",
                "isDynamic_",
                "typeFlags_",
                "allowRaw_",
              };
              java.lang.String info =
                  "\u0000\u0007\u0000\u0001\u0001\u0007\u0007\u0000\u0000\u0000\u0001\f\u0002\u000b" +
                  "\u0003\u0208\u0004\u0007\u0005\u1009\u0000\u0006\u000b\u0007\u0007";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Reference> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Reference.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Reference>(
                          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:Reference)
      private static final com.android.aapt.Resources.Reference DEFAULT_INSTANCE;
      static {
        Reference defaultInstance = new Reference();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Reference.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Reference getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Reference> PARSER;
  
      public static com.google.protobuf.Parser<Reference> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface IdOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Id)
        com.google.protobuf.MessageLiteOrBuilder {
    }
    /**
     * <pre>
     * A value that represents an ID. This is just a placeholder, as ID values are used to occupy a
     * resource ID (0xPPTTEEEE) as a unique identifier. Their value is unimportant.
     * </pre>
     *
     * Protobuf type {@code Id}
     */
    public  static final class Id extends
        com.google.protobuf.GeneratedMessageLite<
            Id, Id.Builder> implements
        // @@protoc_insertion_point(message_implements:Id)
        IdOrBuilder {
      private Id() {
      }
      public static com.android.aapt.Resources.Id parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Id 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 com.android.aapt.Resources.Id parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Id 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 com.android.aapt.Resources.Id parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Id 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 com.android.aapt.Resources.Id parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Id 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 com.android.aapt.Resources.Id parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Id parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Id parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Id 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(com.android.aapt.Resources.Id prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that represents an ID. This is just a placeholder, as ID values are used to occupy a
       * resource ID (0xPPTTEEEE) as a unique identifier. Their value is unimportant.
       * </pre>
       *
       * Protobuf type {@code Id}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Id, Builder> implements
          // @@protoc_insertion_point(builder_implements:Id)
          com.android.aapt.Resources.IdOrBuilder {
        // Construct using com.android.aapt.Resources.Id.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        // @@protoc_insertion_point(builder_scope:Id)
      }
      @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 com.android.aapt.Resources.Id();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = null;java.lang.String info =
                  "\u0000\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Id> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Id.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Id>(
                          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:Id)
      private static final com.android.aapt.Resources.Id DEFAULT_INSTANCE;
      static {
        Id defaultInstance = new Id();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Id.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Id getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Id> PARSER;
  
      public static com.google.protobuf.Parser<Id> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:String)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string value = 1;</code>
       * @return The value.
       */
      java.lang.String getValue();
      /**
       * <code>string value = 1;</code>
       * @return The bytes for value.
       */
      com.google.protobuf.ByteString
          getValueBytes();
    }
    /**
     * <pre>
     * A value that is a string.
     * </pre>
     *
     * Protobuf type {@code String}
     */
    public  static final class String extends
        com.google.protobuf.GeneratedMessageLite<
            String, String.Builder> implements
        // @@protoc_insertion_point(message_implements:String)
        StringOrBuilder {
      private String() {
        value_ = "";
      }
      public static final int VALUE_FIELD_NUMBER = 1;
      private java.lang.String value_;
      /**
       * <code>string value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <code>string value = 1;</code>
       * @return The bytes for value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <code>string value = 1;</code>
       * @param value The value to set.
       */
      private void setValue(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        value_ = value;
      }
      /**
       * <code>string value = 1;</code>
       */
      private void clearValue() {
  
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <code>string value = 1;</code>
       * @param value The bytes for value to set.
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        value_ = value.toStringUtf8();
  
      }
  
      public static com.android.aapt.Resources.String parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.String 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 com.android.aapt.Resources.String parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.String 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 com.android.aapt.Resources.String parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.String 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 com.android.aapt.Resources.String parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.String 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 com.android.aapt.Resources.String parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.String parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.String parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.String 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(com.android.aapt.Resources.String prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that is a string.
       * </pre>
       *
       * Protobuf type {@code String}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.String, Builder> implements
          // @@protoc_insertion_point(builder_implements:String)
          com.android.aapt.Resources.StringOrBuilder {
        // Construct using com.android.aapt.Resources.String.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string value = 1;</code>
         * @return The value.
         */
        @java.lang.Override
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <code>string value = 1;</code>
         * @return The bytes for value.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <code>string value = 1;</code>
         * @param value The value to set.
         * @return This builder for chaining.
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <code>string value = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <code>string value = 1;</code>
         * @param value The bytes for value to set.
         * @return This builder for chaining.
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:String)
      }
      @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 com.android.aapt.Resources.String();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "value_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.String> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.String.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.String>(
                          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:String)
      private static final com.android.aapt.Resources.String DEFAULT_INSTANCE;
      static {
        String defaultInstance = new String();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          String.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.String getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<String> PARSER;
  
      public static com.google.protobuf.Parser<String> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface RawStringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:RawString)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string value = 1;</code>
       * @return The value.
       */
      java.lang.String getValue();
      /**
       * <code>string value = 1;</code>
       * @return The bytes for value.
       */
      com.google.protobuf.ByteString
          getValueBytes();
    }
    /**
     * <pre>
     * A value that is a raw string, which is unescaped/uninterpreted. This is typically used to
     * represent the value of a style attribute before the attribute is compiled and the set of
     * allowed values is known.
     * </pre>
     *
     * Protobuf type {@code RawString}
     */
    public  static final class RawString extends
        com.google.protobuf.GeneratedMessageLite<
            RawString, RawString.Builder> implements
        // @@protoc_insertion_point(message_implements:RawString)
        RawStringOrBuilder {
      private RawString() {
        value_ = "";
      }
      public static final int VALUE_FIELD_NUMBER = 1;
      private java.lang.String value_;
      /**
       * <code>string value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <code>string value = 1;</code>
       * @return The bytes for value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <code>string value = 1;</code>
       * @param value The value to set.
       */
      private void setValue(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        value_ = value;
      }
      /**
       * <code>string value = 1;</code>
       */
      private void clearValue() {
  
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <code>string value = 1;</code>
       * @param value The bytes for value to set.
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        value_ = value.toStringUtf8();
  
      }
  
      public static com.android.aapt.Resources.RawString parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.RawString 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 com.android.aapt.Resources.RawString parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.RawString 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 com.android.aapt.Resources.RawString parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.RawString 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 com.android.aapt.Resources.RawString parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.RawString 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 com.android.aapt.Resources.RawString parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.RawString parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.RawString parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.RawString 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(com.android.aapt.Resources.RawString prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that is a raw string, which is unescaped/uninterpreted. This is typically used to
       * represent the value of a style attribute before the attribute is compiled and the set of
       * allowed values is known.
       * </pre>
       *
       * Protobuf type {@code RawString}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.RawString, Builder> implements
          // @@protoc_insertion_point(builder_implements:RawString)
          com.android.aapt.Resources.RawStringOrBuilder {
        // Construct using com.android.aapt.Resources.RawString.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string value = 1;</code>
         * @return The value.
         */
        @java.lang.Override
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <code>string value = 1;</code>
         * @return The bytes for value.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <code>string value = 1;</code>
         * @param value The value to set.
         * @return This builder for chaining.
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <code>string value = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <code>string value = 1;</code>
         * @param value The bytes for value to set.
         * @return This builder for chaining.
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:RawString)
      }
      @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 com.android.aapt.Resources.RawString();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "value_",
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u0208";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.RawString> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.RawString.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.RawString>(
                          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:RawString)
      private static final com.android.aapt.Resources.RawString DEFAULT_INSTANCE;
      static {
        RawString defaultInstance = new RawString();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          RawString.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.RawString getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<RawString> PARSER;
  
      public static com.google.protobuf.Parser<RawString> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StyledStringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:StyledString)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return The value.
       */
      java.lang.String getValue();
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return The bytes for value.
       */
      com.google.protobuf.ByteString
          getValueBytes();
  
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      java.util.List<com.android.aapt.Resources.StyledString.Span> 
          getSpanList();
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      com.android.aapt.Resources.StyledString.Span getSpan(int index);
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      int getSpanCount();
    }
    /**
     * <pre>
     * A string with styling information, like html tags that specify boldness, italics, etc.
     * </pre>
     *
     * Protobuf type {@code StyledString}
     */
    public  static final class StyledString extends
        com.google.protobuf.GeneratedMessageLite<
            StyledString, StyledString.Builder> implements
        // @@protoc_insertion_point(message_implements:StyledString)
        StyledStringOrBuilder {
      private StyledString() {
        value_ = "";
        span_ = emptyProtobufList();
      }
      public interface SpanOrBuilder extends
          // @@protoc_insertion_point(interface_extends:StyledString.Span)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>string tag = 1;</code>
         * @return The tag.
         */
        java.lang.String getTag();
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>string tag = 1;</code>
         * @return The bytes for tag.
         */
        com.google.protobuf.ByteString
            getTagBytes();
  
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 first_char = 2;</code>
         * @return The firstChar.
         */
        int getFirstChar();
  
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 last_char = 3;</code>
         * @return The lastChar.
         */
        int getLastChar();
      }
      /**
       * <pre>
       * A Span marks a region of the string text that is styled.
       * </pre>
       *
       * Protobuf type {@code StyledString.Span}
       */
      public  static final class Span extends
          com.google.protobuf.GeneratedMessageLite<
              Span, Span.Builder> implements
          // @@protoc_insertion_point(message_implements:StyledString.Span)
          SpanOrBuilder {
        private Span() {
          tag_ = "";
        }
        public static final int TAG_FIELD_NUMBER = 1;
        private java.lang.String tag_;
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>string tag = 1;</code>
         * @return The tag.
         */
        @java.lang.Override
        public java.lang.String getTag() {
          return tag_;
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>string tag = 1;</code>
         * @return The bytes for tag.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getTagBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(tag_);
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>string tag = 1;</code>
         * @param value The tag to set.
         */
        private void setTag(
            java.lang.String value) {
          java.lang.Class<?> valueClass = value.getClass();
    
          tag_ = value;
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>string tag = 1;</code>
         */
        private void clearTag() {
  
          tag_ = getDefaultInstance().getTag();
        }
        /**
         * <pre>
         * The name of the tag, and its attributes, encoded as follows:
         * tag_name;attr1=value1;attr2=value2;[...]
         * </pre>
         *
         * <code>string tag = 1;</code>
         * @param value The bytes for tag to set.
         */
        private void setTagBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          tag_ = value.toStringUtf8();
  
        }
  
        public static final int FIRST_CHAR_FIELD_NUMBER = 2;
        private int firstChar_;
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 first_char = 2;</code>
         * @return The firstChar.
         */
        @java.lang.Override
        public int getFirstChar() {
          return firstChar_;
        }
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 first_char = 2;</code>
         * @param value The firstChar to set.
         */
        private void setFirstChar(int value) {
          
          firstChar_ = value;
        }
        /**
         * <pre>
         * The first character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 first_char = 2;</code>
         */
        private void clearFirstChar() {
  
          firstChar_ = 0;
        }
  
        public static final int LAST_CHAR_FIELD_NUMBER = 3;
        private int lastChar_;
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 last_char = 3;</code>
         * @return The lastChar.
         */
        @java.lang.Override
        public int getLastChar() {
          return lastChar_;
        }
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 last_char = 3;</code>
         * @param value The lastChar to set.
         */
        private void setLastChar(int value) {
          
          lastChar_ = value;
        }
        /**
         * <pre>
         * The last character position this span applies to, in UTF-16 offset.
         * </pre>
         *
         * <code>uint32 last_char = 3;</code>
         */
        private void clearLastChar() {
  
          lastChar_ = 0;
        }
  
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }
  
        public static com.android.aapt.Resources.StyledString.Span parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.StyledString.Span parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.StyledString.Span parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }
  
        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.StyledString.Span prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * <pre>
         * A Span marks a region of the string text that is styled.
         * </pre>
         *
         * Protobuf type {@code StyledString.Span}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.StyledString.Span, Builder> implements
            // @@protoc_insertion_point(builder_implements:StyledString.Span)
            com.android.aapt.Resources.StyledString.SpanOrBuilder {
          // Construct using com.android.aapt.Resources.StyledString.Span.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>string tag = 1;</code>
           * @return The tag.
           */
          @java.lang.Override
          public java.lang.String getTag() {
            return instance.getTag();
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>string tag = 1;</code>
           * @return The bytes for tag.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getTagBytes() {
            return instance.getTagBytes();
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>string tag = 1;</code>
           * @param value The tag to set.
           * @return This builder for chaining.
           */
          public Builder setTag(
              java.lang.String value) {
            copyOnWrite();
            instance.setTag(value);
            return this;
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>string tag = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearTag() {
            copyOnWrite();
            instance.clearTag();
            return this;
          }
          /**
           * <pre>
           * The name of the tag, and its attributes, encoded as follows:
           * tag_name;attr1=value1;attr2=value2;[...]
           * </pre>
           *
           * <code>string tag = 1;</code>
           * @param value The bytes for tag to set.
           * @return This builder for chaining.
           */
          public Builder setTagBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setTagBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The first character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>uint32 first_char = 2;</code>
           * @return The firstChar.
           */
          @java.lang.Override
          public int getFirstChar() {
            return instance.getFirstChar();
          }
          /**
           * <pre>
           * The first character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>uint32 first_char = 2;</code>
           * @param value The firstChar to set.
           * @return This builder for chaining.
           */
          public Builder setFirstChar(int value) {
            copyOnWrite();
            instance.setFirstChar(value);
            return this;
          }
          /**
           * <pre>
           * The first character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>uint32 first_char = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearFirstChar() {
            copyOnWrite();
            instance.clearFirstChar();
            return this;
          }
  
          /**
           * <pre>
           * The last character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>uint32 last_char = 3;</code>
           * @return The lastChar.
           */
          @java.lang.Override
          public int getLastChar() {
            return instance.getLastChar();
          }
          /**
           * <pre>
           * The last character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>uint32 last_char = 3;</code>
           * @param value The lastChar to set.
           * @return This builder for chaining.
           */
          public Builder setLastChar(int value) {
            copyOnWrite();
            instance.setLastChar(value);
            return this;
          }
          /**
           * <pre>
           * The last character position this span applies to, in UTF-16 offset.
           * </pre>
           *
           * <code>uint32 last_char = 3;</code>
           * @return This builder for chaining.
           */
          public Builder clearLastChar() {
            copyOnWrite();
            instance.clearLastChar();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:StyledString.Span)
        }
        @java.lang.Override
        @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
        protected final java.lang.Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            java.lang.Object arg0, java.lang.Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.StyledString.Span();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = new java.lang.Object[] {
                  "tag_",
                  "firstChar_",
                  "lastChar_",
                };
                java.lang.String info =
                    "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u000b" +
                    "\u0003\u000b";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.StyledString.Span> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.StyledString.Span.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.StyledString.Span>(
                            DEFAULT_INSTANCE);
                    PARSER = parser;
                  }
                }
              }
              return parser;
          }
          case GET_MEMOIZED_IS_INITIALIZED: {
            return (byte) 1;
          }
          case SET_MEMOIZED_IS_INITIALIZED: {
            return null;
          }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:StyledString.Span)
        private static final com.android.aapt.Resources.StyledString.Span DEFAULT_INSTANCE;
        static {
          Span defaultInstance = new Span();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Span.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.StyledString.Span getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Span> PARSER;
  
        public static com.google.protobuf.Parser<Span> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int VALUE_FIELD_NUMBER = 1;
      private java.lang.String value_;
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @return The bytes for value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @param value The value to set.
       */
      private void setValue(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        value_ = value;
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>string value = 1;</code>
       */
      private void clearValue() {
  
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <pre>
       * The raw text of the string.
       * </pre>
       *
       * <code>string value = 1;</code>
       * @param value The bytes for value to set.
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        value_ = value.toStringUtf8();
  
      }
  
      public static final int SPAN_FIELD_NUMBER = 2;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.StyledString.Span> span_;
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.StyledString.Span> getSpanList() {
        return span_;
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.StyledString.SpanOrBuilder> 
          getSpanOrBuilderList() {
        return span_;
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      @java.lang.Override
      public int getSpanCount() {
        return span_.size();
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.StyledString.Span getSpan(int index) {
        return span_.get(index);
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      public com.android.aapt.Resources.StyledString.SpanOrBuilder getSpanOrBuilder(
          int index) {
        return span_.get(index);
      }
      private void ensureSpanIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.StyledString.Span> tmp = span_;
        if (!tmp.isModifiable()) {
          span_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      private void setSpan(
          int index, com.android.aapt.Resources.StyledString.Span value) {
        value.getClass();
    ensureSpanIsMutable();
        span_.set(index, value);
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      private void addSpan(com.android.aapt.Resources.StyledString.Span value) {
        value.getClass();
    ensureSpanIsMutable();
        span_.add(value);
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      private void addSpan(
          int index, com.android.aapt.Resources.StyledString.Span value) {
        value.getClass();
    ensureSpanIsMutable();
        span_.add(index, value);
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      private void addAllSpan(
          java.lang.Iterable<? extends com.android.aapt.Resources.StyledString.Span> values) {
        ensureSpanIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, span_);
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      private void clearSpan() {
        span_ = emptyProtobufList();
      }
      /**
       * <code>repeated .StyledString.Span span = 2;</code>
       */
      private void removeSpan(int index) {
        ensureSpanIsMutable();
        span_.remove(index);
      }
  
      public static com.android.aapt.Resources.StyledString parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyledString 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 com.android.aapt.Resources.StyledString parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyledString 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 com.android.aapt.Resources.StyledString parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyledString 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 com.android.aapt.Resources.StyledString parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StyledString 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 com.android.aapt.Resources.StyledString parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.StyledString parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.StyledString parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StyledString 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(com.android.aapt.Resources.StyledString prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A string with styling information, like html tags that specify boldness, italics, etc.
       * </pre>
       *
       * Protobuf type {@code StyledString}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.StyledString, Builder> implements
          // @@protoc_insertion_point(builder_implements:StyledString)
          com.android.aapt.Resources.StyledStringOrBuilder {
        // Construct using com.android.aapt.Resources.StyledString.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>string value = 1;</code>
         * @return The value.
         */
        @java.lang.Override
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>string value = 1;</code>
         * @return The bytes for value.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>string value = 1;</code>
         * @param value The value to set.
         * @return This builder for chaining.
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>string value = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <pre>
         * The raw text of the string.
         * </pre>
         *
         * <code>string value = 1;</code>
         * @param value The bytes for value to set.
         * @return This builder for chaining.
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.StyledString.Span> getSpanList() {
          return java.util.Collections.unmodifiableList(
              instance.getSpanList());
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        @java.lang.Override
        public int getSpanCount() {
          return instance.getSpanCount();
        }/**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.StyledString.Span getSpan(int index) {
          return instance.getSpan(index);
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder setSpan(
            int index, com.android.aapt.Resources.StyledString.Span value) {
          copyOnWrite();
          instance.setSpan(index, value);
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder setSpan(
            int index, com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.setSpan(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder addSpan(com.android.aapt.Resources.StyledString.Span value) {
          copyOnWrite();
          instance.addSpan(value);
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder addSpan(
            int index, com.android.aapt.Resources.StyledString.Span value) {
          copyOnWrite();
          instance.addSpan(index, value);
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder addSpan(
            com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.addSpan(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder addSpan(
            int index, com.android.aapt.Resources.StyledString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.addSpan(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder addAllSpan(
            java.lang.Iterable<? extends com.android.aapt.Resources.StyledString.Span> values) {
          copyOnWrite();
          instance.addAllSpan(values);
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder clearSpan() {
          copyOnWrite();
          instance.clearSpan();
          return this;
        }
        /**
         * <code>repeated .StyledString.Span span = 2;</code>
         */
        public Builder removeSpan(int index) {
          copyOnWrite();
          instance.removeSpan(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:StyledString)
      }
      @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 com.android.aapt.Resources.StyledString();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "value_",
                "span_",
                com.android.aapt.Resources.StyledString.Span.class,
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u0208\u0002\u001b" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.StyledString> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.StyledString.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.StyledString>(
                          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:StyledString)
      private static final com.android.aapt.Resources.StyledString DEFAULT_INSTANCE;
      static {
        StyledString defaultInstance = new StyledString();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          StyledString.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.StyledString getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<StyledString> PARSER;
  
      public static com.google.protobuf.Parser<StyledString> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface FileReferenceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:FileReference)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>string path = 1;</code>
       * @return The path.
       */
      java.lang.String getPath();
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>string path = 1;</code>
       * @return The bytes for path.
       */
      com.google.protobuf.ByteString
          getPathBytes();
  
      /**
       * <pre>
       * The type of file this path points to. For UAM bundle, this cannot be
       * BINARY_XML.
       * </pre>
       *
       * <code>.FileReference.Type type = 2;</code>
       * @return The enum numeric value on the wire for type.
       */
      int getTypeValue();
      /**
       * <pre>
       * The type of file this path points to. For UAM bundle, this cannot be
       * BINARY_XML.
       * </pre>
       *
       * <code>.FileReference.Type type = 2;</code>
       * @return The type.
       */
      com.android.aapt.Resources.FileReference.Type getType();
    }
    /**
     * <pre>
     * A value that is a reference to an external entity, like an XML file or a PNG.
     * </pre>
     *
     * Protobuf type {@code FileReference}
     */
    public  static final class FileReference extends
        com.google.protobuf.GeneratedMessageLite<
            FileReference, FileReference.Builder> implements
        // @@protoc_insertion_point(message_implements:FileReference)
        FileReferenceOrBuilder {
      private FileReference() {
        path_ = "";
      }
      /**
       * Protobuf enum {@code FileReference.Type}
       */
      public enum Type
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <code>UNKNOWN = 0;</code>
         */
        UNKNOWN(0),
        /**
         * <code>PNG = 1;</code>
         */
        PNG(1),
        /**
         * <code>BINARY_XML = 2;</code>
         */
        BINARY_XML(2),
        /**
         * <code>PROTO_XML = 3;</code>
         */
        PROTO_XML(3),
        UNRECOGNIZED(-1),
        ;
  
        /**
         * <code>UNKNOWN = 0;</code>
         */
        public static final int UNKNOWN_VALUE = 0;
        /**
         * <code>PNG = 1;</code>
         */
        public static final int PNG_VALUE = 1;
        /**
         * <code>BINARY_XML = 2;</code>
         */
        public static final int BINARY_XML_VALUE = 2;
        /**
         * <code>PROTO_XML = 3;</code>
         */
        public static final int PROTO_XML_VALUE = 3;
  
  
        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }
  
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Type valueOf(int value) {
          return forNumber(value);
        }
  
        public static Type forNumber(int value) {
          switch (value) {
            case 0: return UNKNOWN;
            case 1: return PNG;
            case 2: return BINARY_XML;
            case 3: return PROTO_XML;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Type>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Type> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Type>() {
                @java.lang.Override
                public Type findValueByNumber(int number) {
                  return Type.forNumber(number);
                }
              };
  
        public static com.google.protobuf.Internal.EnumVerifier 
            internalGetVerifier() {
          return TypeVerifier.INSTANCE;
        }
  
        private static final class TypeVerifier implements 
             com.google.protobuf.Internal.EnumVerifier { 
                static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new TypeVerifier();
                @java.lang.Override
                public boolean isInRange(int number) {
                  return Type.forNumber(number) != null;
                }
              };
  
        private final int value;
  
        private Type(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:FileReference.Type)
      }
  
      public static final int PATH_FIELD_NUMBER = 1;
      private java.lang.String path_;
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>string path = 1;</code>
       * @return The path.
       */
      @java.lang.Override
      public java.lang.String getPath() {
        return path_;
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>string path = 1;</code>
       * @return The bytes for path.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPathBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(path_);
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>string path = 1;</code>
       * @param value The path to set.
       */
      private void setPath(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        path_ = value;
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>string path = 1;</code>
       */
      private void clearPath() {
  
        path_ = getDefaultInstance().getPath();
      }
      /**
       * <pre>
       * Path to a file within the APK (typically res/type-config/entry.ext).
       * </pre>
       *
       * <code>string path = 1;</code>
       * @param value The bytes for path to set.
       */
      private void setPathBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        path_ = value.toStringUtf8();
  
      }
  
      public static final int TYPE_FIELD_NUMBER = 2;
      private int type_;
      /**
       * <pre>
       * The type of file this path points to. For UAM bundle, this cannot be
       * BINARY_XML.
       * </pre>
       *
       * <code>.FileReference.Type type = 2;</code>
       * @return The enum numeric value on the wire for type.
       */
      @java.lang.Override
      public int getTypeValue() {
        return type_;
      }
      /**
       * <pre>
       * The type of file this path points to. For UAM bundle, this cannot be
       * BINARY_XML.
       * </pre>
       *
       * <code>.FileReference.Type type = 2;</code>
       * @return The type.
       */
      @java.lang.Override
      public com.android.aapt.Resources.FileReference.Type getType() {
        com.android.aapt.Resources.FileReference.Type result = com.android.aapt.Resources.FileReference.Type.forNumber(type_);
        return result == null ? com.android.aapt.Resources.FileReference.Type.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * The type of file this path points to. For UAM bundle, this cannot be
       * BINARY_XML.
       * </pre>
       *
       * <code>.FileReference.Type type = 2;</code>
       * @param value The enum numeric value on the wire for type to set.
       */
      private void setTypeValue(int value) {
          type_ = value;
      }
      /**
       * <pre>
       * The type of file this path points to. For UAM bundle, this cannot be
       * BINARY_XML.
       * </pre>
       *
       * <code>.FileReference.Type type = 2;</code>
       * @param value The type to set.
       */
      private void setType(com.android.aapt.Resources.FileReference.Type value) {
        type_ = value.getNumber();
  
      }
      /**
       * <pre>
       * The type of file this path points to. For UAM bundle, this cannot be
       * BINARY_XML.
       * </pre>
       *
       * <code>.FileReference.Type type = 2;</code>
       */
      private void clearType() {
  
        type_ = 0;
      }
  
      public static com.android.aapt.Resources.FileReference parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.FileReference 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 com.android.aapt.Resources.FileReference parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.FileReference 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 com.android.aapt.Resources.FileReference parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.FileReference 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 com.android.aapt.Resources.FileReference parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.FileReference 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 com.android.aapt.Resources.FileReference parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.FileReference parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.FileReference parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.FileReference 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(com.android.aapt.Resources.FileReference prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that is a reference to an external entity, like an XML file or a PNG.
       * </pre>
       *
       * Protobuf type {@code FileReference}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.FileReference, Builder> implements
          // @@protoc_insertion_point(builder_implements:FileReference)
          com.android.aapt.Resources.FileReferenceOrBuilder {
        // Construct using com.android.aapt.Resources.FileReference.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>string path = 1;</code>
         * @return The path.
         */
        @java.lang.Override
        public java.lang.String getPath() {
          return instance.getPath();
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>string path = 1;</code>
         * @return The bytes for path.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getPathBytes() {
          return instance.getPathBytes();
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>string path = 1;</code>
         * @param value The path to set.
         * @return This builder for chaining.
         */
        public Builder setPath(
            java.lang.String value) {
          copyOnWrite();
          instance.setPath(value);
          return this;
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>string path = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPath() {
          copyOnWrite();
          instance.clearPath();
          return this;
        }
        /**
         * <pre>
         * Path to a file within the APK (typically res/type-config/entry.ext).
         * </pre>
         *
         * <code>string path = 1;</code>
         * @param value The bytes for path to set.
         * @return This builder for chaining.
         */
        public Builder setPathBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPathBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The type of file this path points to. For UAM bundle, this cannot be
         * BINARY_XML.
         * </pre>
         *
         * <code>.FileReference.Type type = 2;</code>
         * @return The enum numeric value on the wire for type.
         */
        @java.lang.Override
        public int getTypeValue() {
          return instance.getTypeValue();
        }
        /**
         * <pre>
         * The type of file this path points to. For UAM bundle, this cannot be
         * BINARY_XML.
         * </pre>
         *
         * <code>.FileReference.Type type = 2;</code>
         * @param value The type to set.
         * @return This builder for chaining.
         */
        public Builder setTypeValue(int value) {
          copyOnWrite();
          instance.setTypeValue(value);
          return this;
        }
        /**
         * <pre>
         * The type of file this path points to. For UAM bundle, this cannot be
         * BINARY_XML.
         * </pre>
         *
         * <code>.FileReference.Type type = 2;</code>
         * @return The type.
         */
        @java.lang.Override
        public com.android.aapt.Resources.FileReference.Type getType() {
          return instance.getType();
        }
        /**
         * <pre>
         * The type of file this path points to. For UAM bundle, this cannot be
         * BINARY_XML.
         * </pre>
         *
         * <code>.FileReference.Type type = 2;</code>
         * @param value The enum numeric value on the wire for type to set.
         * @return This builder for chaining.
         */
        public Builder setType(com.android.aapt.Resources.FileReference.Type value) {
          copyOnWrite();
          instance.setType(value);
          return this;
        }
        /**
         * <pre>
         * The type of file this path points to. For UAM bundle, this cannot be
         * BINARY_XML.
         * </pre>
         *
         * <code>.FileReference.Type type = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearType() {
          copyOnWrite();
          instance.clearType();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:FileReference)
      }
      @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 com.android.aapt.Resources.FileReference();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "path_",
                "type_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\f" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.FileReference> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.FileReference.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.FileReference>(
                          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:FileReference)
      private static final com.android.aapt.Resources.FileReference DEFAULT_INSTANCE;
      static {
        FileReference defaultInstance = new FileReference();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          FileReference.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.FileReference getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<FileReference> PARSER;
  
      public static com.google.protobuf.Parser<FileReference> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface PrimitiveOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Primitive)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.Primitive.NullType null_value = 1;</code>
       * @return Whether the nullValue field is set.
       */
      boolean hasNullValue();
      /**
       * <code>.Primitive.NullType null_value = 1;</code>
       * @return The nullValue.
       */
      com.android.aapt.Resources.Primitive.NullType getNullValue();
  
      /**
       * <code>.Primitive.EmptyType empty_value = 2;</code>
       * @return Whether the emptyValue field is set.
       */
      boolean hasEmptyValue();
      /**
       * <code>.Primitive.EmptyType empty_value = 2;</code>
       * @return The emptyValue.
       */
      com.android.aapt.Resources.Primitive.EmptyType getEmptyValue();
  
      /**
       * <code>float float_value = 3;</code>
       * @return Whether the floatValue field is set.
       */
      boolean hasFloatValue();
      /**
       * <code>float float_value = 3;</code>
       * @return The floatValue.
       */
      float getFloatValue();
  
      /**
       * <code>uint32 dimension_value = 13;</code>
       * @return Whether the dimensionValue field is set.
       */
      boolean hasDimensionValue();
      /**
       * <code>uint32 dimension_value = 13;</code>
       * @return The dimensionValue.
       */
      int getDimensionValue();
  
      /**
       * <code>uint32 fraction_value = 14;</code>
       * @return Whether the fractionValue field is set.
       */
      boolean hasFractionValue();
      /**
       * <code>uint32 fraction_value = 14;</code>
       * @return The fractionValue.
       */
      int getFractionValue();
  
      /**
       * <code>int32 int_decimal_value = 6;</code>
       * @return Whether the intDecimalValue field is set.
       */
      boolean hasIntDecimalValue();
      /**
       * <code>int32 int_decimal_value = 6;</code>
       * @return The intDecimalValue.
       */
      int getIntDecimalValue();
  
      /**
       * <code>uint32 int_hexadecimal_value = 7;</code>
       * @return Whether the intHexadecimalValue field is set.
       */
      boolean hasIntHexadecimalValue();
      /**
       * <code>uint32 int_hexadecimal_value = 7;</code>
       * @return The intHexadecimalValue.
       */
      int getIntHexadecimalValue();
  
      /**
       * <code>bool boolean_value = 8;</code>
       * @return Whether the booleanValue field is set.
       */
      boolean hasBooleanValue();
      /**
       * <code>bool boolean_value = 8;</code>
       * @return The booleanValue.
       */
      boolean getBooleanValue();
  
      /**
       * <code>uint32 color_argb8_value = 9;</code>
       * @return Whether the colorArgb8Value field is set.
       */
      boolean hasColorArgb8Value();
      /**
       * <code>uint32 color_argb8_value = 9;</code>
       * @return The colorArgb8Value.
       */
      int getColorArgb8Value();
  
      /**
       * <code>uint32 color_rgb8_value = 10;</code>
       * @return Whether the colorRgb8Value field is set.
       */
      boolean hasColorRgb8Value();
      /**
       * <code>uint32 color_rgb8_value = 10;</code>
       * @return The colorRgb8Value.
       */
      int getColorRgb8Value();
  
      /**
       * <code>uint32 color_argb4_value = 11;</code>
       * @return Whether the colorArgb4Value field is set.
       */
      boolean hasColorArgb4Value();
      /**
       * <code>uint32 color_argb4_value = 11;</code>
       * @return The colorArgb4Value.
       */
      int getColorArgb4Value();
  
      /**
       * <code>uint32 color_rgb4_value = 12;</code>
       * @return Whether the colorRgb4Value field is set.
       */
      boolean hasColorRgb4Value();
      /**
       * <code>uint32 color_rgb4_value = 12;</code>
       * @return The colorRgb4Value.
       */
      int getColorRgb4Value();
  
      /**
       * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
       * @deprecated Primitive.dimension_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=337
       * @return Whether the dimensionValueDeprecated field is set.
       */
      @java.lang.Deprecated boolean hasDimensionValueDeprecated();
      /**
       * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
       * @deprecated Primitive.dimension_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=337
       * @return The dimensionValueDeprecated.
       */
      @java.lang.Deprecated float getDimensionValueDeprecated();
  
      /**
       * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
       * @deprecated Primitive.fraction_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=338
       * @return Whether the fractionValueDeprecated field is set.
       */
      @java.lang.Deprecated boolean hasFractionValueDeprecated();
      /**
       * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
       * @deprecated Primitive.fraction_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=338
       * @return The fractionValueDeprecated.
       */
      @java.lang.Deprecated float getFractionValueDeprecated();
  
      public com.android.aapt.Resources.Primitive.OneofValueCase getOneofValueCase();
    }
    /**
     * <pre>
     * A value that represents a primitive data type (float, int, boolean, etc.).
     * Refer to Res_value in ResourceTypes.h for info on types and formatting
     * </pre>
     *
     * Protobuf type {@code Primitive}
     */
    public  static final class Primitive extends
        com.google.protobuf.GeneratedMessageLite<
            Primitive, Primitive.Builder> implements
        // @@protoc_insertion_point(message_implements:Primitive)
        PrimitiveOrBuilder {
      private Primitive() {
      }
      public interface NullTypeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Primitive.NullType)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * Protobuf type {@code Primitive.NullType}
       */
      public  static final class NullType extends
          com.google.protobuf.GeneratedMessageLite<
              NullType, NullType.Builder> implements
          // @@protoc_insertion_point(message_implements:Primitive.NullType)
          NullTypeOrBuilder {
        private NullType() {
        }
        public static com.android.aapt.Resources.Primitive.NullType parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Primitive.NullType 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 com.android.aapt.Resources.Primitive.NullType parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Primitive.NullType 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 com.android.aapt.Resources.Primitive.NullType parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Primitive.NullType 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 com.android.aapt.Resources.Primitive.NullType parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Primitive.NullType 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 com.android.aapt.Resources.Primitive.NullType parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.Primitive.NullType parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Primitive.NullType parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Primitive.NullType 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(com.android.aapt.Resources.Primitive.NullType prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * Protobuf type {@code Primitive.NullType}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Primitive.NullType, Builder> implements
            // @@protoc_insertion_point(builder_implements:Primitive.NullType)
            com.android.aapt.Resources.Primitive.NullTypeOrBuilder {
          // Construct using com.android.aapt.Resources.Primitive.NullType.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          // @@protoc_insertion_point(builder_scope:Primitive.NullType)
        }
        @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 com.android.aapt.Resources.Primitive.NullType();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = null;java.lang.String info =
                    "\u0000\u0000";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.Primitive.NullType> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.Primitive.NullType.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.Primitive.NullType>(
                            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:Primitive.NullType)
        private static final com.android.aapt.Resources.Primitive.NullType DEFAULT_INSTANCE;
        static {
          NullType defaultInstance = new NullType();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            NullType.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.Primitive.NullType getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<NullType> PARSER;
  
        public static com.google.protobuf.Parser<NullType> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public interface EmptyTypeOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Primitive.EmptyType)
          com.google.protobuf.MessageLiteOrBuilder {
      }
      /**
       * Protobuf type {@code Primitive.EmptyType}
       */
      public  static final class EmptyType extends
          com.google.protobuf.GeneratedMessageLite<
              EmptyType, EmptyType.Builder> implements
          // @@protoc_insertion_point(message_implements:Primitive.EmptyType)
          EmptyTypeOrBuilder {
        private EmptyType() {
        }
        public static com.android.aapt.Resources.Primitive.EmptyType parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Primitive.EmptyType 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 com.android.aapt.Resources.Primitive.EmptyType parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Primitive.EmptyType 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 com.android.aapt.Resources.Primitive.EmptyType parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Primitive.EmptyType 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 com.android.aapt.Resources.Primitive.EmptyType parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Primitive.EmptyType 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 com.android.aapt.Resources.Primitive.EmptyType parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.Primitive.EmptyType parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Primitive.EmptyType parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Primitive.EmptyType 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(com.android.aapt.Resources.Primitive.EmptyType prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * Protobuf type {@code Primitive.EmptyType}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Primitive.EmptyType, Builder> implements
            // @@protoc_insertion_point(builder_implements:Primitive.EmptyType)
            com.android.aapt.Resources.Primitive.EmptyTypeOrBuilder {
          // Construct using com.android.aapt.Resources.Primitive.EmptyType.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          // @@protoc_insertion_point(builder_scope:Primitive.EmptyType)
        }
        @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 com.android.aapt.Resources.Primitive.EmptyType();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = null;java.lang.String info =
                    "\u0000\u0000";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.Primitive.EmptyType> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.Primitive.EmptyType.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.Primitive.EmptyType>(
                            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:Primitive.EmptyType)
        private static final com.android.aapt.Resources.Primitive.EmptyType DEFAULT_INSTANCE;
        static {
          EmptyType defaultInstance = new EmptyType();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            EmptyType.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.Primitive.EmptyType getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<EmptyType> PARSER;
  
        public static com.google.protobuf.Parser<EmptyType> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      private int oneofValueCase_ = 0;
      private java.lang.Object oneofValue_;
      public enum OneofValueCase {
        NULL_VALUE(1),
        EMPTY_VALUE(2),
        FLOAT_VALUE(3),
        DIMENSION_VALUE(13),
        FRACTION_VALUE(14),
        INT_DECIMAL_VALUE(6),
        INT_HEXADECIMAL_VALUE(7),
        BOOLEAN_VALUE(8),
        COLOR_ARGB8_VALUE(9),
        COLOR_RGB8_VALUE(10),
        COLOR_ARGB4_VALUE(11),
        COLOR_RGB4_VALUE(12),
        DIMENSION_VALUE_DEPRECATED(4),
        FRACTION_VALUE_DEPRECATED(5),
        ONEOFVALUE_NOT_SET(0);
        private final int value;
        private OneofValueCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static OneofValueCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static OneofValueCase forNumber(int value) {
          switch (value) {
            case 1: return NULL_VALUE;
            case 2: return EMPTY_VALUE;
            case 3: return FLOAT_VALUE;
            case 13: return DIMENSION_VALUE;
            case 14: return FRACTION_VALUE;
            case 6: return INT_DECIMAL_VALUE;
            case 7: return INT_HEXADECIMAL_VALUE;
            case 8: return BOOLEAN_VALUE;
            case 9: return COLOR_ARGB8_VALUE;
            case 10: return COLOR_RGB8_VALUE;
            case 11: return COLOR_ARGB4_VALUE;
            case 12: return COLOR_RGB4_VALUE;
            case 4: return DIMENSION_VALUE_DEPRECATED;
            case 5: return FRACTION_VALUE_DEPRECATED;
            case 0: return ONEOFVALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      @java.lang.Override
      public OneofValueCase
      getOneofValueCase() {
        return OneofValueCase.forNumber(
            oneofValueCase_);
      }
  
      private void clearOneofValue() {
        oneofValueCase_ = 0;
        oneofValue_ = null;
      }
  
      public static final int NULL_VALUE_FIELD_NUMBER = 1;
      /**
       * <code>.Primitive.NullType null_value = 1;</code>
       */
      @java.lang.Override
      public boolean hasNullValue() {
        return oneofValueCase_ == 1;
      }
      /**
       * <code>.Primitive.NullType null_value = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Primitive.NullType getNullValue() {
        if (oneofValueCase_ == 1) {
           return (com.android.aapt.Resources.Primitive.NullType) oneofValue_;
        }
        return com.android.aapt.Resources.Primitive.NullType.getDefaultInstance();
      }
      /**
       * <code>.Primitive.NullType null_value = 1;</code>
       */
      private void setNullValue(com.android.aapt.Resources.Primitive.NullType value) {
        value.getClass();
    oneofValue_ = value;
        oneofValueCase_ = 1;
      }
      /**
       * <code>.Primitive.NullType null_value = 1;</code>
       */
      private void mergeNullValue(com.android.aapt.Resources.Primitive.NullType value) {
        value.getClass();
    if (oneofValueCase_ == 1 &&
            oneofValue_ != com.android.aapt.Resources.Primitive.NullType.getDefaultInstance()) {
          oneofValue_ = com.android.aapt.Resources.Primitive.NullType.newBuilder((com.android.aapt.Resources.Primitive.NullType) oneofValue_)
              .mergeFrom(value).buildPartial();
        } else {
          oneofValue_ = value;
        }
        oneofValueCase_ = 1;
      }
      /**
       * <code>.Primitive.NullType null_value = 1;</code>
       */
      private void clearNullValue() {
        if (oneofValueCase_ == 1) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int EMPTY_VALUE_FIELD_NUMBER = 2;
      /**
       * <code>.Primitive.EmptyType empty_value = 2;</code>
       */
      @java.lang.Override
      public boolean hasEmptyValue() {
        return oneofValueCase_ == 2;
      }
      /**
       * <code>.Primitive.EmptyType empty_value = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Primitive.EmptyType getEmptyValue() {
        if (oneofValueCase_ == 2) {
           return (com.android.aapt.Resources.Primitive.EmptyType) oneofValue_;
        }
        return com.android.aapt.Resources.Primitive.EmptyType.getDefaultInstance();
      }
      /**
       * <code>.Primitive.EmptyType empty_value = 2;</code>
       */
      private void setEmptyValue(com.android.aapt.Resources.Primitive.EmptyType value) {
        value.getClass();
    oneofValue_ = value;
        oneofValueCase_ = 2;
      }
      /**
       * <code>.Primitive.EmptyType empty_value = 2;</code>
       */
      private void mergeEmptyValue(com.android.aapt.Resources.Primitive.EmptyType value) {
        value.getClass();
    if (oneofValueCase_ == 2 &&
            oneofValue_ != com.android.aapt.Resources.Primitive.EmptyType.getDefaultInstance()) {
          oneofValue_ = com.android.aapt.Resources.Primitive.EmptyType.newBuilder((com.android.aapt.Resources.Primitive.EmptyType) oneofValue_)
              .mergeFrom(value).buildPartial();
        } else {
          oneofValue_ = value;
        }
        oneofValueCase_ = 2;
      }
      /**
       * <code>.Primitive.EmptyType empty_value = 2;</code>
       */
      private void clearEmptyValue() {
        if (oneofValueCase_ == 2) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
      /**
       * <code>float float_value = 3;</code>
       * @return Whether the floatValue field is set.
       */
      @java.lang.Override
      public boolean hasFloatValue() {
        return oneofValueCase_ == 3;
      }
      /**
       * <code>float float_value = 3;</code>
       * @return The floatValue.
       */
      @java.lang.Override
      public float getFloatValue() {
        if (oneofValueCase_ == 3) {
          return (java.lang.Float) oneofValue_;
        }
        return 0F;
      }
      /**
       * <code>float float_value = 3;</code>
       * @param value The floatValue to set.
       */
      private void setFloatValue(float value) {
        oneofValueCase_ = 3;
        oneofValue_ = value;
      }
      /**
       * <code>float float_value = 3;</code>
       */
      private void clearFloatValue() {
        if (oneofValueCase_ == 3) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int DIMENSION_VALUE_FIELD_NUMBER = 13;
      /**
       * <code>uint32 dimension_value = 13;</code>
       * @return Whether the dimensionValue field is set.
       */
      @java.lang.Override
      public boolean hasDimensionValue() {
        return oneofValueCase_ == 13;
      }
      /**
       * <code>uint32 dimension_value = 13;</code>
       * @return The dimensionValue.
       */
      @java.lang.Override
      public int getDimensionValue() {
        if (oneofValueCase_ == 13) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>uint32 dimension_value = 13;</code>
       * @param value The dimensionValue to set.
       */
      private void setDimensionValue(int value) {
        oneofValueCase_ = 13;
        oneofValue_ = value;
      }
      /**
       * <code>uint32 dimension_value = 13;</code>
       */
      private void clearDimensionValue() {
        if (oneofValueCase_ == 13) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int FRACTION_VALUE_FIELD_NUMBER = 14;
      /**
       * <code>uint32 fraction_value = 14;</code>
       * @return Whether the fractionValue field is set.
       */
      @java.lang.Override
      public boolean hasFractionValue() {
        return oneofValueCase_ == 14;
      }
      /**
       * <code>uint32 fraction_value = 14;</code>
       * @return The fractionValue.
       */
      @java.lang.Override
      public int getFractionValue() {
        if (oneofValueCase_ == 14) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>uint32 fraction_value = 14;</code>
       * @param value The fractionValue to set.
       */
      private void setFractionValue(int value) {
        oneofValueCase_ = 14;
        oneofValue_ = value;
      }
      /**
       * <code>uint32 fraction_value = 14;</code>
       */
      private void clearFractionValue() {
        if (oneofValueCase_ == 14) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int INT_DECIMAL_VALUE_FIELD_NUMBER = 6;
      /**
       * <code>int32 int_decimal_value = 6;</code>
       * @return Whether the intDecimalValue field is set.
       */
      @java.lang.Override
      public boolean hasIntDecimalValue() {
        return oneofValueCase_ == 6;
      }
      /**
       * <code>int32 int_decimal_value = 6;</code>
       * @return The intDecimalValue.
       */
      @java.lang.Override
      public int getIntDecimalValue() {
        if (oneofValueCase_ == 6) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>int32 int_decimal_value = 6;</code>
       * @param value The intDecimalValue to set.
       */
      private void setIntDecimalValue(int value) {
        oneofValueCase_ = 6;
        oneofValue_ = value;
      }
      /**
       * <code>int32 int_decimal_value = 6;</code>
       */
      private void clearIntDecimalValue() {
        if (oneofValueCase_ == 6) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int INT_HEXADECIMAL_VALUE_FIELD_NUMBER = 7;
      /**
       * <code>uint32 int_hexadecimal_value = 7;</code>
       * @return Whether the intHexadecimalValue field is set.
       */
      @java.lang.Override
      public boolean hasIntHexadecimalValue() {
        return oneofValueCase_ == 7;
      }
      /**
       * <code>uint32 int_hexadecimal_value = 7;</code>
       * @return The intHexadecimalValue.
       */
      @java.lang.Override
      public int getIntHexadecimalValue() {
        if (oneofValueCase_ == 7) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>uint32 int_hexadecimal_value = 7;</code>
       * @param value The intHexadecimalValue to set.
       */
      private void setIntHexadecimalValue(int value) {
        oneofValueCase_ = 7;
        oneofValue_ = value;
      }
      /**
       * <code>uint32 int_hexadecimal_value = 7;</code>
       */
      private void clearIntHexadecimalValue() {
        if (oneofValueCase_ == 7) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int BOOLEAN_VALUE_FIELD_NUMBER = 8;
      /**
       * <code>bool boolean_value = 8;</code>
       * @return Whether the booleanValue field is set.
       */
      @java.lang.Override
      public boolean hasBooleanValue() {
        return oneofValueCase_ == 8;
      }
      /**
       * <code>bool boolean_value = 8;</code>
       * @return The booleanValue.
       */
      @java.lang.Override
      public boolean getBooleanValue() {
        if (oneofValueCase_ == 8) {
          return (java.lang.Boolean) oneofValue_;
        }
        return false;
      }
      /**
       * <code>bool boolean_value = 8;</code>
       * @param value The booleanValue to set.
       */
      private void setBooleanValue(boolean value) {
        oneofValueCase_ = 8;
        oneofValue_ = value;
      }
      /**
       * <code>bool boolean_value = 8;</code>
       */
      private void clearBooleanValue() {
        if (oneofValueCase_ == 8) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int COLOR_ARGB8_VALUE_FIELD_NUMBER = 9;
      /**
       * <code>uint32 color_argb8_value = 9;</code>
       * @return Whether the colorArgb8Value field is set.
       */
      @java.lang.Override
      public boolean hasColorArgb8Value() {
        return oneofValueCase_ == 9;
      }
      /**
       * <code>uint32 color_argb8_value = 9;</code>
       * @return The colorArgb8Value.
       */
      @java.lang.Override
      public int getColorArgb8Value() {
        if (oneofValueCase_ == 9) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>uint32 color_argb8_value = 9;</code>
       * @param value The colorArgb8Value to set.
       */
      private void setColorArgb8Value(int value) {
        oneofValueCase_ = 9;
        oneofValue_ = value;
      }
      /**
       * <code>uint32 color_argb8_value = 9;</code>
       */
      private void clearColorArgb8Value() {
        if (oneofValueCase_ == 9) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int COLOR_RGB8_VALUE_FIELD_NUMBER = 10;
      /**
       * <code>uint32 color_rgb8_value = 10;</code>
       * @return Whether the colorRgb8Value field is set.
       */
      @java.lang.Override
      public boolean hasColorRgb8Value() {
        return oneofValueCase_ == 10;
      }
      /**
       * <code>uint32 color_rgb8_value = 10;</code>
       * @return The colorRgb8Value.
       */
      @java.lang.Override
      public int getColorRgb8Value() {
        if (oneofValueCase_ == 10) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>uint32 color_rgb8_value = 10;</code>
       * @param value The colorRgb8Value to set.
       */
      private void setColorRgb8Value(int value) {
        oneofValueCase_ = 10;
        oneofValue_ = value;
      }
      /**
       * <code>uint32 color_rgb8_value = 10;</code>
       */
      private void clearColorRgb8Value() {
        if (oneofValueCase_ == 10) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int COLOR_ARGB4_VALUE_FIELD_NUMBER = 11;
      /**
       * <code>uint32 color_argb4_value = 11;</code>
       * @return Whether the colorArgb4Value field is set.
       */
      @java.lang.Override
      public boolean hasColorArgb4Value() {
        return oneofValueCase_ == 11;
      }
      /**
       * <code>uint32 color_argb4_value = 11;</code>
       * @return The colorArgb4Value.
       */
      @java.lang.Override
      public int getColorArgb4Value() {
        if (oneofValueCase_ == 11) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>uint32 color_argb4_value = 11;</code>
       * @param value The colorArgb4Value to set.
       */
      private void setColorArgb4Value(int value) {
        oneofValueCase_ = 11;
        oneofValue_ = value;
      }
      /**
       * <code>uint32 color_argb4_value = 11;</code>
       */
      private void clearColorArgb4Value() {
        if (oneofValueCase_ == 11) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int COLOR_RGB4_VALUE_FIELD_NUMBER = 12;
      /**
       * <code>uint32 color_rgb4_value = 12;</code>
       * @return Whether the colorRgb4Value field is set.
       */
      @java.lang.Override
      public boolean hasColorRgb4Value() {
        return oneofValueCase_ == 12;
      }
      /**
       * <code>uint32 color_rgb4_value = 12;</code>
       * @return The colorRgb4Value.
       */
      @java.lang.Override
      public int getColorRgb4Value() {
        if (oneofValueCase_ == 12) {
          return (java.lang.Integer) oneofValue_;
        }
        return 0;
      }
      /**
       * <code>uint32 color_rgb4_value = 12;</code>
       * @param value The colorRgb4Value to set.
       */
      private void setColorRgb4Value(int value) {
        oneofValueCase_ = 12;
        oneofValue_ = value;
      }
      /**
       * <code>uint32 color_rgb4_value = 12;</code>
       */
      private void clearColorRgb4Value() {
        if (oneofValueCase_ == 12) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int DIMENSION_VALUE_DEPRECATED_FIELD_NUMBER = 4;
      /**
       * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
       * @deprecated Primitive.dimension_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=337
       * @return Whether the dimensionValueDeprecated field is set.
       */
      @java.lang.Override
      @java.lang.Deprecated public boolean hasDimensionValueDeprecated() {
        return oneofValueCase_ == 4;
      }
      /**
       * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
       * @deprecated Primitive.dimension_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=337
       * @return The dimensionValueDeprecated.
       */
      @java.lang.Override
      @java.lang.Deprecated public float getDimensionValueDeprecated() {
        if (oneofValueCase_ == 4) {
          return (java.lang.Float) oneofValue_;
        }
        return 0F;
      }
      /**
       * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
       * @deprecated Primitive.dimension_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=337
       * @param value The dimensionValueDeprecated to set.
       */
      private void setDimensionValueDeprecated(float value) {
        oneofValueCase_ = 4;
        oneofValue_ = value;
      }
      /**
       * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
       * @deprecated Primitive.dimension_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=337
       */
      private void clearDimensionValueDeprecated() {
        if (oneofValueCase_ == 4) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static final int FRACTION_VALUE_DEPRECATED_FIELD_NUMBER = 5;
      /**
       * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
       * @deprecated Primitive.fraction_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=338
       * @return Whether the fractionValueDeprecated field is set.
       */
      @java.lang.Override
      @java.lang.Deprecated public boolean hasFractionValueDeprecated() {
        return oneofValueCase_ == 5;
      }
      /**
       * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
       * @deprecated Primitive.fraction_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=338
       * @return The fractionValueDeprecated.
       */
      @java.lang.Override
      @java.lang.Deprecated public float getFractionValueDeprecated() {
        if (oneofValueCase_ == 5) {
          return (java.lang.Float) oneofValue_;
        }
        return 0F;
      }
      /**
       * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
       * @deprecated Primitive.fraction_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=338
       * @param value The fractionValueDeprecated to set.
       */
      private void setFractionValueDeprecated(float value) {
        oneofValueCase_ = 5;
        oneofValue_ = value;
      }
      /**
       * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
       * @deprecated Primitive.fraction_value_deprecated is deprecated.
       *     See com/android/aapt/Resources.proto;l=338
       */
      private void clearFractionValueDeprecated() {
        if (oneofValueCase_ == 5) {
          oneofValueCase_ = 0;
          oneofValue_ = null;
        }
      }
  
      public static com.android.aapt.Resources.Primitive parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Primitive 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 com.android.aapt.Resources.Primitive parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Primitive 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 com.android.aapt.Resources.Primitive parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Primitive 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 com.android.aapt.Resources.Primitive parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Primitive 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 com.android.aapt.Resources.Primitive parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Primitive parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Primitive parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Primitive 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(com.android.aapt.Resources.Primitive prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a primitive data type (float, int, boolean, etc.).
       * Refer to Res_value in ResourceTypes.h for info on types and formatting
       * </pre>
       *
       * Protobuf type {@code Primitive}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Primitive, Builder> implements
          // @@protoc_insertion_point(builder_implements:Primitive)
          com.android.aapt.Resources.PrimitiveOrBuilder {
        // Construct using com.android.aapt.Resources.Primitive.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
        @java.lang.Override
        public OneofValueCase
            getOneofValueCase() {
          return instance.getOneofValueCase();
        }
  
        public Builder clearOneofValue() {
          copyOnWrite();
          instance.clearOneofValue();
          return this;
        }
  
  
        /**
         * <code>.Primitive.NullType null_value = 1;</code>
         */
        @java.lang.Override
        public boolean hasNullValue() {
          return instance.hasNullValue();
        }
        /**
         * <code>.Primitive.NullType null_value = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Primitive.NullType getNullValue() {
          return instance.getNullValue();
        }
        /**
         * <code>.Primitive.NullType null_value = 1;</code>
         */
        public Builder setNullValue(com.android.aapt.Resources.Primitive.NullType value) {
          copyOnWrite();
          instance.setNullValue(value);
          return this;
        }
        /**
         * <code>.Primitive.NullType null_value = 1;</code>
         */
        public Builder setNullValue(
            com.android.aapt.Resources.Primitive.NullType.Builder builderForValue) {
          copyOnWrite();
          instance.setNullValue(builderForValue.build());
          return this;
        }
        /**
         * <code>.Primitive.NullType null_value = 1;</code>
         */
        public Builder mergeNullValue(com.android.aapt.Resources.Primitive.NullType value) {
          copyOnWrite();
          instance.mergeNullValue(value);
          return this;
        }
        /**
         * <code>.Primitive.NullType null_value = 1;</code>
         */
        public Builder clearNullValue() {
          copyOnWrite();
          instance.clearNullValue();
          return this;
        }
  
        /**
         * <code>.Primitive.EmptyType empty_value = 2;</code>
         */
        @java.lang.Override
        public boolean hasEmptyValue() {
          return instance.hasEmptyValue();
        }
        /**
         * <code>.Primitive.EmptyType empty_value = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Primitive.EmptyType getEmptyValue() {
          return instance.getEmptyValue();
        }
        /**
         * <code>.Primitive.EmptyType empty_value = 2;</code>
         */
        public Builder setEmptyValue(com.android.aapt.Resources.Primitive.EmptyType value) {
          copyOnWrite();
          instance.setEmptyValue(value);
          return this;
        }
        /**
         * <code>.Primitive.EmptyType empty_value = 2;</code>
         */
        public Builder setEmptyValue(
            com.android.aapt.Resources.Primitive.EmptyType.Builder builderForValue) {
          copyOnWrite();
          instance.setEmptyValue(builderForValue.build());
          return this;
        }
        /**
         * <code>.Primitive.EmptyType empty_value = 2;</code>
         */
        public Builder mergeEmptyValue(com.android.aapt.Resources.Primitive.EmptyType value) {
          copyOnWrite();
          instance.mergeEmptyValue(value);
          return this;
        }
        /**
         * <code>.Primitive.EmptyType empty_value = 2;</code>
         */
        public Builder clearEmptyValue() {
          copyOnWrite();
          instance.clearEmptyValue();
          return this;
        }
  
        /**
         * <code>float float_value = 3;</code>
         * @return Whether the floatValue field is set.
         */
        @java.lang.Override
        public boolean hasFloatValue() {
          return instance.hasFloatValue();
        }
        /**
         * <code>float float_value = 3;</code>
         * @return The floatValue.
         */
        @java.lang.Override
        public float getFloatValue() {
          return instance.getFloatValue();
        }
        /**
         * <code>float float_value = 3;</code>
         * @param value The floatValue to set.
         * @return This builder for chaining.
         */
        public Builder setFloatValue(float value) {
          copyOnWrite();
          instance.setFloatValue(value);
          return this;
        }
        /**
         * <code>float float_value = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearFloatValue() {
          copyOnWrite();
          instance.clearFloatValue();
          return this;
        }
  
        /**
         * <code>uint32 dimension_value = 13;</code>
         * @return Whether the dimensionValue field is set.
         */
        @java.lang.Override
        public boolean hasDimensionValue() {
          return instance.hasDimensionValue();
        }
        /**
         * <code>uint32 dimension_value = 13;</code>
         * @return The dimensionValue.
         */
        @java.lang.Override
        public int getDimensionValue() {
          return instance.getDimensionValue();
        }
        /**
         * <code>uint32 dimension_value = 13;</code>
         * @param value The dimensionValue to set.
         * @return This builder for chaining.
         */
        public Builder setDimensionValue(int value) {
          copyOnWrite();
          instance.setDimensionValue(value);
          return this;
        }
        /**
         * <code>uint32 dimension_value = 13;</code>
         * @return This builder for chaining.
         */
        public Builder clearDimensionValue() {
          copyOnWrite();
          instance.clearDimensionValue();
          return this;
        }
  
        /**
         * <code>uint32 fraction_value = 14;</code>
         * @return Whether the fractionValue field is set.
         */
        @java.lang.Override
        public boolean hasFractionValue() {
          return instance.hasFractionValue();
        }
        /**
         * <code>uint32 fraction_value = 14;</code>
         * @return The fractionValue.
         */
        @java.lang.Override
        public int getFractionValue() {
          return instance.getFractionValue();
        }
        /**
         * <code>uint32 fraction_value = 14;</code>
         * @param value The fractionValue to set.
         * @return This builder for chaining.
         */
        public Builder setFractionValue(int value) {
          copyOnWrite();
          instance.setFractionValue(value);
          return this;
        }
        /**
         * <code>uint32 fraction_value = 14;</code>
         * @return This builder for chaining.
         */
        public Builder clearFractionValue() {
          copyOnWrite();
          instance.clearFractionValue();
          return this;
        }
  
        /**
         * <code>int32 int_decimal_value = 6;</code>
         * @return Whether the intDecimalValue field is set.
         */
        @java.lang.Override
        public boolean hasIntDecimalValue() {
          return instance.hasIntDecimalValue();
        }
        /**
         * <code>int32 int_decimal_value = 6;</code>
         * @return The intDecimalValue.
         */
        @java.lang.Override
        public int getIntDecimalValue() {
          return instance.getIntDecimalValue();
        }
        /**
         * <code>int32 int_decimal_value = 6;</code>
         * @param value The intDecimalValue to set.
         * @return This builder for chaining.
         */
        public Builder setIntDecimalValue(int value) {
          copyOnWrite();
          instance.setIntDecimalValue(value);
          return this;
        }
        /**
         * <code>int32 int_decimal_value = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearIntDecimalValue() {
          copyOnWrite();
          instance.clearIntDecimalValue();
          return this;
        }
  
        /**
         * <code>uint32 int_hexadecimal_value = 7;</code>
         * @return Whether the intHexadecimalValue field is set.
         */
        @java.lang.Override
        public boolean hasIntHexadecimalValue() {
          return instance.hasIntHexadecimalValue();
        }
        /**
         * <code>uint32 int_hexadecimal_value = 7;</code>
         * @return The intHexadecimalValue.
         */
        @java.lang.Override
        public int getIntHexadecimalValue() {
          return instance.getIntHexadecimalValue();
        }
        /**
         * <code>uint32 int_hexadecimal_value = 7;</code>
         * @param value The intHexadecimalValue to set.
         * @return This builder for chaining.
         */
        public Builder setIntHexadecimalValue(int value) {
          copyOnWrite();
          instance.setIntHexadecimalValue(value);
          return this;
        }
        /**
         * <code>uint32 int_hexadecimal_value = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearIntHexadecimalValue() {
          copyOnWrite();
          instance.clearIntHexadecimalValue();
          return this;
        }
  
        /**
         * <code>bool boolean_value = 8;</code>
         * @return Whether the booleanValue field is set.
         */
        @java.lang.Override
        public boolean hasBooleanValue() {
          return instance.hasBooleanValue();
        }
        /**
         * <code>bool boolean_value = 8;</code>
         * @return The booleanValue.
         */
        @java.lang.Override
        public boolean getBooleanValue() {
          return instance.getBooleanValue();
        }
        /**
         * <code>bool boolean_value = 8;</code>
         * @param value The booleanValue to set.
         * @return This builder for chaining.
         */
        public Builder setBooleanValue(boolean value) {
          copyOnWrite();
          instance.setBooleanValue(value);
          return this;
        }
        /**
         * <code>bool boolean_value = 8;</code>
         * @return This builder for chaining.
         */
        public Builder clearBooleanValue() {
          copyOnWrite();
          instance.clearBooleanValue();
          return this;
        }
  
        /**
         * <code>uint32 color_argb8_value = 9;</code>
         * @return Whether the colorArgb8Value field is set.
         */
        @java.lang.Override
        public boolean hasColorArgb8Value() {
          return instance.hasColorArgb8Value();
        }
        /**
         * <code>uint32 color_argb8_value = 9;</code>
         * @return The colorArgb8Value.
         */
        @java.lang.Override
        public int getColorArgb8Value() {
          return instance.getColorArgb8Value();
        }
        /**
         * <code>uint32 color_argb8_value = 9;</code>
         * @param value The colorArgb8Value to set.
         * @return This builder for chaining.
         */
        public Builder setColorArgb8Value(int value) {
          copyOnWrite();
          instance.setColorArgb8Value(value);
          return this;
        }
        /**
         * <code>uint32 color_argb8_value = 9;</code>
         * @return This builder for chaining.
         */
        public Builder clearColorArgb8Value() {
          copyOnWrite();
          instance.clearColorArgb8Value();
          return this;
        }
  
        /**
         * <code>uint32 color_rgb8_value = 10;</code>
         * @return Whether the colorRgb8Value field is set.
         */
        @java.lang.Override
        public boolean hasColorRgb8Value() {
          return instance.hasColorRgb8Value();
        }
        /**
         * <code>uint32 color_rgb8_value = 10;</code>
         * @return The colorRgb8Value.
         */
        @java.lang.Override
        public int getColorRgb8Value() {
          return instance.getColorRgb8Value();
        }
        /**
         * <code>uint32 color_rgb8_value = 10;</code>
         * @param value The colorRgb8Value to set.
         * @return This builder for chaining.
         */
        public Builder setColorRgb8Value(int value) {
          copyOnWrite();
          instance.setColorRgb8Value(value);
          return this;
        }
        /**
         * <code>uint32 color_rgb8_value = 10;</code>
         * @return This builder for chaining.
         */
        public Builder clearColorRgb8Value() {
          copyOnWrite();
          instance.clearColorRgb8Value();
          return this;
        }
  
        /**
         * <code>uint32 color_argb4_value = 11;</code>
         * @return Whether the colorArgb4Value field is set.
         */
        @java.lang.Override
        public boolean hasColorArgb4Value() {
          return instance.hasColorArgb4Value();
        }
        /**
         * <code>uint32 color_argb4_value = 11;</code>
         * @return The colorArgb4Value.
         */
        @java.lang.Override
        public int getColorArgb4Value() {
          return instance.getColorArgb4Value();
        }
        /**
         * <code>uint32 color_argb4_value = 11;</code>
         * @param value The colorArgb4Value to set.
         * @return This builder for chaining.
         */
        public Builder setColorArgb4Value(int value) {
          copyOnWrite();
          instance.setColorArgb4Value(value);
          return this;
        }
        /**
         * <code>uint32 color_argb4_value = 11;</code>
         * @return This builder for chaining.
         */
        public Builder clearColorArgb4Value() {
          copyOnWrite();
          instance.clearColorArgb4Value();
          return this;
        }
  
        /**
         * <code>uint32 color_rgb4_value = 12;</code>
         * @return Whether the colorRgb4Value field is set.
         */
        @java.lang.Override
        public boolean hasColorRgb4Value() {
          return instance.hasColorRgb4Value();
        }
        /**
         * <code>uint32 color_rgb4_value = 12;</code>
         * @return The colorRgb4Value.
         */
        @java.lang.Override
        public int getColorRgb4Value() {
          return instance.getColorRgb4Value();
        }
        /**
         * <code>uint32 color_rgb4_value = 12;</code>
         * @param value The colorRgb4Value to set.
         * @return This builder for chaining.
         */
        public Builder setColorRgb4Value(int value) {
          copyOnWrite();
          instance.setColorRgb4Value(value);
          return this;
        }
        /**
         * <code>uint32 color_rgb4_value = 12;</code>
         * @return This builder for chaining.
         */
        public Builder clearColorRgb4Value() {
          copyOnWrite();
          instance.clearColorRgb4Value();
          return this;
        }
  
        /**
         * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
         * @deprecated Primitive.dimension_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=337
         * @return Whether the dimensionValueDeprecated field is set.
         */
        @java.lang.Override
        @java.lang.Deprecated public boolean hasDimensionValueDeprecated() {
          return instance.hasDimensionValueDeprecated();
        }
        /**
         * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
         * @deprecated Primitive.dimension_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=337
         * @return The dimensionValueDeprecated.
         */
        @java.lang.Override
        @java.lang.Deprecated public float getDimensionValueDeprecated() {
          return instance.getDimensionValueDeprecated();
        }
        /**
         * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
         * @deprecated Primitive.dimension_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=337
         * @param value The dimensionValueDeprecated to set.
         * @return This builder for chaining.
         */
        @java.lang.Deprecated public Builder setDimensionValueDeprecated(float value) {
          copyOnWrite();
          instance.setDimensionValueDeprecated(value);
          return this;
        }
        /**
         * <code>float dimension_value_deprecated = 4 [deprecated = true];</code>
         * @deprecated Primitive.dimension_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=337
         * @return This builder for chaining.
         */
        @java.lang.Deprecated public Builder clearDimensionValueDeprecated() {
          copyOnWrite();
          instance.clearDimensionValueDeprecated();
          return this;
        }
  
        /**
         * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
         * @deprecated Primitive.fraction_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=338
         * @return Whether the fractionValueDeprecated field is set.
         */
        @java.lang.Override
        @java.lang.Deprecated public boolean hasFractionValueDeprecated() {
          return instance.hasFractionValueDeprecated();
        }
        /**
         * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
         * @deprecated Primitive.fraction_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=338
         * @return The fractionValueDeprecated.
         */
        @java.lang.Override
        @java.lang.Deprecated public float getFractionValueDeprecated() {
          return instance.getFractionValueDeprecated();
        }
        /**
         * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
         * @deprecated Primitive.fraction_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=338
         * @param value The fractionValueDeprecated to set.
         * @return This builder for chaining.
         */
        @java.lang.Deprecated public Builder setFractionValueDeprecated(float value) {
          copyOnWrite();
          instance.setFractionValueDeprecated(value);
          return this;
        }
        /**
         * <code>float fraction_value_deprecated = 5 [deprecated = true];</code>
         * @deprecated Primitive.fraction_value_deprecated is deprecated.
         *     See com/android/aapt/Resources.proto;l=338
         * @return This builder for chaining.
         */
        @java.lang.Deprecated public Builder clearFractionValueDeprecated() {
          copyOnWrite();
          instance.clearFractionValueDeprecated();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Primitive)
      }
      @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 com.android.aapt.Resources.Primitive();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "oneofValue_",
                "oneofValueCase_",
                com.android.aapt.Resources.Primitive.NullType.class,
                com.android.aapt.Resources.Primitive.EmptyType.class,
              };
              java.lang.String info =
                  "\u0000\u000e\u0001\u0000\u0001\u000e\u000e\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                  "\u0000\u00034\u0000\u00044\u0000\u00054\u0000\u00067\u0000\u0007>\u0000\b:\u0000" +
                  "\t>\u0000\n>\u0000\u000b>\u0000\f>\u0000\r>\u0000\u000e>\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Primitive> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Primitive.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Primitive>(
                          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:Primitive)
      private static final com.android.aapt.Resources.Primitive DEFAULT_INSTANCE;
      static {
        Primitive defaultInstance = new Primitive();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Primitive.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Primitive getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Primitive> PARSER;
  
      public static com.google.protobuf.Parser<Primitive> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface AttributeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Attribute)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>uint32 format_flags = 1;</code>
       * @return The formatFlags.
       */
      int getFormatFlags();
  
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 min_int = 2;</code>
       * @return The minInt.
       */
      int getMinInt();
  
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 max_int = 3;</code>
       * @return The maxInt.
       */
      int getMaxInt();
  
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      java.util.List<com.android.aapt.Resources.Attribute.Symbol> 
          getSymbolList();
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      com.android.aapt.Resources.Attribute.Symbol getSymbol(int index);
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      int getSymbolCount();
    }
    /**
     * <pre>
     * A value that represents an XML attribute and what values it accepts.
     * </pre>
     *
     * Protobuf type {@code Attribute}
     */
    public  static final class Attribute extends
        com.google.protobuf.GeneratedMessageLite<
            Attribute, Attribute.Builder> implements
        // @@protoc_insertion_point(message_implements:Attribute)
        AttributeOrBuilder {
      private Attribute() {
        symbol_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Bitmask of formats allowed for an attribute.
       * </pre>
       *
       * Protobuf enum {@code Attribute.FormatFlags}
       */
      public enum FormatFlags
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <pre>
         * Proto3 requires a default of 0.
         * </pre>
         *
         * <code>NONE = 0;</code>
         */
        NONE(0),
        /**
         * <pre>
         * Allows any type except ENUM and FLAGS.
         * </pre>
         *
         * <code>ANY = 65535;</code>
         */
        ANY(65535),
        /**
         * <pre>
         * Allows Reference values.
         * </pre>
         *
         * <code>REFERENCE = 1;</code>
         */
        REFERENCE(1),
        /**
         * <pre>
         * Allows String/StyledString values.
         * </pre>
         *
         * <code>STRING = 2;</code>
         */
        STRING(2),
        /**
         * <pre>
         * Allows any integer BinaryPrimitive values.
         * </pre>
         *
         * <code>INTEGER = 4;</code>
         */
        INTEGER(4),
        /**
         * <pre>
         * Allows any boolean BinaryPrimitive values.
         * </pre>
         *
         * <code>BOOLEAN = 8;</code>
         */
        BOOLEAN(8),
        /**
         * <pre>
         * Allows any color BinaryPrimitive values.
         * </pre>
         *
         * <code>COLOR = 16;</code>
         */
        COLOR(16),
        /**
         * <pre>
         * Allows any float BinaryPrimitive values.
         * </pre>
         *
         * <code>FLOAT = 32;</code>
         */
        FLOAT(32),
        /**
         * <pre>
         * Allows any dimension BinaryPrimitive values.
         * </pre>
         *
         * <code>DIMENSION = 64;</code>
         */
        DIMENSION(64),
        /**
         * <pre>
         * Allows any fraction BinaryPrimitive values.
         * </pre>
         *
         * <code>FRACTION = 128;</code>
         */
        FRACTION(128),
        /**
         * <pre>
         * Allows enums that are defined in the Attribute's symbols.
         * </pre>
         *
         * <code>ENUM = 65536;</code>
         */
        ENUM(65536),
        /**
         * <pre>
         * ENUM and FLAGS cannot BOTH be set.
         * </pre>
         *
         * <code>FLAGS = 131072;</code>
         */
        FLAGS(131072),
        UNRECOGNIZED(-1),
        ;
  
        /**
         * <pre>
         * Proto3 requires a default of 0.
         * </pre>
         *
         * <code>NONE = 0;</code>
         */
        public static final int NONE_VALUE = 0;
        /**
         * <pre>
         * Allows any type except ENUM and FLAGS.
         * </pre>
         *
         * <code>ANY = 65535;</code>
         */
        public static final int ANY_VALUE = 65535;
        /**
         * <pre>
         * Allows Reference values.
         * </pre>
         *
         * <code>REFERENCE = 1;</code>
         */
        public static final int REFERENCE_VALUE = 1;
        /**
         * <pre>
         * Allows String/StyledString values.
         * </pre>
         *
         * <code>STRING = 2;</code>
         */
        public static final int STRING_VALUE = 2;
        /**
         * <pre>
         * Allows any integer BinaryPrimitive values.
         * </pre>
         *
         * <code>INTEGER = 4;</code>
         */
        public static final int INTEGER_VALUE = 4;
        /**
         * <pre>
         * Allows any boolean BinaryPrimitive values.
         * </pre>
         *
         * <code>BOOLEAN = 8;</code>
         */
        public static final int BOOLEAN_VALUE = 8;
        /**
         * <pre>
         * Allows any color BinaryPrimitive values.
         * </pre>
         *
         * <code>COLOR = 16;</code>
         */
        public static final int COLOR_VALUE = 16;
        /**
         * <pre>
         * Allows any float BinaryPrimitive values.
         * </pre>
         *
         * <code>FLOAT = 32;</code>
         */
        public static final int FLOAT_VALUE = 32;
        /**
         * <pre>
         * Allows any dimension BinaryPrimitive values.
         * </pre>
         *
         * <code>DIMENSION = 64;</code>
         */
        public static final int DIMENSION_VALUE = 64;
        /**
         * <pre>
         * Allows any fraction BinaryPrimitive values.
         * </pre>
         *
         * <code>FRACTION = 128;</code>
         */
        public static final int FRACTION_VALUE = 128;
        /**
         * <pre>
         * Allows enums that are defined in the Attribute's symbols.
         * </pre>
         *
         * <code>ENUM = 65536;</code>
         */
        public static final int ENUM_VALUE = 65536;
        /**
         * <pre>
         * ENUM and FLAGS cannot BOTH be set.
         * </pre>
         *
         * <code>FLAGS = 131072;</code>
         */
        public static final int FLAGS_VALUE = 131072;
  
  
        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }
  
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static FormatFlags valueOf(int value) {
          return forNumber(value);
        }
  
        public static FormatFlags forNumber(int value) {
          switch (value) {
            case 0: return NONE;
            case 65535: return ANY;
            case 1: return REFERENCE;
            case 2: return STRING;
            case 4: return INTEGER;
            case 8: return BOOLEAN;
            case 16: return COLOR;
            case 32: return FLOAT;
            case 64: return DIMENSION;
            case 128: return FRACTION;
            case 65536: return ENUM;
            case 131072: return FLAGS;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<FormatFlags>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            FormatFlags> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<FormatFlags>() {
                @java.lang.Override
                public FormatFlags findValueByNumber(int number) {
                  return FormatFlags.forNumber(number);
                }
              };
  
        public static com.google.protobuf.Internal.EnumVerifier 
            internalGetVerifier() {
          return FormatFlagsVerifier.INSTANCE;
        }
  
        private static final class FormatFlagsVerifier implements 
             com.google.protobuf.Internal.EnumVerifier { 
                static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new FormatFlagsVerifier();
                @java.lang.Override
                public boolean isInRange(int number) {
                  return FormatFlags.forNumber(number) != null;
                }
              };
  
        private final int value;
  
        private FormatFlags(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:Attribute.FormatFlags)
      }
  
      public interface SymbolOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Attribute.Symbol)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return Whether the source field is set.
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return The source.
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>.Reference name = 3;</code>
         * @return Whether the name field is set.
         */
        boolean hasName();
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>.Reference name = 3;</code>
         * @return The name.
         */
        com.android.aapt.Resources.Reference getName();
  
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>uint32 value = 4;</code>
         * @return The value.
         */
        int getValue();
  
        /**
         * <pre>
         * The data type of the enum/flag as defined in android::Res_value.
         * </pre>
         *
         * <code>uint32 type = 5;</code>
         * @return The type.
         */
        int getType();
      }
      /**
       * <pre>
       * A Symbol used to represent an enum or a flag.
       * </pre>
       *
       * Protobuf type {@code Attribute.Symbol}
       */
      public  static final class Symbol extends
          com.google.protobuf.GeneratedMessageLite<
              Symbol, Symbol.Builder> implements
          // @@protoc_insertion_point(message_implements:Attribute.Symbol)
          SymbolOrBuilder {
        private Symbol() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the enum/flag item was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         */
        private void setComment(
            java.lang.String value) {
          java.lang.Class<?> valueClass = value.getClass();
    
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>string comment = 2;</code>
         */
        private void clearComment() {
  
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the enum or flag.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          comment_ = value.toStringUtf8();
  
        }
  
        public static final int NAME_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Reference name_;
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>.Reference name = 3;</code>
         */
        @java.lang.Override
        public boolean hasName() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>.Reference name = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Reference getName() {
          return name_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : name_;
        }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>.Reference name = 3;</code>
         */
        private void setName(com.android.aapt.Resources.Reference value) {
          value.getClass();
    name_ = value;
          bitField0_ |= 0x00000002;
          }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>.Reference name = 3;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeName(com.android.aapt.Resources.Reference value) {
          value.getClass();
    if (name_ != null &&
              name_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
            name_ =
              com.android.aapt.Resources.Reference.newBuilder(name_).mergeFrom(value).buildPartial();
          } else {
            name_ = value;
          }
          bitField0_ |= 0x00000002;
        }
        /**
         * <pre>
         * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
         * values.
         * </pre>
         *
         * <code>.Reference name = 3;</code>
         */
        private void clearName() {  name_ = null;
          bitField0_ = (bitField0_ & ~0x00000002);
        }
  
        public static final int VALUE_FIELD_NUMBER = 4;
        private int value_;
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>uint32 value = 4;</code>
         * @return The value.
         */
        @java.lang.Override
        public int getValue() {
          return value_;
        }
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>uint32 value = 4;</code>
         * @param value The value to set.
         */
        private void setValue(int value) {
          
          value_ = value;
        }
        /**
         * <pre>
         * The value of the enum/flag.
         * </pre>
         *
         * <code>uint32 value = 4;</code>
         */
        private void clearValue() {
  
          value_ = 0;
        }
  
        public static final int TYPE_FIELD_NUMBER = 5;
        private int type_;
        /**
         * <pre>
         * The data type of the enum/flag as defined in android::Res_value.
         * </pre>
         *
         * <code>uint32 type = 5;</code>
         * @return The type.
         */
        @java.lang.Override
        public int getType() {
          return type_;
        }
        /**
         * <pre>
         * The data type of the enum/flag as defined in android::Res_value.
         * </pre>
         *
         * <code>uint32 type = 5;</code>
         * @param value The type to set.
         */
        private void setType(int value) {
          
          type_ = value;
        }
        /**
         * <pre>
         * The data type of the enum/flag as defined in android::Res_value.
         * </pre>
         *
         * <code>uint32 type = 5;</code>
         */
        private void clearType() {
  
          type_ = 0;
        }
  
        public static com.android.aapt.Resources.Attribute.Symbol parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 com.android.aapt.Resources.Attribute.Symbol parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 com.android.aapt.Resources.Attribute.Symbol parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 com.android.aapt.Resources.Attribute.Symbol parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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 com.android.aapt.Resources.Attribute.Symbol parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.Attribute.Symbol parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Attribute.Symbol parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Attribute.Symbol 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(com.android.aapt.Resources.Attribute.Symbol prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * <pre>
         * A Symbol used to represent an enum or a flag.
         * </pre>
         *
         * Protobuf type {@code Attribute.Symbol}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Attribute.Symbol, Builder> implements
            // @@protoc_insertion_point(builder_implements:Attribute.Symbol)
            com.android.aapt.Resources.Attribute.SymbolOrBuilder {
          // Construct using com.android.aapt.Resources.Attribute.Symbol.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the enum/flag item was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The comment.
           */
          @java.lang.Override
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The bytes for comment.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The comment to set.
           * @return This builder for chaining.
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the enum or flag.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The bytes for comment to set.
           * @return This builder for chaining.
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>.Reference name = 3;</code>
           */
          @java.lang.Override
          public boolean hasName() {
            return instance.hasName();
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>.Reference name = 3;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Reference getName() {
            return instance.getName();
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>.Reference name = 3;</code>
           */
          public Builder setName(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.setName(value);
            return this;
            }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>.Reference name = 3;</code>
           */
          public Builder setName(
              com.android.aapt.Resources.Reference.Builder builderForValue) {
            copyOnWrite();
            instance.setName(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>.Reference name = 3;</code>
           */
          public Builder mergeName(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.mergeName(value);
            return this;
          }
          /**
           * <pre>
           * The name of the enum/flag as a reference. Enums/flag items are generated as ID resource
           * values.
           * </pre>
           *
           * <code>.Reference name = 3;</code>
           */
          public Builder clearName() {  copyOnWrite();
            instance.clearName();
            return this;
          }
  
          /**
           * <pre>
           * The value of the enum/flag.
           * </pre>
           *
           * <code>uint32 value = 4;</code>
           * @return The value.
           */
          @java.lang.Override
          public int getValue() {
            return instance.getValue();
          }
          /**
           * <pre>
           * The value of the enum/flag.
           * </pre>
           *
           * <code>uint32 value = 4;</code>
           * @param value The value to set.
           * @return This builder for chaining.
           */
          public Builder setValue(int value) {
            copyOnWrite();
            instance.setValue(value);
            return this;
          }
          /**
           * <pre>
           * The value of the enum/flag.
           * </pre>
           *
           * <code>uint32 value = 4;</code>
           * @return This builder for chaining.
           */
          public Builder clearValue() {
            copyOnWrite();
            instance.clearValue();
            return this;
          }
  
          /**
           * <pre>
           * The data type of the enum/flag as defined in android::Res_value.
           * </pre>
           *
           * <code>uint32 type = 5;</code>
           * @return The type.
           */
          @java.lang.Override
          public int getType() {
            return instance.getType();
          }
          /**
           * <pre>
           * The data type of the enum/flag as defined in android::Res_value.
           * </pre>
           *
           * <code>uint32 type = 5;</code>
           * @param value The type to set.
           * @return This builder for chaining.
           */
          public Builder setType(int value) {
            copyOnWrite();
            instance.setType(value);
            return this;
          }
          /**
           * <pre>
           * The data type of the enum/flag as defined in android::Res_value.
           * </pre>
           *
           * <code>uint32 type = 5;</code>
           * @return This builder for chaining.
           */
          public Builder clearType() {
            copyOnWrite();
            instance.clearType();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:Attribute.Symbol)
        }
        @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 com.android.aapt.Resources.Attribute.Symbol();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = new java.lang.Object[] {
                  "bitField0_",
                  "source_",
                  "comment_",
                  "name_",
                  "value_",
                  "type_",
                };
                java.lang.String info =
                    "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                    "\u0208\u0003\u1009\u0001\u0004\u000b\u0005\u000b";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.Attribute.Symbol> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.Attribute.Symbol.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.Attribute.Symbol>(
                            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:Attribute.Symbol)
        private static final com.android.aapt.Resources.Attribute.Symbol DEFAULT_INSTANCE;
        static {
          Symbol defaultInstance = new Symbol();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Symbol.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.Attribute.Symbol getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Symbol> PARSER;
  
        public static com.google.protobuf.Parser<Symbol> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int FORMAT_FLAGS_FIELD_NUMBER = 1;
      private int formatFlags_;
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>uint32 format_flags = 1;</code>
       * @return The formatFlags.
       */
      @java.lang.Override
      public int getFormatFlags() {
        return formatFlags_;
      }
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>uint32 format_flags = 1;</code>
       * @param value The formatFlags to set.
       */
      private void setFormatFlags(int value) {
        
        formatFlags_ = value;
      }
      /**
       * <pre>
       * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
       * enum FormatFlags.
       * </pre>
       *
       * <code>uint32 format_flags = 1;</code>
       */
      private void clearFormatFlags() {
  
        formatFlags_ = 0;
      }
  
      public static final int MIN_INT_FIELD_NUMBER = 2;
      private int minInt_;
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 min_int = 2;</code>
       * @return The minInt.
       */
      @java.lang.Override
      public int getMinInt() {
        return minInt_;
      }
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 min_int = 2;</code>
       * @param value The minInt to set.
       */
      private void setMinInt(int value) {
        
        minInt_ = value;
      }
      /**
       * <pre>
       * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 min_int = 2;</code>
       */
      private void clearMinInt() {
  
        minInt_ = 0;
      }
  
      public static final int MAX_INT_FIELD_NUMBER = 3;
      private int maxInt_;
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 max_int = 3;</code>
       * @return The maxInt.
       */
      @java.lang.Override
      public int getMaxInt() {
        return maxInt_;
      }
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 max_int = 3;</code>
       * @param value The maxInt to set.
       */
      private void setMaxInt(int value) {
        
        maxInt_ = value;
      }
      /**
       * <pre>
       * The largest integer allowed for this XML attribute. Only makes sense if the format includes
       * FormatFlags::INTEGER.
       * </pre>
       *
       * <code>int32 max_int = 3;</code>
       */
      private void clearMaxInt() {
  
        maxInt_ = 0;
      }
  
      public static final int SYMBOL_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Attribute.Symbol> symbol_;
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Attribute.Symbol> getSymbolList() {
        return symbol_;
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Attribute.SymbolOrBuilder> 
          getSymbolOrBuilderList() {
        return symbol_;
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      @java.lang.Override
      public int getSymbolCount() {
        return symbol_.size();
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Attribute.Symbol getSymbol(int index) {
        return symbol_.get(index);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      public com.android.aapt.Resources.Attribute.SymbolOrBuilder getSymbolOrBuilder(
          int index) {
        return symbol_.get(index);
      }
      private void ensureSymbolIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Attribute.Symbol> tmp = symbol_;
        if (!tmp.isModifiable()) {
          symbol_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      private void setSymbol(
          int index, com.android.aapt.Resources.Attribute.Symbol value) {
        value.getClass();
    ensureSymbolIsMutable();
        symbol_.set(index, value);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      private void addSymbol(com.android.aapt.Resources.Attribute.Symbol value) {
        value.getClass();
    ensureSymbolIsMutable();
        symbol_.add(value);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      private void addSymbol(
          int index, com.android.aapt.Resources.Attribute.Symbol value) {
        value.getClass();
    ensureSymbolIsMutable();
        symbol_.add(index, value);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      private void addAllSymbol(
          java.lang.Iterable<? extends com.android.aapt.Resources.Attribute.Symbol> values) {
        ensureSymbolIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, symbol_);
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      private void clearSymbol() {
        symbol_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of enums/flags defined in this attribute. Only makes sense if the format includes
       * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
       * </pre>
       *
       * <code>repeated .Attribute.Symbol symbol = 4;</code>
       */
      private void removeSymbol(int index) {
        ensureSymbolIsMutable();
        symbol_.remove(index);
      }
  
      public static com.android.aapt.Resources.Attribute parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Attribute 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 com.android.aapt.Resources.Attribute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Attribute 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 com.android.aapt.Resources.Attribute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Attribute 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 com.android.aapt.Resources.Attribute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Attribute 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 com.android.aapt.Resources.Attribute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Attribute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Attribute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Attribute 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(com.android.aapt.Resources.Attribute prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that represents an XML attribute and what values it accepts.
       * </pre>
       *
       * Protobuf type {@code Attribute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Attribute, Builder> implements
          // @@protoc_insertion_point(builder_implements:Attribute)
          com.android.aapt.Resources.AttributeOrBuilder {
        // Construct using com.android.aapt.Resources.Attribute.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
         * enum FormatFlags.
         * </pre>
         *
         * <code>uint32 format_flags = 1;</code>
         * @return The formatFlags.
         */
        @java.lang.Override
        public int getFormatFlags() {
          return instance.getFormatFlags();
        }
        /**
         * <pre>
         * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
         * enum FormatFlags.
         * </pre>
         *
         * <code>uint32 format_flags = 1;</code>
         * @param value The formatFlags to set.
         * @return This builder for chaining.
         */
        public Builder setFormatFlags(int value) {
          copyOnWrite();
          instance.setFormatFlags(value);
          return this;
        }
        /**
         * <pre>
         * A bitmask of types that this XML attribute accepts. Corresponds to the flags in the
         * enum FormatFlags.
         * </pre>
         *
         * <code>uint32 format_flags = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearFormatFlags() {
          copyOnWrite();
          instance.clearFormatFlags();
          return this;
        }
  
        /**
         * <pre>
         * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>int32 min_int = 2;</code>
         * @return The minInt.
         */
        @java.lang.Override
        public int getMinInt() {
          return instance.getMinInt();
        }
        /**
         * <pre>
         * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>int32 min_int = 2;</code>
         * @param value The minInt to set.
         * @return This builder for chaining.
         */
        public Builder setMinInt(int value) {
          copyOnWrite();
          instance.setMinInt(value);
          return this;
        }
        /**
         * <pre>
         * The smallest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>int32 min_int = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearMinInt() {
          copyOnWrite();
          instance.clearMinInt();
          return this;
        }
  
        /**
         * <pre>
         * The largest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>int32 max_int = 3;</code>
         * @return The maxInt.
         */
        @java.lang.Override
        public int getMaxInt() {
          return instance.getMaxInt();
        }
        /**
         * <pre>
         * The largest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>int32 max_int = 3;</code>
         * @param value The maxInt to set.
         * @return This builder for chaining.
         */
        public Builder setMaxInt(int value) {
          copyOnWrite();
          instance.setMaxInt(value);
          return this;
        }
        /**
         * <pre>
         * The largest integer allowed for this XML attribute. Only makes sense if the format includes
         * FormatFlags::INTEGER.
         * </pre>
         *
         * <code>int32 max_int = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearMaxInt() {
          copyOnWrite();
          instance.clearMaxInt();
          return this;
        }
  
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Attribute.Symbol> getSymbolList() {
          return java.util.Collections.unmodifiableList(
              instance.getSymbolList());
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        @java.lang.Override
        public int getSymbolCount() {
          return instance.getSymbolCount();
        }/**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Attribute.Symbol getSymbol(int index) {
          return instance.getSymbol(index);
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder setSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol value) {
          copyOnWrite();
          instance.setSymbol(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder setSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
          copyOnWrite();
          instance.setSymbol(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(com.android.aapt.Resources.Attribute.Symbol value) {
          copyOnWrite();
          instance.addSymbol(value);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol value) {
          copyOnWrite();
          instance.addSymbol(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(
            com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
          copyOnWrite();
          instance.addSymbol(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder addSymbol(
            int index, com.android.aapt.Resources.Attribute.Symbol.Builder builderForValue) {
          copyOnWrite();
          instance.addSymbol(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder addAllSymbol(
            java.lang.Iterable<? extends com.android.aapt.Resources.Attribute.Symbol> values) {
          copyOnWrite();
          instance.addAllSymbol(values);
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder clearSymbol() {
          copyOnWrite();
          instance.clearSymbol();
          return this;
        }
        /**
         * <pre>
         * The set of enums/flags defined in this attribute. Only makes sense if the format includes
         * either FormatFlags::ENUM or FormatFlags::FLAGS. Having both is an error.
         * </pre>
         *
         * <code>repeated .Attribute.Symbol symbol = 4;</code>
         */
        public Builder removeSymbol(int index) {
          copyOnWrite();
          instance.removeSymbol(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Attribute)
      }
      @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 com.android.aapt.Resources.Attribute();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "formatFlags_",
                "minInt_",
                "maxInt_",
                "symbol_",
                com.android.aapt.Resources.Attribute.Symbol.class,
              };
              java.lang.String info =
                  "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0001\u0000\u0001\u000b\u0002\u0004" +
                  "\u0003\u0004\u0004\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Attribute> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Attribute.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Attribute>(
                          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:Attribute)
      private static final com.android.aapt.Resources.Attribute DEFAULT_INSTANCE;
      static {
        Attribute defaultInstance = new Attribute();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Attribute.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Attribute getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Attribute> PARSER;
  
      public static com.google.protobuf.Parser<Attribute> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StyleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Style)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>.Reference parent = 1;</code>
       * @return Whether the parent field is set.
       */
      boolean hasParent();
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>.Reference parent = 1;</code>
       * @return The parent.
       */
      com.android.aapt.Resources.Reference getParent();
  
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>.Source parent_source = 2;</code>
       * @return Whether the parentSource field is set.
       */
      boolean hasParentSource();
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>.Source parent_source = 2;</code>
       * @return The parentSource.
       */
      com.android.aapt.Resources.Source getParentSource();
  
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.Style.Entry> 
          getEntryList();
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      com.android.aapt.Resources.Style.Entry getEntry(int index);
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A value that represents a style.
     * </pre>
     *
     * Protobuf type {@code Style}
     */
    public  static final class Style extends
        com.google.protobuf.GeneratedMessageLite<
            Style, Style.Builder> implements
        // @@protoc_insertion_point(message_implements:Style)
        StyleOrBuilder {
      private Style() {
        entry_ = emptyProtobufList();
      }
      public interface EntryOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Style.Entry)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return Whether the source field is set.
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return The source.
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>.Reference key = 3;</code>
         * @return Whether the key field is set.
         */
        boolean hasKey();
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>.Reference key = 3;</code>
         * @return The key.
         */
        com.android.aapt.Resources.Reference getKey();
  
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         * @return Whether the item field is set.
         */
        boolean hasItem();
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         * @return The item.
         */
        com.android.aapt.Resources.Item getItem();
      }
      /**
       * <pre>
       * An XML attribute/value pair defined in the style.
       * </pre>
       *
       * Protobuf type {@code Style.Entry}
       */
      public  static final class Entry extends
          com.google.protobuf.GeneratedMessageLite<
              Entry, Entry.Builder> implements
          // @@protoc_insertion_point(message_implements:Style.Entry)
          EntryOrBuilder {
        private Entry() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the entry was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         */
        private void setComment(
            java.lang.String value) {
          java.lang.Class<?> valueClass = value.getClass();
    
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>string comment = 2;</code>
         */
        private void clearComment() {
  
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the entry.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          comment_ = value.toStringUtf8();
  
        }
  
        public static final int KEY_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Reference key_;
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>.Reference key = 3;</code>
         */
        @java.lang.Override
        public boolean hasKey() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>.Reference key = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Reference getKey() {
          return key_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : key_;
        }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>.Reference key = 3;</code>
         */
        private void setKey(com.android.aapt.Resources.Reference value) {
          value.getClass();
    key_ = value;
          bitField0_ |= 0x00000002;
          }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>.Reference key = 3;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeKey(com.android.aapt.Resources.Reference value) {
          value.getClass();
    if (key_ != null &&
              key_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
            key_ =
              com.android.aapt.Resources.Reference.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          bitField0_ |= 0x00000002;
        }
        /**
         * <pre>
         * A reference to the XML attribute.
         * </pre>
         *
         * <code>.Reference key = 3;</code>
         */
        private void clearKey() {  key_ = null;
          bitField0_ = (bitField0_ & ~0x00000002);
        }
  
        public static final int ITEM_FIELD_NUMBER = 4;
        private com.android.aapt.Resources.Item item_;
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        @java.lang.Override
        public boolean hasItem() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Item getItem() {
          return item_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : item_;
        }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        private void setItem(com.android.aapt.Resources.Item value) {
          value.getClass();
    item_ = value;
          bitField0_ |= 0x00000004;
          }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeItem(com.android.aapt.Resources.Item value) {
          value.getClass();
    if (item_ != null &&
              item_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
            item_ =
              com.android.aapt.Resources.Item.newBuilder(item_).mergeFrom(value).buildPartial();
          } else {
            item_ = value;
          }
          bitField0_ |= 0x00000004;
        }
        /**
         * <pre>
         * The Item defined for this XML attribute.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        private void clearItem() {  item_ = null;
          bitField0_ = (bitField0_ & ~0x00000004);
        }
  
        public static com.android.aapt.Resources.Style.Entry parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Style.Entry 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 com.android.aapt.Resources.Style.Entry parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Style.Entry 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 com.android.aapt.Resources.Style.Entry parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Style.Entry 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 com.android.aapt.Resources.Style.Entry parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Style.Entry 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 com.android.aapt.Resources.Style.Entry parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.Style.Entry parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Style.Entry parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Style.Entry 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(com.android.aapt.Resources.Style.Entry prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * <pre>
         * An XML attribute/value pair defined in the style.
         * </pre>
         *
         * Protobuf type {@code Style.Entry}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Style.Entry, Builder> implements
            // @@protoc_insertion_point(builder_implements:Style.Entry)
            com.android.aapt.Resources.Style.EntryOrBuilder {
          // Construct using com.android.aapt.Resources.Style.Entry.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the entry was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The comment.
           */
          @java.lang.Override
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The bytes for comment.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The comment to set.
           * @return This builder for chaining.
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the entry.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The bytes for comment to set.
           * @return This builder for chaining.
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>.Reference key = 3;</code>
           */
          @java.lang.Override
          public boolean hasKey() {
            return instance.hasKey();
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>.Reference key = 3;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Reference getKey() {
            return instance.getKey();
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>.Reference key = 3;</code>
           */
          public Builder setKey(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.setKey(value);
            return this;
            }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>.Reference key = 3;</code>
           */
          public Builder setKey(
              com.android.aapt.Resources.Reference.Builder builderForValue) {
            copyOnWrite();
            instance.setKey(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>.Reference key = 3;</code>
           */
          public Builder mergeKey(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.mergeKey(value);
            return this;
          }
          /**
           * <pre>
           * A reference to the XML attribute.
           * </pre>
           *
           * <code>.Reference key = 3;</code>
           */
          public Builder clearKey() {  copyOnWrite();
            instance.clearKey();
            return this;
          }
  
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          @java.lang.Override
          public boolean hasItem() {
            return instance.hasItem();
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Item getItem() {
            return instance.getItem();
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder setItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.setItem(value);
            return this;
            }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder setItem(
              com.android.aapt.Resources.Item.Builder builderForValue) {
            copyOnWrite();
            instance.setItem(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder mergeItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.mergeItem(value);
            return this;
          }
          /**
           * <pre>
           * The Item defined for this XML attribute.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder clearItem() {  copyOnWrite();
            instance.clearItem();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:Style.Entry)
        }
        @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 com.android.aapt.Resources.Style.Entry();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = new java.lang.Object[] {
                  "bitField0_",
                  "source_",
                  "comment_",
                  "key_",
                  "item_",
                };
                java.lang.String info =
                    "\u0000\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                    "\u0208\u0003\u1009\u0001\u0004\u1009\u0002";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.Style.Entry> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.Style.Entry.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.Style.Entry>(
                            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:Style.Entry)
        private static final com.android.aapt.Resources.Style.Entry DEFAULT_INSTANCE;
        static {
          Entry defaultInstance = new Entry();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Entry.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.Style.Entry getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
        public static com.google.protobuf.Parser<Entry> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      private int bitField0_;
      public static final int PARENT_FIELD_NUMBER = 1;
      private com.android.aapt.Resources.Reference parent_;
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>.Reference parent = 1;</code>
       */
      @java.lang.Override
      public boolean hasParent() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>.Reference parent = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Reference getParent() {
        return parent_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : parent_;
      }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>.Reference parent = 1;</code>
       */
      private void setParent(com.android.aapt.Resources.Reference value) {
        value.getClass();
    parent_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>.Reference parent = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeParent(com.android.aapt.Resources.Reference value) {
        value.getClass();
    if (parent_ != null &&
            parent_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
          parent_ =
            com.android.aapt.Resources.Reference.newBuilder(parent_).mergeFrom(value).buildPartial();
        } else {
          parent_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * The optinal style from which this style inherits attributes.
       * </pre>
       *
       * <code>.Reference parent = 1;</code>
       */
      private void clearParent() {  parent_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int PARENT_SOURCE_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.Source parentSource_;
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>.Source parent_source = 2;</code>
       */
      @java.lang.Override
      public boolean hasParentSource() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>.Source parent_source = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Source getParentSource() {
        return parentSource_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : parentSource_;
      }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>.Source parent_source = 2;</code>
       */
      private void setParentSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    parentSource_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>.Source parent_source = 2;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeParentSource(com.android.aapt.Resources.Source value) {
        value.getClass();
    if (parentSource_ != null &&
            parentSource_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
          parentSource_ =
            com.android.aapt.Resources.Source.newBuilder(parentSource_).mergeFrom(value).buildPartial();
        } else {
          parentSource_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * The source file information of the parent inheritance declaration.
       * </pre>
       *
       * <code>.Source parent_source = 2;</code>
       */
      private void clearParentSource() {  parentSource_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static final int ENTRY_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Style.Entry> entry_;
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Style.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Style.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      @java.lang.Override
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Style.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      public com.android.aapt.Resources.Style.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Style.Entry> tmp = entry_;
        if (!tmp.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Style.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      private void addEntry(com.android.aapt.Resources.Style.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Style.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Style.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of XML attribute/value pairs for this style.
       * </pre>
       *
       * <code>repeated .Style.Entry entry = 3;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public static com.android.aapt.Resources.Style parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Style 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 com.android.aapt.Resources.Style parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Style 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 com.android.aapt.Resources.Style parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Style 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 com.android.aapt.Resources.Style parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Style 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 com.android.aapt.Resources.Style parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Style parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Style parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Style 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(com.android.aapt.Resources.Style prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a style.
       * </pre>
       *
       * Protobuf type {@code Style}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Style, Builder> implements
          // @@protoc_insertion_point(builder_implements:Style)
          com.android.aapt.Resources.StyleOrBuilder {
        // Construct using com.android.aapt.Resources.Style.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>.Reference parent = 1;</code>
         */
        @java.lang.Override
        public boolean hasParent() {
          return instance.hasParent();
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>.Reference parent = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Reference getParent() {
          return instance.getParent();
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>.Reference parent = 1;</code>
         */
        public Builder setParent(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.setParent(value);
          return this;
          }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>.Reference parent = 1;</code>
         */
        public Builder setParent(
            com.android.aapt.Resources.Reference.Builder builderForValue) {
          copyOnWrite();
          instance.setParent(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>.Reference parent = 1;</code>
         */
        public Builder mergeParent(com.android.aapt.Resources.Reference value) {
          copyOnWrite();
          instance.mergeParent(value);
          return this;
        }
        /**
         * <pre>
         * The optinal style from which this style inherits attributes.
         * </pre>
         *
         * <code>.Reference parent = 1;</code>
         */
        public Builder clearParent() {  copyOnWrite();
          instance.clearParent();
          return this;
        }
  
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>.Source parent_source = 2;</code>
         */
        @java.lang.Override
        public boolean hasParentSource() {
          return instance.hasParentSource();
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>.Source parent_source = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getParentSource() {
          return instance.getParentSource();
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>.Source parent_source = 2;</code>
         */
        public Builder setParentSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.setParentSource(value);
          return this;
          }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>.Source parent_source = 2;</code>
         */
        public Builder setParentSource(
            com.android.aapt.Resources.Source.Builder builderForValue) {
          copyOnWrite();
          instance.setParentSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>.Source parent_source = 2;</code>
         */
        public Builder mergeParentSource(com.android.aapt.Resources.Source value) {
          copyOnWrite();
          instance.mergeParentSource(value);
          return this;
        }
        /**
         * <pre>
         * The source file information of the parent inheritance declaration.
         * </pre>
         *
         * <code>.Source parent_source = 2;</code>
         */
        public Builder clearParentSource() {  copyOnWrite();
          instance.clearParentSource();
          return this;
        }
  
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Style.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        @java.lang.Override
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Style.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Style.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Style.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Style.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Style.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Style.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The set of XML attribute/value pairs for this style.
         * </pre>
         *
         * <code>repeated .Style.Entry entry = 3;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Style)
      }
      @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 com.android.aapt.Resources.Style();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "parent_",
                "parentSource_",
                "entry_",
                com.android.aapt.Resources.Style.Entry.class,
              };
              java.lang.String info =
                  "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0001\u0000\u0001\u1009\u0000\u0002" +
                  "\u1009\u0001\u0003\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Style> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Style.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Style>(
                          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:Style)
      private static final com.android.aapt.Resources.Style DEFAULT_INSTANCE;
      static {
        Style defaultInstance = new Style();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Style.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Style getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Style> PARSER;
  
      public static com.google.protobuf.Parser<Style> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StyleableOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Styleable)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.Styleable.Entry> 
          getEntryList();
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      com.android.aapt.Resources.Styleable.Entry getEntry(int index);
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A value that represents a &lt;declare-styleable&gt; XML resource. These are not real resources and
     * only end up as Java fields in the generated R.java. They do not end up in the binary ARSC file.
     * </pre>
     *
     * Protobuf type {@code Styleable}
     */
    public  static final class Styleable extends
        com.google.protobuf.GeneratedMessageLite<
            Styleable, Styleable.Builder> implements
        // @@protoc_insertion_point(message_implements:Styleable)
        StyleableOrBuilder {
      private Styleable() {
        entry_ = emptyProtobufList();
      }
      public interface EntryOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Styleable.Entry)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return Whether the source field is set.
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return The source.
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>.Reference attr = 3;</code>
         * @return Whether the attr field is set.
         */
        boolean hasAttr();
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>.Reference attr = 3;</code>
         * @return The attr.
         */
        com.android.aapt.Resources.Reference getAttr();
      }
      /**
       * <pre>
       * An attribute defined for this styleable.
       * </pre>
       *
       * Protobuf type {@code Styleable.Entry}
       */
      public  static final class Entry extends
          com.google.protobuf.GeneratedMessageLite<
              Entry, Entry.Builder> implements
          // @@protoc_insertion_point(message_implements:Styleable.Entry)
          EntryOrBuilder {
        private Entry() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the attribute was defined within the &lt;declare-styleable&gt; block.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         */
        private void setComment(
            java.lang.String value) {
          java.lang.Class<?> valueClass = value.getClass();
    
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         */
        private void clearComment() {
  
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the declaration.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          comment_ = value.toStringUtf8();
  
        }
  
        public static final int ATTR_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Reference attr_;
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>.Reference attr = 3;</code>
         */
        @java.lang.Override
        public boolean hasAttr() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>.Reference attr = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Reference getAttr() {
          return attr_ == null ? com.android.aapt.Resources.Reference.getDefaultInstance() : attr_;
        }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>.Reference attr = 3;</code>
         */
        private void setAttr(com.android.aapt.Resources.Reference value) {
          value.getClass();
    attr_ = value;
          bitField0_ |= 0x00000002;
          }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>.Reference attr = 3;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeAttr(com.android.aapt.Resources.Reference value) {
          value.getClass();
    if (attr_ != null &&
              attr_ != com.android.aapt.Resources.Reference.getDefaultInstance()) {
            attr_ =
              com.android.aapt.Resources.Reference.newBuilder(attr_).mergeFrom(value).buildPartial();
          } else {
            attr_ = value;
          }
          bitField0_ |= 0x00000002;
        }
        /**
         * <pre>
         * The reference to the attribute.
         * </pre>
         *
         * <code>.Reference attr = 3;</code>
         */
        private void clearAttr() {  attr_ = null;
          bitField0_ = (bitField0_ & ~0x00000002);
        }
  
        public static com.android.aapt.Resources.Styleable.Entry parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 com.android.aapt.Resources.Styleable.Entry parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 com.android.aapt.Resources.Styleable.Entry parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 com.android.aapt.Resources.Styleable.Entry parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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 com.android.aapt.Resources.Styleable.Entry parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.Styleable.Entry parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Styleable.Entry parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Styleable.Entry 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(com.android.aapt.Resources.Styleable.Entry prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * <pre>
         * An attribute defined for this styleable.
         * </pre>
         *
         * Protobuf type {@code Styleable.Entry}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Styleable.Entry, Builder> implements
            // @@protoc_insertion_point(builder_implements:Styleable.Entry)
            com.android.aapt.Resources.Styleable.EntryOrBuilder {
          // Construct using com.android.aapt.Resources.Styleable.Entry.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the attribute was defined within the &lt;declare-styleable&gt; block.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The comment.
           */
          @java.lang.Override
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The bytes for comment.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The comment to set.
           * @return This builder for chaining.
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the declaration.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The bytes for comment to set.
           * @return This builder for chaining.
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>.Reference attr = 3;</code>
           */
          @java.lang.Override
          public boolean hasAttr() {
            return instance.hasAttr();
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>.Reference attr = 3;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Reference getAttr() {
            return instance.getAttr();
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>.Reference attr = 3;</code>
           */
          public Builder setAttr(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.setAttr(value);
            return this;
            }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>.Reference attr = 3;</code>
           */
          public Builder setAttr(
              com.android.aapt.Resources.Reference.Builder builderForValue) {
            copyOnWrite();
            instance.setAttr(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>.Reference attr = 3;</code>
           */
          public Builder mergeAttr(com.android.aapt.Resources.Reference value) {
            copyOnWrite();
            instance.mergeAttr(value);
            return this;
          }
          /**
           * <pre>
           * The reference to the attribute.
           * </pre>
           *
           * <code>.Reference attr = 3;</code>
           */
          public Builder clearAttr() {  copyOnWrite();
            instance.clearAttr();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:Styleable.Entry)
        }
        @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 com.android.aapt.Resources.Styleable.Entry();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = new java.lang.Object[] {
                  "bitField0_",
                  "source_",
                  "comment_",
                  "attr_",
                };
                java.lang.String info =
                    "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                    "\u0208\u0003\u1009\u0001";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.Styleable.Entry> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.Styleable.Entry.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.Styleable.Entry>(
                            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:Styleable.Entry)
        private static final com.android.aapt.Resources.Styleable.Entry DEFAULT_INSTANCE;
        static {
          Entry defaultInstance = new Entry();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Entry.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.Styleable.Entry getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
        public static com.google.protobuf.Parser<Entry> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int ENTRY_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Styleable.Entry> entry_;
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Styleable.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Styleable.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      @java.lang.Override
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Styleable.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      public com.android.aapt.Resources.Styleable.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Styleable.Entry> tmp = entry_;
        if (!tmp.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Styleable.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      private void addEntry(com.android.aapt.Resources.Styleable.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Styleable.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Styleable.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of attribute declarations.
       * </pre>
       *
       * <code>repeated .Styleable.Entry entry = 1;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public static com.android.aapt.Resources.Styleable parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Styleable 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 com.android.aapt.Resources.Styleable parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Styleable 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 com.android.aapt.Resources.Styleable parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Styleable 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 com.android.aapt.Resources.Styleable parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Styleable 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 com.android.aapt.Resources.Styleable parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Styleable parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Styleable parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Styleable 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(com.android.aapt.Resources.Styleable prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a &lt;declare-styleable&gt; XML resource. These are not real resources and
       * only end up as Java fields in the generated R.java. They do not end up in the binary ARSC file.
       * </pre>
       *
       * Protobuf type {@code Styleable}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Styleable, Builder> implements
          // @@protoc_insertion_point(builder_implements:Styleable)
          com.android.aapt.Resources.StyleableOrBuilder {
        // Construct using com.android.aapt.Resources.Styleable.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Styleable.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        @java.lang.Override
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Styleable.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Styleable.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Styleable.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Styleable.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Styleable.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Styleable.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The set of attribute declarations.
         * </pre>
         *
         * <code>repeated .Styleable.Entry entry = 1;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Styleable)
      }
      @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 com.android.aapt.Resources.Styleable();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "entry_",
                com.android.aapt.Resources.Styleable.Entry.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Styleable> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Styleable.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Styleable>(
                          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:Styleable)
      private static final com.android.aapt.Resources.Styleable DEFAULT_INSTANCE;
      static {
        Styleable defaultInstance = new Styleable();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Styleable.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Styleable getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Styleable> PARSER;
  
      public static com.google.protobuf.Parser<Styleable> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface ArrayOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Array)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.Array.Element> 
          getElementList();
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      com.android.aapt.Resources.Array.Element getElement(int index);
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      int getElementCount();
    }
    /**
     * <pre>
     * A value that represents an array of resource values.
     * </pre>
     *
     * Protobuf type {@code Array}
     */
    public  static final class Array extends
        com.google.protobuf.GeneratedMessageLite<
            Array, Array.Builder> implements
        // @@protoc_insertion_point(message_implements:Array)
        ArrayOrBuilder {
      private Array() {
        element_ = emptyProtobufList();
      }
      public interface ElementOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Array.Element)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return Whether the source field is set.
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return The source.
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>.Item item = 3;</code>
         * @return Whether the item field is set.
         */
        boolean hasItem();
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>.Item item = 3;</code>
         * @return The item.
         */
        com.android.aapt.Resources.Item getItem();
      }
      /**
       * <pre>
       * A single element of the array.
       * </pre>
       *
       * Protobuf type {@code Array.Element}
       */
      public  static final class Element extends
          com.google.protobuf.GeneratedMessageLite<
              Element, Element.Builder> implements
          // @@protoc_insertion_point(message_implements:Array.Element)
          ElementOrBuilder {
        private Element() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the element was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         */
        private void setComment(
            java.lang.String value) {
          java.lang.Class<?> valueClass = value.getClass();
    
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>string comment = 2;</code>
         */
        private void clearComment() {
  
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the element.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          comment_ = value.toStringUtf8();
  
        }
  
        public static final int ITEM_FIELD_NUMBER = 3;
        private com.android.aapt.Resources.Item item_;
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>.Item item = 3;</code>
         */
        @java.lang.Override
        public boolean hasItem() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>.Item item = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Item getItem() {
          return item_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : item_;
        }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>.Item item = 3;</code>
         */
        private void setItem(com.android.aapt.Resources.Item value) {
          value.getClass();
    item_ = value;
          bitField0_ |= 0x00000002;
          }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>.Item item = 3;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeItem(com.android.aapt.Resources.Item value) {
          value.getClass();
    if (item_ != null &&
              item_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
            item_ =
              com.android.aapt.Resources.Item.newBuilder(item_).mergeFrom(value).buildPartial();
          } else {
            item_ = value;
          }
          bitField0_ |= 0x00000002;
        }
        /**
         * <pre>
         * The value assigned to this element.
         * </pre>
         *
         * <code>.Item item = 3;</code>
         */
        private void clearItem() {  item_ = null;
          bitField0_ = (bitField0_ & ~0x00000002);
        }
  
        public static com.android.aapt.Resources.Array.Element parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Array.Element 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 com.android.aapt.Resources.Array.Element parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Array.Element 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 com.android.aapt.Resources.Array.Element parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Array.Element 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 com.android.aapt.Resources.Array.Element parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Array.Element 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 com.android.aapt.Resources.Array.Element parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.Array.Element parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Array.Element parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Array.Element 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(com.android.aapt.Resources.Array.Element prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * <pre>
         * A single element of the array.
         * </pre>
         *
         * Protobuf type {@code Array.Element}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Array.Element, Builder> implements
            // @@protoc_insertion_point(builder_implements:Array.Element)
            com.android.aapt.Resources.Array.ElementOrBuilder {
          // Construct using com.android.aapt.Resources.Array.Element.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the element was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The comment.
           */
          @java.lang.Override
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The bytes for comment.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The comment to set.
           * @return This builder for chaining.
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the element.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The bytes for comment to set.
           * @return This builder for chaining.
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>.Item item = 3;</code>
           */
          @java.lang.Override
          public boolean hasItem() {
            return instance.hasItem();
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>.Item item = 3;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Item getItem() {
            return instance.getItem();
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>.Item item = 3;</code>
           */
          public Builder setItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.setItem(value);
            return this;
            }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>.Item item = 3;</code>
           */
          public Builder setItem(
              com.android.aapt.Resources.Item.Builder builderForValue) {
            copyOnWrite();
            instance.setItem(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>.Item item = 3;</code>
           */
          public Builder mergeItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.mergeItem(value);
            return this;
          }
          /**
           * <pre>
           * The value assigned to this element.
           * </pre>
           *
           * <code>.Item item = 3;</code>
           */
          public Builder clearItem() {  copyOnWrite();
            instance.clearItem();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:Array.Element)
        }
        @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 com.android.aapt.Resources.Array.Element();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = new java.lang.Object[] {
                  "bitField0_",
                  "source_",
                  "comment_",
                  "item_",
                };
                java.lang.String info =
                    "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                    "\u0208\u0003\u1009\u0001";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.Array.Element> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.Array.Element.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.Array.Element>(
                            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:Array.Element)
        private static final com.android.aapt.Resources.Array.Element DEFAULT_INSTANCE;
        static {
          Element defaultInstance = new Element();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Element.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.Array.Element getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Element> PARSER;
  
        public static com.google.protobuf.Parser<Element> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int ELEMENT_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Array.Element> element_;
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Array.Element> getElementList() {
        return element_;
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Array.ElementOrBuilder> 
          getElementOrBuilderList() {
        return element_;
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      @java.lang.Override
      public int getElementCount() {
        return element_.size();
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Array.Element getElement(int index) {
        return element_.get(index);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      public com.android.aapt.Resources.Array.ElementOrBuilder getElementOrBuilder(
          int index) {
        return element_.get(index);
      }
      private void ensureElementIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Array.Element> tmp = element_;
        if (!tmp.isModifiable()) {
          element_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      private void setElement(
          int index, com.android.aapt.Resources.Array.Element value) {
        value.getClass();
    ensureElementIsMutable();
        element_.set(index, value);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      private void addElement(com.android.aapt.Resources.Array.Element value) {
        value.getClass();
    ensureElementIsMutable();
        element_.add(value);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      private void addElement(
          int index, com.android.aapt.Resources.Array.Element value) {
        value.getClass();
    ensureElementIsMutable();
        element_.add(index, value);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      private void addAllElement(
          java.lang.Iterable<? extends com.android.aapt.Resources.Array.Element> values) {
        ensureElementIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, element_);
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      private void clearElement() {
        element_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The list of array elements.
       * </pre>
       *
       * <code>repeated .Array.Element element = 1;</code>
       */
      private void removeElement(int index) {
        ensureElementIsMutable();
        element_.remove(index);
      }
  
      public static com.android.aapt.Resources.Array parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Array 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 com.android.aapt.Resources.Array parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Array 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 com.android.aapt.Resources.Array parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Array 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 com.android.aapt.Resources.Array parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Array 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 com.android.aapt.Resources.Array parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Array parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Array parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Array 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(com.android.aapt.Resources.Array prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that represents an array of resource values.
       * </pre>
       *
       * Protobuf type {@code Array}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Array, Builder> implements
          // @@protoc_insertion_point(builder_implements:Array)
          com.android.aapt.Resources.ArrayOrBuilder {
        // Construct using com.android.aapt.Resources.Array.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Array.Element> getElementList() {
          return java.util.Collections.unmodifiableList(
              instance.getElementList());
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        @java.lang.Override
        public int getElementCount() {
          return instance.getElementCount();
        }/**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Array.Element getElement(int index) {
          return instance.getElement(index);
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder setElement(
            int index, com.android.aapt.Resources.Array.Element value) {
          copyOnWrite();
          instance.setElement(index, value);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder setElement(
            int index, com.android.aapt.Resources.Array.Element.Builder builderForValue) {
          copyOnWrite();
          instance.setElement(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder addElement(com.android.aapt.Resources.Array.Element value) {
          copyOnWrite();
          instance.addElement(value);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder addElement(
            int index, com.android.aapt.Resources.Array.Element value) {
          copyOnWrite();
          instance.addElement(index, value);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder addElement(
            com.android.aapt.Resources.Array.Element.Builder builderForValue) {
          copyOnWrite();
          instance.addElement(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder addElement(
            int index, com.android.aapt.Resources.Array.Element.Builder builderForValue) {
          copyOnWrite();
          instance.addElement(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder addAllElement(
            java.lang.Iterable<? extends com.android.aapt.Resources.Array.Element> values) {
          copyOnWrite();
          instance.addAllElement(values);
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder clearElement() {
          copyOnWrite();
          instance.clearElement();
          return this;
        }
        /**
         * <pre>
         * The list of array elements.
         * </pre>
         *
         * <code>repeated .Array.Element element = 1;</code>
         */
        public Builder removeElement(int index) {
          copyOnWrite();
          instance.removeElement(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Array)
      }
      @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 com.android.aapt.Resources.Array();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "element_",
                com.android.aapt.Resources.Array.Element.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Array> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Array.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Array>(
                          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:Array)
      private static final com.android.aapt.Resources.Array DEFAULT_INSTANCE;
      static {
        Array defaultInstance = new Array();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Array.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Array getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Array> PARSER;
  
      public static com.google.protobuf.Parser<Array> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface PluralOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Plural)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.Plural.Entry> 
          getEntryList();
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      com.android.aapt.Resources.Plural.Entry getEntry(int index);
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      int getEntryCount();
    }
    /**
     * <pre>
     * A value that represents a string and its many variations based on plurality.
     * </pre>
     *
     * Protobuf type {@code Plural}
     */
    public  static final class Plural extends
        com.google.protobuf.GeneratedMessageLite<
            Plural, Plural.Builder> implements
        // @@protoc_insertion_point(message_implements:Plural)
        PluralOrBuilder {
      private Plural() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The arity of the plural.
       * </pre>
       *
       * Protobuf enum {@code Plural.Arity}
       */
      public enum Arity
          implements com.google.protobuf.Internal.EnumLite {
        /**
         * <code>ZERO = 0;</code>
         */
        ZERO(0),
        /**
         * <code>ONE = 1;</code>
         */
        ONE(1),
        /**
         * <code>TWO = 2;</code>
         */
        TWO(2),
        /**
         * <code>FEW = 3;</code>
         */
        FEW(3),
        /**
         * <code>MANY = 4;</code>
         */
        MANY(4),
        /**
         * <code>OTHER = 5;</code>
         */
        OTHER(5),
        UNRECOGNIZED(-1),
        ;
  
        /**
         * <code>ZERO = 0;</code>
         */
        public static final int ZERO_VALUE = 0;
        /**
         * <code>ONE = 1;</code>
         */
        public static final int ONE_VALUE = 1;
        /**
         * <code>TWO = 2;</code>
         */
        public static final int TWO_VALUE = 2;
        /**
         * <code>FEW = 3;</code>
         */
        public static final int FEW_VALUE = 3;
        /**
         * <code>MANY = 4;</code>
         */
        public static final int MANY_VALUE = 4;
        /**
         * <code>OTHER = 5;</code>
         */
        public static final int OTHER_VALUE = 5;
  
  
        @java.lang.Override
        public final int getNumber() {
          if (this == UNRECOGNIZED) {
            throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
          }
          return value;
        }
  
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static Arity valueOf(int value) {
          return forNumber(value);
        }
  
        public static Arity forNumber(int value) {
          switch (value) {
            case 0: return ZERO;
            case 1: return ONE;
            case 2: return TWO;
            case 3: return FEW;
            case 4: return MANY;
            case 5: return OTHER;
            default: return null;
          }
        }
  
        public static com.google.protobuf.Internal.EnumLiteMap<Arity>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            Arity> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<Arity>() {
                @java.lang.Override
                public Arity findValueByNumber(int number) {
                  return Arity.forNumber(number);
                }
              };
  
        public static com.google.protobuf.Internal.EnumVerifier 
            internalGetVerifier() {
          return ArityVerifier.INSTANCE;
        }
  
        private static final class ArityVerifier implements 
             com.google.protobuf.Internal.EnumVerifier { 
                static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new ArityVerifier();
                @java.lang.Override
                public boolean isInRange(int number) {
                  return Arity.forNumber(number) != null;
                }
              };
  
        private final int value;
  
        private Arity(int value) {
          this.value = value;
        }
  
        // @@protoc_insertion_point(enum_scope:Plural.Arity)
      }
  
      public interface EntryOrBuilder extends
          // @@protoc_insertion_point(interface_extends:Plural.Entry)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return Whether the source field is set.
         */
        boolean hasSource();
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         * @return The source.
         */
        com.android.aapt.Resources.Source getSource();
  
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        java.lang.String getComment();
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        com.google.protobuf.ByteString
            getCommentBytes();
  
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>.Plural.Arity arity = 3;</code>
         * @return The enum numeric value on the wire for arity.
         */
        int getArityValue();
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>.Plural.Arity arity = 3;</code>
         * @return The arity.
         */
        com.android.aapt.Resources.Plural.Arity getArity();
  
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         * @return Whether the item field is set.
         */
        boolean hasItem();
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         * @return The item.
         */
        com.android.aapt.Resources.Item getItem();
      }
      /**
       * <pre>
       * The plural value for a given arity.
       * </pre>
       *
       * Protobuf type {@code Plural.Entry}
       */
      public  static final class Entry extends
          com.google.protobuf.GeneratedMessageLite<
              Entry, Entry.Builder> implements
          // @@protoc_insertion_point(message_implements:Plural.Entry)
          EntryOrBuilder {
        private Entry() {
          comment_ = "";
        }
        private int bitField0_;
        public static final int SOURCE_FIELD_NUMBER = 1;
        private com.android.aapt.Resources.Source source_;
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Source getSource() {
          return source_ == null ? com.android.aapt.Resources.Source.getDefaultInstance() : source_;
        }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void setSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    source_ = value;
          bitField0_ |= 0x00000001;
          }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeSource(com.android.aapt.Resources.Source value) {
          value.getClass();
    if (source_ != null &&
              source_ != com.android.aapt.Resources.Source.getDefaultInstance()) {
            source_ =
              com.android.aapt.Resources.Source.newBuilder(source_).mergeFrom(value).buildPartial();
          } else {
            source_ = value;
          }
          bitField0_ |= 0x00000001;
        }
        /**
         * <pre>
         * Where the plural was defined.
         * </pre>
         *
         * <code>.Source source = 1;</code>
         */
        private void clearSource() {  source_ = null;
          bitField0_ = (bitField0_ & ~0x00000001);
        }
  
        public static final int COMMENT_FIELD_NUMBER = 2;
        private java.lang.String comment_;
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The comment.
         */
        @java.lang.Override
        public java.lang.String getComment() {
          return comment_;
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @return The bytes for comment.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getCommentBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(comment_);
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The comment to set.
         */
        private void setComment(
            java.lang.String value) {
          java.lang.Class<?> valueClass = value.getClass();
    
          comment_ = value;
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>string comment = 2;</code>
         */
        private void clearComment() {
  
          comment_ = getDefaultInstance().getComment();
        }
        /**
         * <pre>
         * Any comments associated with the plural.
         * </pre>
         *
         * <code>string comment = 2;</code>
         * @param value The bytes for comment to set.
         */
        private void setCommentBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          comment_ = value.toStringUtf8();
  
        }
  
        public static final int ARITY_FIELD_NUMBER = 3;
        private int arity_;
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>.Plural.Arity arity = 3;</code>
         * @return The enum numeric value on the wire for arity.
         */
        @java.lang.Override
        public int getArityValue() {
          return arity_;
        }
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>.Plural.Arity arity = 3;</code>
         * @return The arity.
         */
        @java.lang.Override
        public com.android.aapt.Resources.Plural.Arity getArity() {
          com.android.aapt.Resources.Plural.Arity result = com.android.aapt.Resources.Plural.Arity.forNumber(arity_);
          return result == null ? com.android.aapt.Resources.Plural.Arity.UNRECOGNIZED : result;
        }
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>.Plural.Arity arity = 3;</code>
         * @param value The enum numeric value on the wire for arity to set.
         */
        private void setArityValue(int value) {
            arity_ = value;
        }
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>.Plural.Arity arity = 3;</code>
         * @param value The arity to set.
         */
        private void setArity(com.android.aapt.Resources.Plural.Arity value) {
          arity_ = value.getNumber();
  
        }
        /**
         * <pre>
         * The arity of the plural.
         * </pre>
         *
         * <code>.Plural.Arity arity = 3;</code>
         */
        private void clearArity() {
  
          arity_ = 0;
        }
  
        public static final int ITEM_FIELD_NUMBER = 4;
        private com.android.aapt.Resources.Item item_;
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        @java.lang.Override
        public boolean hasItem() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Item getItem() {
          return item_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : item_;
        }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        private void setItem(com.android.aapt.Resources.Item value) {
          value.getClass();
    item_ = value;
          bitField0_ |= 0x00000002;
          }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        @java.lang.SuppressWarnings({"ReferenceEquality"})
        private void mergeItem(com.android.aapt.Resources.Item value) {
          value.getClass();
    if (item_ != null &&
              item_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
            item_ =
              com.android.aapt.Resources.Item.newBuilder(item_).mergeFrom(value).buildPartial();
          } else {
            item_ = value;
          }
          bitField0_ |= 0x00000002;
        }
        /**
         * <pre>
         * The value assigned to this plural.
         * </pre>
         *
         * <code>.Item item = 4;</code>
         */
        private void clearItem() {  item_ = null;
          bitField0_ = (bitField0_ & ~0x00000002);
        }
  
        public static com.android.aapt.Resources.Plural.Entry parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 com.android.aapt.Resources.Plural.Entry parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 com.android.aapt.Resources.Plural.Entry parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 com.android.aapt.Resources.Plural.Entry parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Plural.Entry 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 com.android.aapt.Resources.Plural.Entry parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.Plural.Entry parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.Plural.Entry parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.Plural.Entry 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(com.android.aapt.Resources.Plural.Entry prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * <pre>
         * The plural value for a given arity.
         * </pre>
         *
         * Protobuf type {@code Plural.Entry}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.Plural.Entry, Builder> implements
            // @@protoc_insertion_point(builder_implements:Plural.Entry)
            com.android.aapt.Resources.Plural.EntryOrBuilder {
          // Construct using com.android.aapt.Resources.Plural.Entry.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public boolean hasSource() {
            return instance.hasSource();
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Source getSource() {
            return instance.getSource();
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.setSource(value);
            return this;
            }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder setSource(
              com.android.aapt.Resources.Source.Builder builderForValue) {
            copyOnWrite();
            instance.setSource(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder mergeSource(com.android.aapt.Resources.Source value) {
            copyOnWrite();
            instance.mergeSource(value);
            return this;
          }
          /**
           * <pre>
           * Where the plural was defined.
           * </pre>
           *
           * <code>.Source source = 1;</code>
           */
          public Builder clearSource() {  copyOnWrite();
            instance.clearSource();
            return this;
          }
  
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The comment.
           */
          @java.lang.Override
          public java.lang.String getComment() {
            return instance.getComment();
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return The bytes for comment.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getCommentBytes() {
            return instance.getCommentBytes();
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The comment to set.
           * @return This builder for chaining.
           */
          public Builder setComment(
              java.lang.String value) {
            copyOnWrite();
            instance.setComment(value);
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearComment() {
            copyOnWrite();
            instance.clearComment();
            return this;
          }
          /**
           * <pre>
           * Any comments associated with the plural.
           * </pre>
           *
           * <code>string comment = 2;</code>
           * @param value The bytes for comment to set.
           * @return This builder for chaining.
           */
          public Builder setCommentBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setCommentBytes(value);
            return this;
          }
  
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>.Plural.Arity arity = 3;</code>
           * @return The enum numeric value on the wire for arity.
           */
          @java.lang.Override
          public int getArityValue() {
            return instance.getArityValue();
          }
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>.Plural.Arity arity = 3;</code>
           * @param value The arity to set.
           * @return This builder for chaining.
           */
          public Builder setArityValue(int value) {
            copyOnWrite();
            instance.setArityValue(value);
            return this;
          }
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>.Plural.Arity arity = 3;</code>
           * @return The arity.
           */
          @java.lang.Override
          public com.android.aapt.Resources.Plural.Arity getArity() {
            return instance.getArity();
          }
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>.Plural.Arity arity = 3;</code>
           * @param value The enum numeric value on the wire for arity to set.
           * @return This builder for chaining.
           */
          public Builder setArity(com.android.aapt.Resources.Plural.Arity value) {
            copyOnWrite();
            instance.setArity(value);
            return this;
          }
          /**
           * <pre>
           * The arity of the plural.
           * </pre>
           *
           * <code>.Plural.Arity arity = 3;</code>
           * @return This builder for chaining.
           */
          public Builder clearArity() {
            copyOnWrite();
            instance.clearArity();
            return this;
          }
  
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          @java.lang.Override
          public boolean hasItem() {
            return instance.hasItem();
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          @java.lang.Override
          public com.android.aapt.Resources.Item getItem() {
            return instance.getItem();
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder setItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.setItem(value);
            return this;
            }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder setItem(
              com.android.aapt.Resources.Item.Builder builderForValue) {
            copyOnWrite();
            instance.setItem(builderForValue.build());
            return this;
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder mergeItem(com.android.aapt.Resources.Item value) {
            copyOnWrite();
            instance.mergeItem(value);
            return this;
          }
          /**
           * <pre>
           * The value assigned to this plural.
           * </pre>
           *
           * <code>.Item item = 4;</code>
           */
          public Builder clearItem() {  copyOnWrite();
            instance.clearItem();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:Plural.Entry)
        }
        @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 com.android.aapt.Resources.Plural.Entry();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = new java.lang.Object[] {
                  "bitField0_",
                  "source_",
                  "comment_",
                  "arity_",
                  "item_",
                };
                java.lang.String info =
                    "\u0000\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                    "\u0208\u0003\f\u0004\u1009\u0001";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.Plural.Entry> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.Plural.Entry.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.Plural.Entry>(
                            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:Plural.Entry)
        private static final com.android.aapt.Resources.Plural.Entry DEFAULT_INSTANCE;
        static {
          Entry defaultInstance = new Entry();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Entry.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.Plural.Entry getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Entry> PARSER;
  
        public static com.google.protobuf.Parser<Entry> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int ENTRY_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Plural.Entry> entry_;
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.Plural.Entry> getEntryList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.Plural.EntryOrBuilder> 
          getEntryOrBuilderList() {
        return entry_;
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      @java.lang.Override
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Plural.Entry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      public com.android.aapt.Resources.Plural.EntryOrBuilder getEntryOrBuilder(
          int index) {
        return entry_.get(index);
      }
      private void ensureEntryIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.Plural.Entry> tmp = entry_;
        if (!tmp.isModifiable()) {
          entry_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      private void setEntry(
          int index, com.android.aapt.Resources.Plural.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.set(index, value);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      private void addEntry(com.android.aapt.Resources.Plural.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(value);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      private void addEntry(
          int index, com.android.aapt.Resources.Plural.Entry value) {
        value.getClass();
    ensureEntryIsMutable();
        entry_.add(index, value);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      private void addAllEntry(
          java.lang.Iterable<? extends com.android.aapt.Resources.Plural.Entry> values) {
        ensureEntryIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, entry_);
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      private void clearEntry() {
        entry_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The set of arity/plural mappings.
       * </pre>
       *
       * <code>repeated .Plural.Entry entry = 1;</code>
       */
      private void removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);
      }
  
      public static com.android.aapt.Resources.Plural parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Plural 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 com.android.aapt.Resources.Plural parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Plural 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 com.android.aapt.Resources.Plural parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.Plural 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 com.android.aapt.Resources.Plural parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Plural 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 com.android.aapt.Resources.Plural parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.Plural parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.Plural parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.Plural 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(com.android.aapt.Resources.Plural prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A value that represents a string and its many variations based on plurality.
       * </pre>
       *
       * Protobuf type {@code Plural}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.Plural, Builder> implements
          // @@protoc_insertion_point(builder_implements:Plural)
          com.android.aapt.Resources.PluralOrBuilder {
        // Construct using com.android.aapt.Resources.Plural.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.Plural.Entry> getEntryList() {
          return java.util.Collections.unmodifiableList(
              instance.getEntryList());
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        @java.lang.Override
        public int getEntryCount() {
          return instance.getEntryCount();
        }/**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Plural.Entry getEntry(int index) {
          return instance.getEntry(index);
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Plural.Entry value) {
          copyOnWrite();
          instance.setEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder setEntry(
            int index, com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.setEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(com.android.aapt.Resources.Plural.Entry value) {
          copyOnWrite();
          instance.addEntry(value);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Plural.Entry value) {
          copyOnWrite();
          instance.addEntry(index, value);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(
            com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder addEntry(
            int index, com.android.aapt.Resources.Plural.Entry.Builder builderForValue) {
          copyOnWrite();
          instance.addEntry(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder addAllEntry(
            java.lang.Iterable<? extends com.android.aapt.Resources.Plural.Entry> values) {
          copyOnWrite();
          instance.addAllEntry(values);
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder clearEntry() {
          copyOnWrite();
          instance.clearEntry();
          return this;
        }
        /**
         * <pre>
         * The set of arity/plural mappings.
         * </pre>
         *
         * <code>repeated .Plural.Entry entry = 1;</code>
         */
        public Builder removeEntry(int index) {
          copyOnWrite();
          instance.removeEntry(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:Plural)
      }
      @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 com.android.aapt.Resources.Plural();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "entry_",
                com.android.aapt.Resources.Plural.Entry.class,
              };
              java.lang.String info =
                  "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.Plural> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.Plural.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.Plural>(
                          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:Plural)
      private static final com.android.aapt.Resources.Plural DEFAULT_INSTANCE;
      static {
        Plural defaultInstance = new Plural();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          Plural.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.Plural getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<Plural> PARSER;
  
      public static com.google.protobuf.Parser<Plural> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlNodeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:XmlNode)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>.XmlElement element = 1;</code>
       * @return Whether the element field is set.
       */
      boolean hasElement();
      /**
       * <code>.XmlElement element = 1;</code>
       * @return The element.
       */
      com.android.aapt.Resources.XmlElement getElement();
  
      /**
       * <code>string text = 2;</code>
       * @return Whether the text field is set.
       */
      boolean hasText();
      /**
       * <code>string text = 2;</code>
       * @return The text.
       */
      java.lang.String getText();
      /**
       * <code>string text = 2;</code>
       * @return The bytes for text.
       */
      com.google.protobuf.ByteString
          getTextBytes();
  
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       * @return The source.
       */
      com.android.aapt.Resources.SourcePosition getSource();
  
      public com.android.aapt.Resources.XmlNode.NodeCase getNodeCase();
    }
    /**
     * <pre>
     * Defines an abstract XmlNode that must be either an XmlElement, or
     * a text node represented by a string.
     * </pre>
     *
     * Protobuf type {@code XmlNode}
     */
    public  static final class XmlNode extends
        com.google.protobuf.GeneratedMessageLite<
            XmlNode, XmlNode.Builder> implements
        // @@protoc_insertion_point(message_implements:XmlNode)
        XmlNodeOrBuilder {
      private XmlNode() {
      }
      private int bitField0_;
      private int nodeCase_ = 0;
      private java.lang.Object node_;
      public enum NodeCase {
        ELEMENT(1),
        TEXT(2),
        NODE_NOT_SET(0);
        private final int value;
        private NodeCase(int value) {
          this.value = value;
        }
        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static NodeCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static NodeCase forNumber(int value) {
          switch (value) {
            case 1: return ELEMENT;
            case 2: return TEXT;
            case 0: return NODE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      @java.lang.Override
      public NodeCase
      getNodeCase() {
        return NodeCase.forNumber(
            nodeCase_);
      }
  
      private void clearNode() {
        nodeCase_ = 0;
        node_ = null;
      }
  
      public static final int ELEMENT_FIELD_NUMBER = 1;
      /**
       * <code>.XmlElement element = 1;</code>
       */
      @java.lang.Override
      public boolean hasElement() {
        return nodeCase_ == 1;
      }
      /**
       * <code>.XmlElement element = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.XmlElement getElement() {
        if (nodeCase_ == 1) {
           return (com.android.aapt.Resources.XmlElement) node_;
        }
        return com.android.aapt.Resources.XmlElement.getDefaultInstance();
      }
      /**
       * <code>.XmlElement element = 1;</code>
       */
      private void setElement(com.android.aapt.Resources.XmlElement value) {
        value.getClass();
    node_ = value;
        nodeCase_ = 1;
      }
      /**
       * <code>.XmlElement element = 1;</code>
       */
      private void mergeElement(com.android.aapt.Resources.XmlElement value) {
        value.getClass();
    if (nodeCase_ == 1 &&
            node_ != com.android.aapt.Resources.XmlElement.getDefaultInstance()) {
          node_ = com.android.aapt.Resources.XmlElement.newBuilder((com.android.aapt.Resources.XmlElement) node_)
              .mergeFrom(value).buildPartial();
        } else {
          node_ = value;
        }
        nodeCase_ = 1;
      }
      /**
       * <code>.XmlElement element = 1;</code>
       */
      private void clearElement() {
        if (nodeCase_ == 1) {
          nodeCase_ = 0;
          node_ = null;
        }
      }
  
      public static final int TEXT_FIELD_NUMBER = 2;
      /**
       * <code>string text = 2;</code>
       * @return Whether the text field is set.
       */
      @java.lang.Override
      public boolean hasText() {
        return nodeCase_ == 2;
      }
      /**
       * <code>string text = 2;</code>
       * @return The text.
       */
      @java.lang.Override
      public java.lang.String getText() {
        java.lang.String ref = "";
        if (nodeCase_ == 2) {
          ref = (java.lang.String) node_;
        }
        return ref;
      }
      /**
       * <code>string text = 2;</code>
       * @return The bytes for text.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTextBytes() {
        java.lang.String ref = "";
        if (nodeCase_ == 2) {
          ref = (java.lang.String) node_;
        }
        return com.google.protobuf.ByteString.copyFromUtf8(ref);
      }
      /**
       * <code>string text = 2;</code>
       * @param value The text to set.
       */
      private void setText(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    nodeCase_ = 2;
        node_ = value;
      }
      /**
       * <code>string text = 2;</code>
       */
      private void clearText() {
        if (nodeCase_ == 2) {
          nodeCase_ = 0;
          node_ = null;
        }
      }
      /**
       * <code>string text = 2;</code>
       * @param value The bytes for text to set.
       */
      private void setTextBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        node_ = value.toStringUtf8();
        nodeCase_ = 2;
      }
  
      public static final int SOURCE_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.SourcePosition source_;
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.SourcePosition getSource() {
        return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      private void setSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static com.android.aapt.Resources.XmlNode parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNode 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 com.android.aapt.Resources.XmlNode parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNode 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 com.android.aapt.Resources.XmlNode parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNode 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 com.android.aapt.Resources.XmlNode parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNode 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 com.android.aapt.Resources.XmlNode parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.XmlNode parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlNode parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNode 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(com.android.aapt.Resources.XmlNode prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * Defines an abstract XmlNode that must be either an XmlElement, or
       * a text node represented by a string.
       * </pre>
       *
       * Protobuf type {@code XmlNode}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlNode, Builder> implements
          // @@protoc_insertion_point(builder_implements:XmlNode)
          com.android.aapt.Resources.XmlNodeOrBuilder {
        // Construct using com.android.aapt.Resources.XmlNode.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
        @java.lang.Override
        public NodeCase
            getNodeCase() {
          return instance.getNodeCase();
        }
  
        public Builder clearNode() {
          copyOnWrite();
          instance.clearNode();
          return this;
        }
  
  
        /**
         * <code>.XmlElement element = 1;</code>
         */
        @java.lang.Override
        public boolean hasElement() {
          return instance.hasElement();
        }
        /**
         * <code>.XmlElement element = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.XmlElement getElement() {
          return instance.getElement();
        }
        /**
         * <code>.XmlElement element = 1;</code>
         */
        public Builder setElement(com.android.aapt.Resources.XmlElement value) {
          copyOnWrite();
          instance.setElement(value);
          return this;
        }
        /**
         * <code>.XmlElement element = 1;</code>
         */
        public Builder setElement(
            com.android.aapt.Resources.XmlElement.Builder builderForValue) {
          copyOnWrite();
          instance.setElement(builderForValue.build());
          return this;
        }
        /**
         * <code>.XmlElement element = 1;</code>
         */
        public Builder mergeElement(com.android.aapt.Resources.XmlElement value) {
          copyOnWrite();
          instance.mergeElement(value);
          return this;
        }
        /**
         * <code>.XmlElement element = 1;</code>
         */
        public Builder clearElement() {
          copyOnWrite();
          instance.clearElement();
          return this;
        }
  
        /**
         * <code>string text = 2;</code>
         * @return Whether the text field is set.
         */
        @java.lang.Override
        public boolean hasText() {
          return instance.hasText();
        }
        /**
         * <code>string text = 2;</code>
         * @return The text.
         */
        @java.lang.Override
        public java.lang.String getText() {
          return instance.getText();
        }
        /**
         * <code>string text = 2;</code>
         * @return The bytes for text.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getTextBytes() {
          return instance.getTextBytes();
        }
        /**
         * <code>string text = 2;</code>
         * @param value The text to set.
         * @return This builder for chaining.
         */
        public Builder setText(
            java.lang.String value) {
          copyOnWrite();
          instance.setText(value);
          return this;
        }
        /**
         * <code>string text = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearText() {
          copyOnWrite();
          instance.clearText();
          return this;
        }
        /**
         * <code>string text = 2;</code>
         * @param value The bytes for text to set.
         * @return This builder for chaining.
         */
        public Builder setTextBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setTextBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.SourcePosition getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:XmlNode)
      }
      @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 com.android.aapt.Resources.XmlNode();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "node_",
                "nodeCase_",
                "bitField0_",
                com.android.aapt.Resources.XmlElement.class,
                "source_",
              };
              java.lang.String info =
                  "\u0000\u0003\u0001\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001<\u0000\u0002\u023b" +
                  "\u0000\u0003\u1009\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.XmlNode> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.XmlNode.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.XmlNode>(
                          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:XmlNode)
      private static final com.android.aapt.Resources.XmlNode DEFAULT_INSTANCE;
      static {
        XmlNode defaultInstance = new XmlNode();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          XmlNode.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.XmlNode getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlNode> PARSER;
  
      public static com.google.protobuf.Parser<XmlNode> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlElementOrBuilder extends
        // @@protoc_insertion_point(interface_extends:XmlElement)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      java.util.List<com.android.aapt.Resources.XmlNamespace> 
          getNamespaceDeclarationList();
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      com.android.aapt.Resources.XmlNamespace getNamespaceDeclaration(int index);
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      int getNamespaceDeclarationCount();
  
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>string namespace_uri = 2;</code>
       * @return The namespaceUri.
       */
      java.lang.String getNamespaceUri();
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>string namespace_uri = 2;</code>
       * @return The bytes for namespaceUri.
       */
      com.google.protobuf.ByteString
          getNamespaceUriBytes();
  
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      java.util.List<com.android.aapt.Resources.XmlAttribute> 
          getAttributeList();
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      com.android.aapt.Resources.XmlAttribute getAttribute(int index);
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      int getAttributeCount();
  
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      java.util.List<com.android.aapt.Resources.XmlNode> 
          getChildList();
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      com.android.aapt.Resources.XmlNode getChild(int index);
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      int getChildCount();
    }
    /**
     * <pre>
     * An &lt;element&gt; in an XML document.
     * </pre>
     *
     * Protobuf type {@code XmlElement}
     */
    public  static final class XmlElement extends
        com.google.protobuf.GeneratedMessageLite<
            XmlElement, XmlElement.Builder> implements
        // @@protoc_insertion_point(message_implements:XmlElement)
        XmlElementOrBuilder {
      private XmlElement() {
        namespaceDeclaration_ = emptyProtobufList();
        namespaceUri_ = "";
        name_ = "";
        attribute_ = emptyProtobufList();
        child_ = emptyProtobufList();
      }
      public static final int NAMESPACE_DECLARATION_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlNamespace> namespaceDeclaration_;
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.XmlNamespace> getNamespaceDeclarationList() {
        return namespaceDeclaration_;
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.XmlNamespaceOrBuilder> 
          getNamespaceDeclarationOrBuilderList() {
        return namespaceDeclaration_;
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      @java.lang.Override
      public int getNamespaceDeclarationCount() {
        return namespaceDeclaration_.size();
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.XmlNamespace getNamespaceDeclaration(int index) {
        return namespaceDeclaration_.get(index);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      public com.android.aapt.Resources.XmlNamespaceOrBuilder getNamespaceDeclarationOrBuilder(
          int index) {
        return namespaceDeclaration_.get(index);
      }
      private void ensureNamespaceDeclarationIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlNamespace> tmp = namespaceDeclaration_;
        if (!tmp.isModifiable()) {
          namespaceDeclaration_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      private void setNamespaceDeclaration(
          int index, com.android.aapt.Resources.XmlNamespace value) {
        value.getClass();
    ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.set(index, value);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      private void addNamespaceDeclaration(com.android.aapt.Resources.XmlNamespace value) {
        value.getClass();
    ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.add(value);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      private void addNamespaceDeclaration(
          int index, com.android.aapt.Resources.XmlNamespace value) {
        value.getClass();
    ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.add(index, value);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      private void addAllNamespaceDeclaration(
          java.lang.Iterable<? extends com.android.aapt.Resources.XmlNamespace> values) {
        ensureNamespaceDeclarationIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, namespaceDeclaration_);
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      private void clearNamespaceDeclaration() {
        namespaceDeclaration_ = emptyProtobufList();
      }
      /**
       * <pre>
       * Namespaces defined on this element.
       * </pre>
       *
       * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
       */
      private void removeNamespaceDeclaration(int index) {
        ensureNamespaceDeclarationIsMutable();
        namespaceDeclaration_.remove(index);
      }
  
      public static final int NAMESPACE_URI_FIELD_NUMBER = 2;
      private java.lang.String namespaceUri_;
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>string namespace_uri = 2;</code>
       * @return The namespaceUri.
       */
      @java.lang.Override
      public java.lang.String getNamespaceUri() {
        return namespaceUri_;
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>string namespace_uri = 2;</code>
       * @return The bytes for namespaceUri.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNamespaceUriBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(namespaceUri_);
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>string namespace_uri = 2;</code>
       * @param value The namespaceUri to set.
       */
      private void setNamespaceUri(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        namespaceUri_ = value;
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>string namespace_uri = 2;</code>
       */
      private void clearNamespaceUri() {
  
        namespaceUri_ = getDefaultInstance().getNamespaceUri();
      }
      /**
       * <pre>
       * The namespace URI of this element.
       * </pre>
       *
       * <code>string namespace_uri = 2;</code>
       * @param value The bytes for namespaceUri to set.
       */
      private void setNamespaceUriBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        namespaceUri_ = value.toStringUtf8();
  
      }
  
      public static final int NAME_FIELD_NUMBER = 3;
      private java.lang.String name_;
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @param value The name to set.
       */
      private void setName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        name_ = value;
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>string name = 3;</code>
       */
      private void clearName() {
  
        name_ = getDefaultInstance().getName();
      }
      /**
       * <pre>
       * The name of this element.
       * </pre>
       *
       * <code>string name = 3;</code>
       * @param value The bytes for name to set.
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        name_ = value.toStringUtf8();
  
      }
  
      public static final int ATTRIBUTE_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlAttribute> attribute_;
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.XmlAttribute> getAttributeList() {
        return attribute_;
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.XmlAttributeOrBuilder> 
          getAttributeOrBuilderList() {
        return attribute_;
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      @java.lang.Override
      public int getAttributeCount() {
        return attribute_.size();
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.XmlAttribute getAttribute(int index) {
        return attribute_.get(index);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      public com.android.aapt.Resources.XmlAttributeOrBuilder getAttributeOrBuilder(
          int index) {
        return attribute_.get(index);
      }
      private void ensureAttributeIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlAttribute> tmp = attribute_;
        if (!tmp.isModifiable()) {
          attribute_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      private void setAttribute(
          int index, com.android.aapt.Resources.XmlAttribute value) {
        value.getClass();
    ensureAttributeIsMutable();
        attribute_.set(index, value);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      private void addAttribute(com.android.aapt.Resources.XmlAttribute value) {
        value.getClass();
    ensureAttributeIsMutable();
        attribute_.add(value);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      private void addAttribute(
          int index, com.android.aapt.Resources.XmlAttribute value) {
        value.getClass();
    ensureAttributeIsMutable();
        attribute_.add(index, value);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      private void addAllAttribute(
          java.lang.Iterable<? extends com.android.aapt.Resources.XmlAttribute> values) {
        ensureAttributeIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, attribute_);
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      private void clearAttribute() {
        attribute_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The attributes of this element.
       * </pre>
       *
       * <code>repeated .XmlAttribute attribute = 4;</code>
       */
      private void removeAttribute(int index) {
        ensureAttributeIsMutable();
        attribute_.remove(index);
      }
  
      public static final int CHILD_FIELD_NUMBER = 5;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlNode> child_;
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.XmlNode> getChildList() {
        return child_;
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.XmlNodeOrBuilder> 
          getChildOrBuilderList() {
        return child_;
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      @java.lang.Override
      public int getChildCount() {
        return child_.size();
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.XmlNode getChild(int index) {
        return child_.get(index);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      public com.android.aapt.Resources.XmlNodeOrBuilder getChildOrBuilder(
          int index) {
        return child_.get(index);
      }
      private void ensureChildIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.XmlNode> tmp = child_;
        if (!tmp.isModifiable()) {
          child_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      private void setChild(
          int index, com.android.aapt.Resources.XmlNode value) {
        value.getClass();
    ensureChildIsMutable();
        child_.set(index, value);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      private void addChild(com.android.aapt.Resources.XmlNode value) {
        value.getClass();
    ensureChildIsMutable();
        child_.add(value);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      private void addChild(
          int index, com.android.aapt.Resources.XmlNode value) {
        value.getClass();
    ensureChildIsMutable();
        child_.add(index, value);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      private void addAllChild(
          java.lang.Iterable<? extends com.android.aapt.Resources.XmlNode> values) {
        ensureChildIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, child_);
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      private void clearChild() {
        child_ = emptyProtobufList();
      }
      /**
       * <pre>
       * The children of this element.
       * </pre>
       *
       * <code>repeated .XmlNode child = 5;</code>
       */
      private void removeChild(int index) {
        ensureChildIsMutable();
        child_.remove(index);
      }
  
      public static com.android.aapt.Resources.XmlElement parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlElement 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 com.android.aapt.Resources.XmlElement parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlElement 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 com.android.aapt.Resources.XmlElement parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlElement 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 com.android.aapt.Resources.XmlElement parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlElement 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 com.android.aapt.Resources.XmlElement parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.XmlElement parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlElement parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlElement 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(com.android.aapt.Resources.XmlElement prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * An &lt;element&gt; in an XML document.
       * </pre>
       *
       * Protobuf type {@code XmlElement}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlElement, Builder> implements
          // @@protoc_insertion_point(builder_implements:XmlElement)
          com.android.aapt.Resources.XmlElementOrBuilder {
        // Construct using com.android.aapt.Resources.XmlElement.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.XmlNamespace> getNamespaceDeclarationList() {
          return java.util.Collections.unmodifiableList(
              instance.getNamespaceDeclarationList());
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        @java.lang.Override
        public int getNamespaceDeclarationCount() {
          return instance.getNamespaceDeclarationCount();
        }/**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.XmlNamespace getNamespaceDeclaration(int index) {
          return instance.getNamespaceDeclaration(index);
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder setNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace value) {
          copyOnWrite();
          instance.setNamespaceDeclaration(index, value);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder setNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
          copyOnWrite();
          instance.setNamespaceDeclaration(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(com.android.aapt.Resources.XmlNamespace value) {
          copyOnWrite();
          instance.addNamespaceDeclaration(value);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace value) {
          copyOnWrite();
          instance.addNamespaceDeclaration(index, value);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(
            com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
          copyOnWrite();
          instance.addNamespaceDeclaration(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addNamespaceDeclaration(
            int index, com.android.aapt.Resources.XmlNamespace.Builder builderForValue) {
          copyOnWrite();
          instance.addNamespaceDeclaration(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder addAllNamespaceDeclaration(
            java.lang.Iterable<? extends com.android.aapt.Resources.XmlNamespace> values) {
          copyOnWrite();
          instance.addAllNamespaceDeclaration(values);
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder clearNamespaceDeclaration() {
          copyOnWrite();
          instance.clearNamespaceDeclaration();
          return this;
        }
        /**
         * <pre>
         * Namespaces defined on this element.
         * </pre>
         *
         * <code>repeated .XmlNamespace namespace_declaration = 1;</code>
         */
        public Builder removeNamespaceDeclaration(int index) {
          copyOnWrite();
          instance.removeNamespaceDeclaration(index);
          return this;
        }
  
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>string namespace_uri = 2;</code>
         * @return The namespaceUri.
         */
        @java.lang.Override
        public java.lang.String getNamespaceUri() {
          return instance.getNamespaceUri();
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>string namespace_uri = 2;</code>
         * @return The bytes for namespaceUri.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNamespaceUriBytes() {
          return instance.getNamespaceUriBytes();
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>string namespace_uri = 2;</code>
         * @param value The namespaceUri to set.
         * @return This builder for chaining.
         */
        public Builder setNamespaceUri(
            java.lang.String value) {
          copyOnWrite();
          instance.setNamespaceUri(value);
          return this;
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>string namespace_uri = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearNamespaceUri() {
          copyOnWrite();
          instance.clearNamespaceUri();
          return this;
        }
        /**
         * <pre>
         * The namespace URI of this element.
         * </pre>
         *
         * <code>string namespace_uri = 2;</code>
         * @param value The bytes for namespaceUri to set.
         * @return This builder for chaining.
         */
        public Builder setNamespaceUriBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNamespaceUriBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <pre>
         * The name of this element.
         * </pre>
         *
         * <code>string name = 3;</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.XmlAttribute> getAttributeList() {
          return java.util.Collections.unmodifiableList(
              instance.getAttributeList());
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        @java.lang.Override
        public int getAttributeCount() {
          return instance.getAttributeCount();
        }/**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.XmlAttribute getAttribute(int index) {
          return instance.getAttribute(index);
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder setAttribute(
            int index, com.android.aapt.Resources.XmlAttribute value) {
          copyOnWrite();
          instance.setAttribute(index, value);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder setAttribute(
            int index, com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
          copyOnWrite();
          instance.setAttribute(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(com.android.aapt.Resources.XmlAttribute value) {
          copyOnWrite();
          instance.addAttribute(value);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(
            int index, com.android.aapt.Resources.XmlAttribute value) {
          copyOnWrite();
          instance.addAttribute(index, value);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(
            com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
          copyOnWrite();
          instance.addAttribute(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder addAttribute(
            int index, com.android.aapt.Resources.XmlAttribute.Builder builderForValue) {
          copyOnWrite();
          instance.addAttribute(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder addAllAttribute(
            java.lang.Iterable<? extends com.android.aapt.Resources.XmlAttribute> values) {
          copyOnWrite();
          instance.addAllAttribute(values);
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder clearAttribute() {
          copyOnWrite();
          instance.clearAttribute();
          return this;
        }
        /**
         * <pre>
         * The attributes of this element.
         * </pre>
         *
         * <code>repeated .XmlAttribute attribute = 4;</code>
         */
        public Builder removeAttribute(int index) {
          copyOnWrite();
          instance.removeAttribute(index);
          return this;
        }
  
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.XmlNode> getChildList() {
          return java.util.Collections.unmodifiableList(
              instance.getChildList());
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        @java.lang.Override
        public int getChildCount() {
          return instance.getChildCount();
        }/**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.XmlNode getChild(int index) {
          return instance.getChild(index);
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder setChild(
            int index, com.android.aapt.Resources.XmlNode value) {
          copyOnWrite();
          instance.setChild(index, value);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder setChild(
            int index, com.android.aapt.Resources.XmlNode.Builder builderForValue) {
          copyOnWrite();
          instance.setChild(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder addChild(com.android.aapt.Resources.XmlNode value) {
          copyOnWrite();
          instance.addChild(value);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder addChild(
            int index, com.android.aapt.Resources.XmlNode value) {
          copyOnWrite();
          instance.addChild(index, value);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder addChild(
            com.android.aapt.Resources.XmlNode.Builder builderForValue) {
          copyOnWrite();
          instance.addChild(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder addChild(
            int index, com.android.aapt.Resources.XmlNode.Builder builderForValue) {
          copyOnWrite();
          instance.addChild(index,
              builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder addAllChild(
            java.lang.Iterable<? extends com.android.aapt.Resources.XmlNode> values) {
          copyOnWrite();
          instance.addAllChild(values);
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder clearChild() {
          copyOnWrite();
          instance.clearChild();
          return this;
        }
        /**
         * <pre>
         * The children of this element.
         * </pre>
         *
         * <code>repeated .XmlNode child = 5;</code>
         */
        public Builder removeChild(int index) {
          copyOnWrite();
          instance.removeChild(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:XmlElement)
      }
      @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 com.android.aapt.Resources.XmlElement();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "namespaceDeclaration_",
                com.android.aapt.Resources.XmlNamespace.class,
                "namespaceUri_",
                "name_",
                "attribute_",
                com.android.aapt.Resources.XmlAttribute.class,
                "child_",
                com.android.aapt.Resources.XmlNode.class,
              };
              java.lang.String info =
                  "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0000\u0003\u0000\u0001\u001b\u0002\u0208" +
                  "\u0003\u0208\u0004\u001b\u0005\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.XmlElement> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.XmlElement.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.XmlElement>(
                          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:XmlElement)
      private static final com.android.aapt.Resources.XmlElement DEFAULT_INSTANCE;
      static {
        XmlElement defaultInstance = new XmlElement();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          XmlElement.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.XmlElement getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlElement> PARSER;
  
      public static com.google.protobuf.Parser<XmlElement> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlNamespaceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:XmlNamespace)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string prefix = 1;</code>
       * @return The prefix.
       */
      java.lang.String getPrefix();
      /**
       * <code>string prefix = 1;</code>
       * @return The bytes for prefix.
       */
      com.google.protobuf.ByteString
          getPrefixBytes();
  
      /**
       * <code>string uri = 2;</code>
       * @return The uri.
       */
      java.lang.String getUri();
      /**
       * <code>string uri = 2;</code>
       * @return The bytes for uri.
       */
      com.google.protobuf.ByteString
          getUriBytes();
  
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       * @return The source.
       */
      com.android.aapt.Resources.SourcePosition getSource();
    }
    /**
     * <pre>
     * A namespace declaration on an XmlElement (xmlns:android="http://...").
     * </pre>
     *
     * Protobuf type {@code XmlNamespace}
     */
    public  static final class XmlNamespace extends
        com.google.protobuf.GeneratedMessageLite<
            XmlNamespace, XmlNamespace.Builder> implements
        // @@protoc_insertion_point(message_implements:XmlNamespace)
        XmlNamespaceOrBuilder {
      private XmlNamespace() {
        prefix_ = "";
        uri_ = "";
      }
      private int bitField0_;
      public static final int PREFIX_FIELD_NUMBER = 1;
      private java.lang.String prefix_;
      /**
       * <code>string prefix = 1;</code>
       * @return The prefix.
       */
      @java.lang.Override
      public java.lang.String getPrefix() {
        return prefix_;
      }
      /**
       * <code>string prefix = 1;</code>
       * @return The bytes for prefix.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPrefixBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(prefix_);
      }
      /**
       * <code>string prefix = 1;</code>
       * @param value The prefix to set.
       */
      private void setPrefix(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        prefix_ = value;
      }
      /**
       * <code>string prefix = 1;</code>
       */
      private void clearPrefix() {
  
        prefix_ = getDefaultInstance().getPrefix();
      }
      /**
       * <code>string prefix = 1;</code>
       * @param value The bytes for prefix to set.
       */
      private void setPrefixBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        prefix_ = value.toStringUtf8();
  
      }
  
      public static final int URI_FIELD_NUMBER = 2;
      private java.lang.String uri_;
      /**
       * <code>string uri = 2;</code>
       * @return The uri.
       */
      @java.lang.Override
      public java.lang.String getUri() {
        return uri_;
      }
      /**
       * <code>string uri = 2;</code>
       * @return The bytes for uri.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUriBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(uri_);
      }
      /**
       * <code>string uri = 2;</code>
       * @param value The uri to set.
       */
      private void setUri(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        uri_ = value;
      }
      /**
       * <code>string uri = 2;</code>
       */
      private void clearUri() {
  
        uri_ = getDefaultInstance().getUri();
      }
      /**
       * <code>string uri = 2;</code>
       * @param value The bytes for uri to set.
       */
      private void setUriBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        uri_ = value.toStringUtf8();
  
      }
  
      public static final int SOURCE_FIELD_NUMBER = 3;
      private com.android.aapt.Resources.SourcePosition source_;
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.SourcePosition getSource() {
        return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      private void setSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 3;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static com.android.aapt.Resources.XmlNamespace parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 com.android.aapt.Resources.XmlNamespace parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 com.android.aapt.Resources.XmlNamespace parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 com.android.aapt.Resources.XmlNamespace parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNamespace 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 com.android.aapt.Resources.XmlNamespace parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.XmlNamespace parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlNamespace parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlNamespace 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(com.android.aapt.Resources.XmlNamespace prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * A namespace declaration on an XmlElement (xmlns:android="http://...").
       * </pre>
       *
       * Protobuf type {@code XmlNamespace}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlNamespace, Builder> implements
          // @@protoc_insertion_point(builder_implements:XmlNamespace)
          com.android.aapt.Resources.XmlNamespaceOrBuilder {
        // Construct using com.android.aapt.Resources.XmlNamespace.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string prefix = 1;</code>
         * @return The prefix.
         */
        @java.lang.Override
        public java.lang.String getPrefix() {
          return instance.getPrefix();
        }
        /**
         * <code>string prefix = 1;</code>
         * @return The bytes for prefix.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getPrefixBytes() {
          return instance.getPrefixBytes();
        }
        /**
         * <code>string prefix = 1;</code>
         * @param value The prefix to set.
         * @return This builder for chaining.
         */
        public Builder setPrefix(
            java.lang.String value) {
          copyOnWrite();
          instance.setPrefix(value);
          return this;
        }
        /**
         * <code>string prefix = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPrefix() {
          copyOnWrite();
          instance.clearPrefix();
          return this;
        }
        /**
         * <code>string prefix = 1;</code>
         * @param value The bytes for prefix to set.
         * @return This builder for chaining.
         */
        public Builder setPrefixBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPrefixBytes(value);
          return this;
        }
  
        /**
         * <code>string uri = 2;</code>
         * @return The uri.
         */
        @java.lang.Override
        public java.lang.String getUri() {
          return instance.getUri();
        }
        /**
         * <code>string uri = 2;</code>
         * @return The bytes for uri.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getUriBytes() {
          return instance.getUriBytes();
        }
        /**
         * <code>string uri = 2;</code>
         * @param value The uri to set.
         * @return This builder for chaining.
         */
        public Builder setUri(
            java.lang.String value) {
          copyOnWrite();
          instance.setUri(value);
          return this;
        }
        /**
         * <code>string uri = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearUri() {
          copyOnWrite();
          instance.clearUri();
          return this;
        }
        /**
         * <code>string uri = 2;</code>
         * @param value The bytes for uri to set.
         * @return This builder for chaining.
         */
        public Builder setUriBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setUriBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.SourcePosition getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 3;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:XmlNamespace)
      }
      @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 com.android.aapt.Resources.XmlNamespace();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "prefix_",
                "uri_",
                "source_",
              };
              java.lang.String info =
                  "\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                  "\u0003\u1009\u0000";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.XmlNamespace> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.XmlNamespace.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.XmlNamespace>(
                          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:XmlNamespace)
      private static final com.android.aapt.Resources.XmlNamespace DEFAULT_INSTANCE;
      static {
        XmlNamespace defaultInstance = new XmlNamespace();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          XmlNamespace.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.XmlNamespace getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlNamespace> PARSER;
  
      public static com.google.protobuf.Parser<XmlNamespace> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface XmlAttributeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:XmlAttribute)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string namespace_uri = 1;</code>
       * @return The namespaceUri.
       */
      java.lang.String getNamespaceUri();
      /**
       * <code>string namespace_uri = 1;</code>
       * @return The bytes for namespaceUri.
       */
      com.google.protobuf.ByteString
          getNamespaceUriBytes();
  
      /**
       * <code>string name = 2;</code>
       * @return The name.
       */
      java.lang.String getName();
      /**
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <code>string value = 3;</code>
       * @return The value.
       */
      java.lang.String getValue();
      /**
       * <code>string value = 3;</code>
       * @return The bytes for value.
       */
      com.google.protobuf.ByteString
          getValueBytes();
  
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 4;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 4;</code>
       * @return The source.
       */
      com.android.aapt.Resources.SourcePosition getSource();
  
      /**
       * <pre>
       * The optional resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>uint32 resource_id = 5;</code>
       * @return The resourceId.
       */
      int getResourceId();
  
      /**
       * <pre>
       * The optional interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>.Item compiled_item = 6;</code>
       * @return Whether the compiledItem field is set.
       */
      boolean hasCompiledItem();
      /**
       * <pre>
       * The optional interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>.Item compiled_item = 6;</code>
       * @return The compiledItem.
       */
      com.android.aapt.Resources.Item getCompiledItem();
    }
    /**
     * <pre>
     * An attribute defined on an XmlElement (android:text="...").
     * </pre>
     *
     * Protobuf type {@code XmlAttribute}
     */
    public  static final class XmlAttribute extends
        com.google.protobuf.GeneratedMessageLite<
            XmlAttribute, XmlAttribute.Builder> implements
        // @@protoc_insertion_point(message_implements:XmlAttribute)
        XmlAttributeOrBuilder {
      private XmlAttribute() {
        namespaceUri_ = "";
        name_ = "";
        value_ = "";
      }
      private int bitField0_;
      public static final int NAMESPACE_URI_FIELD_NUMBER = 1;
      private java.lang.String namespaceUri_;
      /**
       * <code>string namespace_uri = 1;</code>
       * @return The namespaceUri.
       */
      @java.lang.Override
      public java.lang.String getNamespaceUri() {
        return namespaceUri_;
      }
      /**
       * <code>string namespace_uri = 1;</code>
       * @return The bytes for namespaceUri.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNamespaceUriBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(namespaceUri_);
      }
      /**
       * <code>string namespace_uri = 1;</code>
       * @param value The namespaceUri to set.
       */
      private void setNamespaceUri(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        namespaceUri_ = value;
      }
      /**
       * <code>string namespace_uri = 1;</code>
       */
      private void clearNamespaceUri() {
  
        namespaceUri_ = getDefaultInstance().getNamespaceUri();
      }
      /**
       * <code>string namespace_uri = 1;</code>
       * @param value The bytes for namespaceUri to set.
       */
      private void setNamespaceUriBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        namespaceUri_ = value.toStringUtf8();
  
      }
  
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.String name_;
      /**
       * <code>string name = 2;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return name_;
      }
      /**
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(name_);
      }
      /**
       * <code>string name = 2;</code>
       * @param value The name to set.
       */
      private void setName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        name_ = value;
      }
      /**
       * <code>string name = 2;</code>
       */
      private void clearName() {
  
        name_ = getDefaultInstance().getName();
      }
      /**
       * <code>string name = 2;</code>
       * @param value The bytes for name to set.
       */
      private void setNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        name_ = value.toStringUtf8();
  
      }
  
      public static final int VALUE_FIELD_NUMBER = 3;
      private java.lang.String value_;
      /**
       * <code>string value = 3;</code>
       * @return The value.
       */
      @java.lang.Override
      public java.lang.String getValue() {
        return value_;
      }
      /**
       * <code>string value = 3;</code>
       * @return The bytes for value.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getValueBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(value_);
      }
      /**
       * <code>string value = 3;</code>
       * @param value The value to set.
       */
      private void setValue(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        value_ = value;
      }
      /**
       * <code>string value = 3;</code>
       */
      private void clearValue() {
  
        value_ = getDefaultInstance().getValue();
      }
      /**
       * <code>string value = 3;</code>
       * @param value The bytes for value to set.
       */
      private void setValueBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        value_ = value.toStringUtf8();
  
      }
  
      public static final int SOURCE_FIELD_NUMBER = 4;
      private com.android.aapt.Resources.SourcePosition source_;
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 4;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.SourcePosition getSource() {
        return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 4;</code>
       */
      private void setSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 4;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <pre>
       * Source line and column info.
       * </pre>
       *
       * <code>.SourcePosition source = 4;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int RESOURCE_ID_FIELD_NUMBER = 5;
      private int resourceId_;
      /**
       * <pre>
       * The optional resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>uint32 resource_id = 5;</code>
       * @return The resourceId.
       */
      @java.lang.Override
      public int getResourceId() {
        return resourceId_;
      }
      /**
       * <pre>
       * The optional resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>uint32 resource_id = 5;</code>
       * @param value The resourceId to set.
       */
      private void setResourceId(int value) {
        
        resourceId_ = value;
      }
      /**
       * <pre>
       * The optional resource ID (0xPPTTEEEE) of the attribute.
       * </pre>
       *
       * <code>uint32 resource_id = 5;</code>
       */
      private void clearResourceId() {
  
        resourceId_ = 0;
      }
  
      public static final int COMPILED_ITEM_FIELD_NUMBER = 6;
      private com.android.aapt.Resources.Item compiledItem_;
      /**
       * <pre>
       * The optional interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>.Item compiled_item = 6;</code>
       */
      @java.lang.Override
      public boolean hasCompiledItem() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * The optional interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>.Item compiled_item = 6;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.Item getCompiledItem() {
        return compiledItem_ == null ? com.android.aapt.Resources.Item.getDefaultInstance() : compiledItem_;
      }
      /**
       * <pre>
       * The optional interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>.Item compiled_item = 6;</code>
       */
      private void setCompiledItem(com.android.aapt.Resources.Item value) {
        value.getClass();
    compiledItem_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <pre>
       * The optional interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>.Item compiled_item = 6;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeCompiledItem(com.android.aapt.Resources.Item value) {
        value.getClass();
    if (compiledItem_ != null &&
            compiledItem_ != com.android.aapt.Resources.Item.getDefaultInstance()) {
          compiledItem_ =
            com.android.aapt.Resources.Item.newBuilder(compiledItem_).mergeFrom(value).buildPartial();
        } else {
          compiledItem_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <pre>
       * The optional interpreted/compiled version of the `value` string.
       * </pre>
       *
       * <code>.Item compiled_item = 6;</code>
       */
      private void clearCompiledItem() {  compiledItem_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static com.android.aapt.Resources.XmlAttribute parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 com.android.aapt.Resources.XmlAttribute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 com.android.aapt.Resources.XmlAttribute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 com.android.aapt.Resources.XmlAttribute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlAttribute 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 com.android.aapt.Resources.XmlAttribute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.XmlAttribute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.XmlAttribute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.XmlAttribute 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(com.android.aapt.Resources.XmlAttribute prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * <pre>
       * An attribute defined on an XmlElement (android:text="...").
       * </pre>
       *
       * Protobuf type {@code XmlAttribute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.XmlAttribute, Builder> implements
          // @@protoc_insertion_point(builder_implements:XmlAttribute)
          com.android.aapt.Resources.XmlAttributeOrBuilder {
        // Construct using com.android.aapt.Resources.XmlAttribute.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string namespace_uri = 1;</code>
         * @return The namespaceUri.
         */
        @java.lang.Override
        public java.lang.String getNamespaceUri() {
          return instance.getNamespaceUri();
        }
        /**
         * <code>string namespace_uri = 1;</code>
         * @return The bytes for namespaceUri.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNamespaceUriBytes() {
          return instance.getNamespaceUriBytes();
        }
        /**
         * <code>string namespace_uri = 1;</code>
         * @param value The namespaceUri to set.
         * @return This builder for chaining.
         */
        public Builder setNamespaceUri(
            java.lang.String value) {
          copyOnWrite();
          instance.setNamespaceUri(value);
          return this;
        }
        /**
         * <code>string namespace_uri = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearNamespaceUri() {
          copyOnWrite();
          instance.clearNamespaceUri();
          return this;
        }
        /**
         * <code>string namespace_uri = 1;</code>
         * @param value The bytes for namespaceUri to set.
         * @return This builder for chaining.
         */
        public Builder setNamespaceUriBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNamespaceUriBytes(value);
          return this;
        }
  
        /**
         * <code>string name = 2;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
          return instance.getName();
        }
        /**
         * <code>string name = 2;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNameBytes() {
          return instance.getNameBytes();
        }
        /**
         * <code>string name = 2;</code>
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          copyOnWrite();
          instance.setName(value);
          return this;
        }
        /**
         * <code>string name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearName() {
          copyOnWrite();
          instance.clearName();
          return this;
        }
        /**
         * <code>string name = 2;</code>
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setNameBytes(value);
          return this;
        }
  
        /**
         * <code>string value = 3;</code>
         * @return The value.
         */
        @java.lang.Override
        public java.lang.String getValue() {
          return instance.getValue();
        }
        /**
         * <code>string value = 3;</code>
         * @return The bytes for value.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getValueBytes() {
          return instance.getValueBytes();
        }
        /**
         * <code>string value = 3;</code>
         * @param value The value to set.
         * @return This builder for chaining.
         */
        public Builder setValue(
            java.lang.String value) {
          copyOnWrite();
          instance.setValue(value);
          return this;
        }
        /**
         * <code>string value = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearValue() {
          copyOnWrite();
          instance.clearValue();
          return this;
        }
        /**
         * <code>string value = 3;</code>
         * @param value The bytes for value to set.
         * @return This builder for chaining.
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setValueBytes(value);
          return this;
        }
  
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 4;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.SourcePosition getSource() {
          return instance.getSource();
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 4;</code>
         */
        public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 4;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 4;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <pre>
         * Source line and column info.
         * </pre>
         *
         * <code>.SourcePosition source = 4;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        /**
         * <pre>
         * The optional resource ID (0xPPTTEEEE) of the attribute.
         * </pre>
         *
         * <code>uint32 resource_id = 5;</code>
         * @return The resourceId.
         */
        @java.lang.Override
        public int getResourceId() {
          return instance.getResourceId();
        }
        /**
         * <pre>
         * The optional resource ID (0xPPTTEEEE) of the attribute.
         * </pre>
         *
         * <code>uint32 resource_id = 5;</code>
         * @param value The resourceId to set.
         * @return This builder for chaining.
         */
        public Builder setResourceId(int value) {
          copyOnWrite();
          instance.setResourceId(value);
          return this;
        }
        /**
         * <pre>
         * The optional resource ID (0xPPTTEEEE) of the attribute.
         * </pre>
         *
         * <code>uint32 resource_id = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearResourceId() {
          copyOnWrite();
          instance.clearResourceId();
          return this;
        }
  
        /**
         * <pre>
         * The optional interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>.Item compiled_item = 6;</code>
         */
        @java.lang.Override
        public boolean hasCompiledItem() {
          return instance.hasCompiledItem();
        }
        /**
         * <pre>
         * The optional interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>.Item compiled_item = 6;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.Item getCompiledItem() {
          return instance.getCompiledItem();
        }
        /**
         * <pre>
         * The optional interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>.Item compiled_item = 6;</code>
         */
        public Builder setCompiledItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.setCompiledItem(value);
          return this;
          }
        /**
         * <pre>
         * The optional interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>.Item compiled_item = 6;</code>
         */
        public Builder setCompiledItem(
            com.android.aapt.Resources.Item.Builder builderForValue) {
          copyOnWrite();
          instance.setCompiledItem(builderForValue.build());
          return this;
        }
        /**
         * <pre>
         * The optional interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>.Item compiled_item = 6;</code>
         */
        public Builder mergeCompiledItem(com.android.aapt.Resources.Item value) {
          copyOnWrite();
          instance.mergeCompiledItem(value);
          return this;
        }
        /**
         * <pre>
         * The optional interpreted/compiled version of the `value` string.
         * </pre>
         *
         * <code>.Item compiled_item = 6;</code>
         */
        public Builder clearCompiledItem() {  copyOnWrite();
          instance.clearCompiledItem();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:XmlAttribute)
      }
      @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 com.android.aapt.Resources.XmlAttribute();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "namespaceUri_",
                "name_",
                "value_",
                "source_",
                "resourceId_",
                "compiledItem_",
              };
              java.lang.String info =
                  "\u0000\u0006\u0000\u0001\u0001\u0006\u0006\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                  "\u0003\u0208\u0004\u1009\u0000\u0005\u000b\u0006\u1009\u0001";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.XmlAttribute> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.XmlAttribute.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.XmlAttribute>(
                          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:XmlAttribute)
      private static final com.android.aapt.Resources.XmlAttribute DEFAULT_INSTANCE;
      static {
        XmlAttribute defaultInstance = new XmlAttribute();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          XmlAttribute.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.XmlAttribute getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<XmlAttribute> PARSER;
  
      public static com.google.protobuf.Parser<XmlAttribute> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface MacroBodyOrBuilder extends
        // @@protoc_insertion_point(interface_extends:MacroBody)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string raw_string = 1;</code>
       * @return The rawString.
       */
      java.lang.String getRawString();
      /**
       * <code>string raw_string = 1;</code>
       * @return The bytes for rawString.
       */
      com.google.protobuf.ByteString
          getRawStringBytes();
  
      /**
       * <code>.StyleString style_string = 2;</code>
       * @return Whether the styleString field is set.
       */
      boolean hasStyleString();
      /**
       * <code>.StyleString style_string = 2;</code>
       * @return The styleString.
       */
      com.android.aapt.Resources.StyleString getStyleString();
  
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      java.util.List<com.android.aapt.Resources.UntranslatableSection> 
          getUntranslatableSectionsList();
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      com.android.aapt.Resources.UntranslatableSection getUntranslatableSections(int index);
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      int getUntranslatableSectionsCount();
  
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      java.util.List<com.android.aapt.Resources.NamespaceAlias> 
          getNamespaceStackList();
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      com.android.aapt.Resources.NamespaceAlias getNamespaceStack(int index);
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      int getNamespaceStackCount();
  
      /**
       * <code>.SourcePosition source = 5;</code>
       * @return Whether the source field is set.
       */
      boolean hasSource();
      /**
       * <code>.SourcePosition source = 5;</code>
       * @return The source.
       */
      com.android.aapt.Resources.SourcePosition getSource();
    }
    /**
     * Protobuf type {@code MacroBody}
     */
    public  static final class MacroBody extends
        com.google.protobuf.GeneratedMessageLite<
            MacroBody, MacroBody.Builder> implements
        // @@protoc_insertion_point(message_implements:MacroBody)
        MacroBodyOrBuilder {
      private MacroBody() {
        rawString_ = "";
        untranslatableSections_ = emptyProtobufList();
        namespaceStack_ = emptyProtobufList();
      }
      private int bitField0_;
      public static final int RAW_STRING_FIELD_NUMBER = 1;
      private java.lang.String rawString_;
      /**
       * <code>string raw_string = 1;</code>
       * @return The rawString.
       */
      @java.lang.Override
      public java.lang.String getRawString() {
        return rawString_;
      }
      /**
       * <code>string raw_string = 1;</code>
       * @return The bytes for rawString.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRawStringBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(rawString_);
      }
      /**
       * <code>string raw_string = 1;</code>
       * @param value The rawString to set.
       */
      private void setRawString(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        rawString_ = value;
      }
      /**
       * <code>string raw_string = 1;</code>
       */
      private void clearRawString() {
  
        rawString_ = getDefaultInstance().getRawString();
      }
      /**
       * <code>string raw_string = 1;</code>
       * @param value The bytes for rawString to set.
       */
      private void setRawStringBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        rawString_ = value.toStringUtf8();
  
      }
  
      public static final int STYLE_STRING_FIELD_NUMBER = 2;
      private com.android.aapt.Resources.StyleString styleString_;
      /**
       * <code>.StyleString style_string = 2;</code>
       */
      @java.lang.Override
      public boolean hasStyleString() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.StyleString style_string = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.StyleString getStyleString() {
        return styleString_ == null ? com.android.aapt.Resources.StyleString.getDefaultInstance() : styleString_;
      }
      /**
       * <code>.StyleString style_string = 2;</code>
       */
      private void setStyleString(com.android.aapt.Resources.StyleString value) {
        value.getClass();
    styleString_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>.StyleString style_string = 2;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeStyleString(com.android.aapt.Resources.StyleString value) {
        value.getClass();
    if (styleString_ != null &&
            styleString_ != com.android.aapt.Resources.StyleString.getDefaultInstance()) {
          styleString_ =
            com.android.aapt.Resources.StyleString.newBuilder(styleString_).mergeFrom(value).buildPartial();
        } else {
          styleString_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>.StyleString style_string = 2;</code>
       */
      private void clearStyleString() {  styleString_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int UNTRANSLATABLE_SECTIONS_FIELD_NUMBER = 3;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.UntranslatableSection> untranslatableSections_;
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.UntranslatableSection> getUntranslatableSectionsList() {
        return untranslatableSections_;
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.UntranslatableSectionOrBuilder> 
          getUntranslatableSectionsOrBuilderList() {
        return untranslatableSections_;
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      @java.lang.Override
      public int getUntranslatableSectionsCount() {
        return untranslatableSections_.size();
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.UntranslatableSection getUntranslatableSections(int index) {
        return untranslatableSections_.get(index);
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      public com.android.aapt.Resources.UntranslatableSectionOrBuilder getUntranslatableSectionsOrBuilder(
          int index) {
        return untranslatableSections_.get(index);
      }
      private void ensureUntranslatableSectionsIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.UntranslatableSection> tmp = untranslatableSections_;
        if (!tmp.isModifiable()) {
          untranslatableSections_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      private void setUntranslatableSections(
          int index, com.android.aapt.Resources.UntranslatableSection value) {
        value.getClass();
    ensureUntranslatableSectionsIsMutable();
        untranslatableSections_.set(index, value);
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      private void addUntranslatableSections(com.android.aapt.Resources.UntranslatableSection value) {
        value.getClass();
    ensureUntranslatableSectionsIsMutable();
        untranslatableSections_.add(value);
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      private void addUntranslatableSections(
          int index, com.android.aapt.Resources.UntranslatableSection value) {
        value.getClass();
    ensureUntranslatableSectionsIsMutable();
        untranslatableSections_.add(index, value);
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      private void addAllUntranslatableSections(
          java.lang.Iterable<? extends com.android.aapt.Resources.UntranslatableSection> values) {
        ensureUntranslatableSectionsIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, untranslatableSections_);
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      private void clearUntranslatableSections() {
        untranslatableSections_ = emptyProtobufList();
      }
      /**
       * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
       */
      private void removeUntranslatableSections(int index) {
        ensureUntranslatableSectionsIsMutable();
        untranslatableSections_.remove(index);
      }
  
      public static final int NAMESPACE_STACK_FIELD_NUMBER = 4;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.NamespaceAlias> namespaceStack_;
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.NamespaceAlias> getNamespaceStackList() {
        return namespaceStack_;
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.NamespaceAliasOrBuilder> 
          getNamespaceStackOrBuilderList() {
        return namespaceStack_;
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      @java.lang.Override
      public int getNamespaceStackCount() {
        return namespaceStack_.size();
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.NamespaceAlias getNamespaceStack(int index) {
        return namespaceStack_.get(index);
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      public com.android.aapt.Resources.NamespaceAliasOrBuilder getNamespaceStackOrBuilder(
          int index) {
        return namespaceStack_.get(index);
      }
      private void ensureNamespaceStackIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.NamespaceAlias> tmp = namespaceStack_;
        if (!tmp.isModifiable()) {
          namespaceStack_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      private void setNamespaceStack(
          int index, com.android.aapt.Resources.NamespaceAlias value) {
        value.getClass();
    ensureNamespaceStackIsMutable();
        namespaceStack_.set(index, value);
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      private void addNamespaceStack(com.android.aapt.Resources.NamespaceAlias value) {
        value.getClass();
    ensureNamespaceStackIsMutable();
        namespaceStack_.add(value);
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      private void addNamespaceStack(
          int index, com.android.aapt.Resources.NamespaceAlias value) {
        value.getClass();
    ensureNamespaceStackIsMutable();
        namespaceStack_.add(index, value);
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      private void addAllNamespaceStack(
          java.lang.Iterable<? extends com.android.aapt.Resources.NamespaceAlias> values) {
        ensureNamespaceStackIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, namespaceStack_);
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      private void clearNamespaceStack() {
        namespaceStack_ = emptyProtobufList();
      }
      /**
       * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
       */
      private void removeNamespaceStack(int index) {
        ensureNamespaceStackIsMutable();
        namespaceStack_.remove(index);
      }
  
      public static final int SOURCE_FIELD_NUMBER = 5;
      private com.android.aapt.Resources.SourcePosition source_;
      /**
       * <code>.SourcePosition source = 5;</code>
       */
      @java.lang.Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.SourcePosition source = 5;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.SourcePosition getSource() {
        return source_ == null ? com.android.aapt.Resources.SourcePosition.getDefaultInstance() : source_;
      }
      /**
       * <code>.SourcePosition source = 5;</code>
       */
      private void setSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    source_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <code>.SourcePosition source = 5;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeSource(com.android.aapt.Resources.SourcePosition value) {
        value.getClass();
    if (source_ != null &&
            source_ != com.android.aapt.Resources.SourcePosition.getDefaultInstance()) {
          source_ =
            com.android.aapt.Resources.SourcePosition.newBuilder(source_).mergeFrom(value).buildPartial();
        } else {
          source_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>.SourcePosition source = 5;</code>
       */
      private void clearSource() {  source_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static com.android.aapt.Resources.MacroBody parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.MacroBody 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 com.android.aapt.Resources.MacroBody parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.MacroBody 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 com.android.aapt.Resources.MacroBody parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.MacroBody 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 com.android.aapt.Resources.MacroBody parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.MacroBody 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 com.android.aapt.Resources.MacroBody parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.MacroBody parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.MacroBody parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.MacroBody 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(com.android.aapt.Resources.MacroBody prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code MacroBody}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.MacroBody, Builder> implements
          // @@protoc_insertion_point(builder_implements:MacroBody)
          com.android.aapt.Resources.MacroBodyOrBuilder {
        // Construct using com.android.aapt.Resources.MacroBody.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string raw_string = 1;</code>
         * @return The rawString.
         */
        @java.lang.Override
        public java.lang.String getRawString() {
          return instance.getRawString();
        }
        /**
         * <code>string raw_string = 1;</code>
         * @return The bytes for rawString.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getRawStringBytes() {
          return instance.getRawStringBytes();
        }
        /**
         * <code>string raw_string = 1;</code>
         * @param value The rawString to set.
         * @return This builder for chaining.
         */
        public Builder setRawString(
            java.lang.String value) {
          copyOnWrite();
          instance.setRawString(value);
          return this;
        }
        /**
         * <code>string raw_string = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearRawString() {
          copyOnWrite();
          instance.clearRawString();
          return this;
        }
        /**
         * <code>string raw_string = 1;</code>
         * @param value The bytes for rawString to set.
         * @return This builder for chaining.
         */
        public Builder setRawStringBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setRawStringBytes(value);
          return this;
        }
  
        /**
         * <code>.StyleString style_string = 2;</code>
         */
        @java.lang.Override
        public boolean hasStyleString() {
          return instance.hasStyleString();
        }
        /**
         * <code>.StyleString style_string = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.StyleString getStyleString() {
          return instance.getStyleString();
        }
        /**
         * <code>.StyleString style_string = 2;</code>
         */
        public Builder setStyleString(com.android.aapt.Resources.StyleString value) {
          copyOnWrite();
          instance.setStyleString(value);
          return this;
          }
        /**
         * <code>.StyleString style_string = 2;</code>
         */
        public Builder setStyleString(
            com.android.aapt.Resources.StyleString.Builder builderForValue) {
          copyOnWrite();
          instance.setStyleString(builderForValue.build());
          return this;
        }
        /**
         * <code>.StyleString style_string = 2;</code>
         */
        public Builder mergeStyleString(com.android.aapt.Resources.StyleString value) {
          copyOnWrite();
          instance.mergeStyleString(value);
          return this;
        }
        /**
         * <code>.StyleString style_string = 2;</code>
         */
        public Builder clearStyleString() {  copyOnWrite();
          instance.clearStyleString();
          return this;
        }
  
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.UntranslatableSection> getUntranslatableSectionsList() {
          return java.util.Collections.unmodifiableList(
              instance.getUntranslatableSectionsList());
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        @java.lang.Override
        public int getUntranslatableSectionsCount() {
          return instance.getUntranslatableSectionsCount();
        }/**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.UntranslatableSection getUntranslatableSections(int index) {
          return instance.getUntranslatableSections(index);
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder setUntranslatableSections(
            int index, com.android.aapt.Resources.UntranslatableSection value) {
          copyOnWrite();
          instance.setUntranslatableSections(index, value);
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder setUntranslatableSections(
            int index, com.android.aapt.Resources.UntranslatableSection.Builder builderForValue) {
          copyOnWrite();
          instance.setUntranslatableSections(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder addUntranslatableSections(com.android.aapt.Resources.UntranslatableSection value) {
          copyOnWrite();
          instance.addUntranslatableSections(value);
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder addUntranslatableSections(
            int index, com.android.aapt.Resources.UntranslatableSection value) {
          copyOnWrite();
          instance.addUntranslatableSections(index, value);
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder addUntranslatableSections(
            com.android.aapt.Resources.UntranslatableSection.Builder builderForValue) {
          copyOnWrite();
          instance.addUntranslatableSections(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder addUntranslatableSections(
            int index, com.android.aapt.Resources.UntranslatableSection.Builder builderForValue) {
          copyOnWrite();
          instance.addUntranslatableSections(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder addAllUntranslatableSections(
            java.lang.Iterable<? extends com.android.aapt.Resources.UntranslatableSection> values) {
          copyOnWrite();
          instance.addAllUntranslatableSections(values);
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder clearUntranslatableSections() {
          copyOnWrite();
          instance.clearUntranslatableSections();
          return this;
        }
        /**
         * <code>repeated .UntranslatableSection untranslatable_sections = 3;</code>
         */
        public Builder removeUntranslatableSections(int index) {
          copyOnWrite();
          instance.removeUntranslatableSections(index);
          return this;
        }
  
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.NamespaceAlias> getNamespaceStackList() {
          return java.util.Collections.unmodifiableList(
              instance.getNamespaceStackList());
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        @java.lang.Override
        public int getNamespaceStackCount() {
          return instance.getNamespaceStackCount();
        }/**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.NamespaceAlias getNamespaceStack(int index) {
          return instance.getNamespaceStack(index);
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder setNamespaceStack(
            int index, com.android.aapt.Resources.NamespaceAlias value) {
          copyOnWrite();
          instance.setNamespaceStack(index, value);
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder setNamespaceStack(
            int index, com.android.aapt.Resources.NamespaceAlias.Builder builderForValue) {
          copyOnWrite();
          instance.setNamespaceStack(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder addNamespaceStack(com.android.aapt.Resources.NamespaceAlias value) {
          copyOnWrite();
          instance.addNamespaceStack(value);
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder addNamespaceStack(
            int index, com.android.aapt.Resources.NamespaceAlias value) {
          copyOnWrite();
          instance.addNamespaceStack(index, value);
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder addNamespaceStack(
            com.android.aapt.Resources.NamespaceAlias.Builder builderForValue) {
          copyOnWrite();
          instance.addNamespaceStack(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder addNamespaceStack(
            int index, com.android.aapt.Resources.NamespaceAlias.Builder builderForValue) {
          copyOnWrite();
          instance.addNamespaceStack(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder addAllNamespaceStack(
            java.lang.Iterable<? extends com.android.aapt.Resources.NamespaceAlias> values) {
          copyOnWrite();
          instance.addAllNamespaceStack(values);
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder clearNamespaceStack() {
          copyOnWrite();
          instance.clearNamespaceStack();
          return this;
        }
        /**
         * <code>repeated .NamespaceAlias namespace_stack = 4;</code>
         */
        public Builder removeNamespaceStack(int index) {
          copyOnWrite();
          instance.removeNamespaceStack(index);
          return this;
        }
  
        /**
         * <code>.SourcePosition source = 5;</code>
         */
        @java.lang.Override
        public boolean hasSource() {
          return instance.hasSource();
        }
        /**
         * <code>.SourcePosition source = 5;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.SourcePosition getSource() {
          return instance.getSource();
        }
        /**
         * <code>.SourcePosition source = 5;</code>
         */
        public Builder setSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.setSource(value);
          return this;
          }
        /**
         * <code>.SourcePosition source = 5;</code>
         */
        public Builder setSource(
            com.android.aapt.Resources.SourcePosition.Builder builderForValue) {
          copyOnWrite();
          instance.setSource(builderForValue.build());
          return this;
        }
        /**
         * <code>.SourcePosition source = 5;</code>
         */
        public Builder mergeSource(com.android.aapt.Resources.SourcePosition value) {
          copyOnWrite();
          instance.mergeSource(value);
          return this;
        }
        /**
         * <code>.SourcePosition source = 5;</code>
         */
        public Builder clearSource() {  copyOnWrite();
          instance.clearSource();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:MacroBody)
      }
      @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 com.android.aapt.Resources.MacroBody();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "rawString_",
                "styleString_",
                "untranslatableSections_",
                com.android.aapt.Resources.UntranslatableSection.class,
                "namespaceStack_",
                com.android.aapt.Resources.NamespaceAlias.class,
                "source_",
              };
              java.lang.String info =
                  "\u0000\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0002\u0000\u0001\u0208\u0002\u1009" +
                  "\u0000\u0003\u001b\u0004\u001b\u0005\u1009\u0001";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.MacroBody> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.MacroBody.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.MacroBody>(
                          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:MacroBody)
      private static final com.android.aapt.Resources.MacroBody DEFAULT_INSTANCE;
      static {
        MacroBody defaultInstance = new MacroBody();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          MacroBody.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.MacroBody getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<MacroBody> PARSER;
  
      public static com.google.protobuf.Parser<MacroBody> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface NamespaceAliasOrBuilder extends
        // @@protoc_insertion_point(interface_extends:NamespaceAlias)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string prefix = 1;</code>
       * @return The prefix.
       */
      java.lang.String getPrefix();
      /**
       * <code>string prefix = 1;</code>
       * @return The bytes for prefix.
       */
      com.google.protobuf.ByteString
          getPrefixBytes();
  
      /**
       * <code>string package_name = 2;</code>
       * @return The packageName.
       */
      java.lang.String getPackageName();
      /**
       * <code>string package_name = 2;</code>
       * @return The bytes for packageName.
       */
      com.google.protobuf.ByteString
          getPackageNameBytes();
  
      /**
       * <code>bool is_private = 3;</code>
       * @return The isPrivate.
       */
      boolean getIsPrivate();
    }
    /**
     * Protobuf type {@code NamespaceAlias}
     */
    public  static final class NamespaceAlias extends
        com.google.protobuf.GeneratedMessageLite<
            NamespaceAlias, NamespaceAlias.Builder> implements
        // @@protoc_insertion_point(message_implements:NamespaceAlias)
        NamespaceAliasOrBuilder {
      private NamespaceAlias() {
        prefix_ = "";
        packageName_ = "";
      }
      public static final int PREFIX_FIELD_NUMBER = 1;
      private java.lang.String prefix_;
      /**
       * <code>string prefix = 1;</code>
       * @return The prefix.
       */
      @java.lang.Override
      public java.lang.String getPrefix() {
        return prefix_;
      }
      /**
       * <code>string prefix = 1;</code>
       * @return The bytes for prefix.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPrefixBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(prefix_);
      }
      /**
       * <code>string prefix = 1;</code>
       * @param value The prefix to set.
       */
      private void setPrefix(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        prefix_ = value;
      }
      /**
       * <code>string prefix = 1;</code>
       */
      private void clearPrefix() {
  
        prefix_ = getDefaultInstance().getPrefix();
      }
      /**
       * <code>string prefix = 1;</code>
       * @param value The bytes for prefix to set.
       */
      private void setPrefixBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        prefix_ = value.toStringUtf8();
  
      }
  
      public static final int PACKAGE_NAME_FIELD_NUMBER = 2;
      private java.lang.String packageName_;
      /**
       * <code>string package_name = 2;</code>
       * @return The packageName.
       */
      @java.lang.Override
      public java.lang.String getPackageName() {
        return packageName_;
      }
      /**
       * <code>string package_name = 2;</code>
       * @return The bytes for packageName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPackageNameBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(packageName_);
      }
      /**
       * <code>string package_name = 2;</code>
       * @param value The packageName to set.
       */
      private void setPackageName(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        packageName_ = value;
      }
      /**
       * <code>string package_name = 2;</code>
       */
      private void clearPackageName() {
  
        packageName_ = getDefaultInstance().getPackageName();
      }
      /**
       * <code>string package_name = 2;</code>
       * @param value The bytes for packageName to set.
       */
      private void setPackageNameBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        packageName_ = value.toStringUtf8();
  
      }
  
      public static final int IS_PRIVATE_FIELD_NUMBER = 3;
      private boolean isPrivate_;
      /**
       * <code>bool is_private = 3;</code>
       * @return The isPrivate.
       */
      @java.lang.Override
      public boolean getIsPrivate() {
        return isPrivate_;
      }
      /**
       * <code>bool is_private = 3;</code>
       * @param value The isPrivate to set.
       */
      private void setIsPrivate(boolean value) {
        
        isPrivate_ = value;
      }
      /**
       * <code>bool is_private = 3;</code>
       */
      private void clearIsPrivate() {
  
        isPrivate_ = false;
      }
  
      public static com.android.aapt.Resources.NamespaceAlias parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.NamespaceAlias 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 com.android.aapt.Resources.NamespaceAlias parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.NamespaceAlias 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 com.android.aapt.Resources.NamespaceAlias parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.NamespaceAlias 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 com.android.aapt.Resources.NamespaceAlias parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.NamespaceAlias 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 com.android.aapt.Resources.NamespaceAlias parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.NamespaceAlias parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.NamespaceAlias parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.NamespaceAlias 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(com.android.aapt.Resources.NamespaceAlias prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code NamespaceAlias}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.NamespaceAlias, Builder> implements
          // @@protoc_insertion_point(builder_implements:NamespaceAlias)
          com.android.aapt.Resources.NamespaceAliasOrBuilder {
        // Construct using com.android.aapt.Resources.NamespaceAlias.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string prefix = 1;</code>
         * @return The prefix.
         */
        @java.lang.Override
        public java.lang.String getPrefix() {
          return instance.getPrefix();
        }
        /**
         * <code>string prefix = 1;</code>
         * @return The bytes for prefix.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getPrefixBytes() {
          return instance.getPrefixBytes();
        }
        /**
         * <code>string prefix = 1;</code>
         * @param value The prefix to set.
         * @return This builder for chaining.
         */
        public Builder setPrefix(
            java.lang.String value) {
          copyOnWrite();
          instance.setPrefix(value);
          return this;
        }
        /**
         * <code>string prefix = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPrefix() {
          copyOnWrite();
          instance.clearPrefix();
          return this;
        }
        /**
         * <code>string prefix = 1;</code>
         * @param value The bytes for prefix to set.
         * @return This builder for chaining.
         */
        public Builder setPrefixBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPrefixBytes(value);
          return this;
        }
  
        /**
         * <code>string package_name = 2;</code>
         * @return The packageName.
         */
        @java.lang.Override
        public java.lang.String getPackageName() {
          return instance.getPackageName();
        }
        /**
         * <code>string package_name = 2;</code>
         * @return The bytes for packageName.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getPackageNameBytes() {
          return instance.getPackageNameBytes();
        }
        /**
         * <code>string package_name = 2;</code>
         * @param value The packageName to set.
         * @return This builder for chaining.
         */
        public Builder setPackageName(
            java.lang.String value) {
          copyOnWrite();
          instance.setPackageName(value);
          return this;
        }
        /**
         * <code>string package_name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPackageName() {
          copyOnWrite();
          instance.clearPackageName();
          return this;
        }
        /**
         * <code>string package_name = 2;</code>
         * @param value The bytes for packageName to set.
         * @return This builder for chaining.
         */
        public Builder setPackageNameBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setPackageNameBytes(value);
          return this;
        }
  
        /**
         * <code>bool is_private = 3;</code>
         * @return The isPrivate.
         */
        @java.lang.Override
        public boolean getIsPrivate() {
          return instance.getIsPrivate();
        }
        /**
         * <code>bool is_private = 3;</code>
         * @param value The isPrivate to set.
         * @return This builder for chaining.
         */
        public Builder setIsPrivate(boolean value) {
          copyOnWrite();
          instance.setIsPrivate(value);
          return this;
        }
        /**
         * <code>bool is_private = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearIsPrivate() {
          copyOnWrite();
          instance.clearIsPrivate();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:NamespaceAlias)
      }
      @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 com.android.aapt.Resources.NamespaceAlias();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "prefix_",
                "packageName_",
                "isPrivate_",
              };
              java.lang.String info =
                  "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                  "\u0003\u0007";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.NamespaceAlias> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.NamespaceAlias.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.NamespaceAlias>(
                          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:NamespaceAlias)
      private static final com.android.aapt.Resources.NamespaceAlias DEFAULT_INSTANCE;
      static {
        NamespaceAlias defaultInstance = new NamespaceAlias();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          NamespaceAlias.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.NamespaceAlias getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<NamespaceAlias> PARSER;
  
      public static com.google.protobuf.Parser<NamespaceAlias> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface StyleStringOrBuilder extends
        // @@protoc_insertion_point(interface_extends:StyleString)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>string str = 1;</code>
       * @return The str.
       */
      java.lang.String getStr();
      /**
       * <code>string str = 1;</code>
       * @return The bytes for str.
       */
      com.google.protobuf.ByteString
          getStrBytes();
  
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      java.util.List<com.android.aapt.Resources.StyleString.Span> 
          getSpansList();
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      com.android.aapt.Resources.StyleString.Span getSpans(int index);
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      int getSpansCount();
    }
    /**
     * Protobuf type {@code StyleString}
     */
    public  static final class StyleString extends
        com.google.protobuf.GeneratedMessageLite<
            StyleString, StyleString.Builder> implements
        // @@protoc_insertion_point(message_implements:StyleString)
        StyleStringOrBuilder {
      private StyleString() {
        str_ = "";
        spans_ = emptyProtobufList();
      }
      public interface SpanOrBuilder extends
          // @@protoc_insertion_point(interface_extends:StyleString.Span)
          com.google.protobuf.MessageLiteOrBuilder {
  
        /**
         * <code>string name = 1;</code>
         * @return The name.
         */
        java.lang.String getName();
        /**
         * <code>string name = 1;</code>
         * @return The bytes for name.
         */
        com.google.protobuf.ByteString
            getNameBytes();
  
        /**
         * <code>uint32 start_index = 2;</code>
         * @return The startIndex.
         */
        int getStartIndex();
  
        /**
         * <code>uint32 end_index = 3;</code>
         * @return The endIndex.
         */
        int getEndIndex();
      }
      /**
       * Protobuf type {@code StyleString.Span}
       */
      public  static final class Span extends
          com.google.protobuf.GeneratedMessageLite<
              Span, Span.Builder> implements
          // @@protoc_insertion_point(message_implements:StyleString.Span)
          SpanOrBuilder {
        private Span() {
          name_ = "";
        }
        public static final int NAME_FIELD_NUMBER = 1;
        private java.lang.String name_;
        /**
         * <code>string name = 1;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
          return name_;
        }
        /**
         * <code>string name = 1;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNameBytes() {
          return com.google.protobuf.ByteString.copyFromUtf8(name_);
        }
        /**
         * <code>string name = 1;</code>
         * @param value The name to set.
         */
        private void setName(
            java.lang.String value) {
          java.lang.Class<?> valueClass = value.getClass();
    
          name_ = value;
        }
        /**
         * <code>string name = 1;</code>
         */
        private void clearName() {
  
          name_ = getDefaultInstance().getName();
        }
        /**
         * <code>string name = 1;</code>
         * @param value The bytes for name to set.
         */
        private void setNameBytes(
            com.google.protobuf.ByteString value) {
          checkByteStringIsUtf8(value);
          name_ = value.toStringUtf8();
  
        }
  
        public static final int START_INDEX_FIELD_NUMBER = 2;
        private int startIndex_;
        /**
         * <code>uint32 start_index = 2;</code>
         * @return The startIndex.
         */
        @java.lang.Override
        public int getStartIndex() {
          return startIndex_;
        }
        /**
         * <code>uint32 start_index = 2;</code>
         * @param value The startIndex to set.
         */
        private void setStartIndex(int value) {
          
          startIndex_ = value;
        }
        /**
         * <code>uint32 start_index = 2;</code>
         */
        private void clearStartIndex() {
  
          startIndex_ = 0;
        }
  
        public static final int END_INDEX_FIELD_NUMBER = 3;
        private int endIndex_;
        /**
         * <code>uint32 end_index = 3;</code>
         * @return The endIndex.
         */
        @java.lang.Override
        public int getEndIndex() {
          return endIndex_;
        }
        /**
         * <code>uint32 end_index = 3;</code>
         * @param value The endIndex to set.
         */
        private void setEndIndex(int value) {
          
          endIndex_ = value;
        }
        /**
         * <code>uint32 end_index = 3;</code>
         */
        private void clearEndIndex() {
  
          endIndex_ = 0;
        }
  
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, data, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }
  
        public static com.android.aapt.Resources.StyleString.Span parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input);
        }
  
        public static com.android.aapt.Resources.StyleString.Span parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input);
        }
        public static com.android.aapt.Resources.StyleString.Span parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageLite.parseFrom(
              DEFAULT_INSTANCE, input, extensionRegistry);
        }
  
        public static Builder newBuilder() {
          return (Builder) DEFAULT_INSTANCE.createBuilder();
        }
        public static Builder newBuilder(com.android.aapt.Resources.StyleString.Span prototype) {
          return DEFAULT_INSTANCE.createBuilder(prototype);
        }
  
        /**
         * Protobuf type {@code StyleString.Span}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              com.android.aapt.Resources.StyleString.Span, Builder> implements
            // @@protoc_insertion_point(builder_implements:StyleString.Span)
            com.android.aapt.Resources.StyleString.SpanOrBuilder {
          // Construct using com.android.aapt.Resources.StyleString.Span.newBuilder()
          private Builder() {
            super(DEFAULT_INSTANCE);
          }
  
  
          /**
           * <code>string name = 1;</code>
           * @return The name.
           */
          @java.lang.Override
          public java.lang.String getName() {
            return instance.getName();
          }
          /**
           * <code>string name = 1;</code>
           * @return The bytes for name.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString
              getNameBytes() {
            return instance.getNameBytes();
          }
          /**
           * <code>string name = 1;</code>
           * @param value The name to set.
           * @return This builder for chaining.
           */
          public Builder setName(
              java.lang.String value) {
            copyOnWrite();
            instance.setName(value);
            return this;
          }
          /**
           * <code>string name = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearName() {
            copyOnWrite();
            instance.clearName();
            return this;
          }
          /**
           * <code>string name = 1;</code>
           * @param value The bytes for name to set.
           * @return This builder for chaining.
           */
          public Builder setNameBytes(
              com.google.protobuf.ByteString value) {
            copyOnWrite();
            instance.setNameBytes(value);
            return this;
          }
  
          /**
           * <code>uint32 start_index = 2;</code>
           * @return The startIndex.
           */
          @java.lang.Override
          public int getStartIndex() {
            return instance.getStartIndex();
          }
          /**
           * <code>uint32 start_index = 2;</code>
           * @param value The startIndex to set.
           * @return This builder for chaining.
           */
          public Builder setStartIndex(int value) {
            copyOnWrite();
            instance.setStartIndex(value);
            return this;
          }
          /**
           * <code>uint32 start_index = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearStartIndex() {
            copyOnWrite();
            instance.clearStartIndex();
            return this;
          }
  
          /**
           * <code>uint32 end_index = 3;</code>
           * @return The endIndex.
           */
          @java.lang.Override
          public int getEndIndex() {
            return instance.getEndIndex();
          }
          /**
           * <code>uint32 end_index = 3;</code>
           * @param value The endIndex to set.
           * @return This builder for chaining.
           */
          public Builder setEndIndex(int value) {
            copyOnWrite();
            instance.setEndIndex(value);
            return this;
          }
          /**
           * <code>uint32 end_index = 3;</code>
           * @return This builder for chaining.
           */
          public Builder clearEndIndex() {
            copyOnWrite();
            instance.clearEndIndex();
            return this;
          }
  
          // @@protoc_insertion_point(builder_scope:StyleString.Span)
        }
        @java.lang.Override
        @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
        protected final java.lang.Object dynamicMethod(
            com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
            java.lang.Object arg0, java.lang.Object arg1) {
          switch (method) {
            case NEW_MUTABLE_INSTANCE: {
              return new com.android.aapt.Resources.StyleString.Span();
            }
            case NEW_BUILDER: {
              return new Builder();
            }
            case BUILD_MESSAGE_INFO: {
                java.lang.Object[] objects = new java.lang.Object[] {
                  "name_",
                  "startIndex_",
                  "endIndex_",
                };
                java.lang.String info =
                    "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u000b" +
                    "\u0003\u000b";
                return newMessageInfo(DEFAULT_INSTANCE, info, objects);
            }
            // fall through
            case GET_DEFAULT_INSTANCE: {
              return DEFAULT_INSTANCE;
            }
            case GET_PARSER: {
              com.google.protobuf.Parser<com.android.aapt.Resources.StyleString.Span> parser = PARSER;
              if (parser == null) {
                synchronized (com.android.aapt.Resources.StyleString.Span.class) {
                  parser = PARSER;
                  if (parser == null) {
                    parser =
                        new DefaultInstanceBasedParser<com.android.aapt.Resources.StyleString.Span>(
                            DEFAULT_INSTANCE);
                    PARSER = parser;
                  }
                }
              }
              return parser;
          }
          case GET_MEMOIZED_IS_INITIALIZED: {
            return (byte) 1;
          }
          case SET_MEMOIZED_IS_INITIALIZED: {
            return null;
          }
          }
          throw new UnsupportedOperationException();
        }
  
  
        // @@protoc_insertion_point(class_scope:StyleString.Span)
        private static final com.android.aapt.Resources.StyleString.Span DEFAULT_INSTANCE;
        static {
          Span defaultInstance = new Span();
          // New instances are implicitly immutable so no need to make
          // immutable.
          DEFAULT_INSTANCE = defaultInstance;
          com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
            Span.class, defaultInstance);
        }
  
        public static com.android.aapt.Resources.StyleString.Span getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static volatile com.google.protobuf.Parser<Span> PARSER;
  
        public static com.google.protobuf.Parser<Span> parser() {
          return DEFAULT_INSTANCE.getParserForType();
        }
      }
  
      public static final int STR_FIELD_NUMBER = 1;
      private java.lang.String str_;
      /**
       * <code>string str = 1;</code>
       * @return The str.
       */
      @java.lang.Override
      public java.lang.String getStr() {
        return str_;
      }
      /**
       * <code>string str = 1;</code>
       * @return The bytes for str.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStrBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(str_);
      }
      /**
       * <code>string str = 1;</code>
       * @param value The str to set.
       */
      private void setStr(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    
        str_ = value;
      }
      /**
       * <code>string str = 1;</code>
       */
      private void clearStr() {
  
        str_ = getDefaultInstance().getStr();
      }
      /**
       * <code>string str = 1;</code>
       * @param value The bytes for str to set.
       */
      private void setStrBytes(
          com.google.protobuf.ByteString value) {
        checkByteStringIsUtf8(value);
        str_ = value.toStringUtf8();
  
      }
  
      public static final int SPANS_FIELD_NUMBER = 2;
      private com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.StyleString.Span> spans_;
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      @java.lang.Override
      public java.util.List<com.android.aapt.Resources.StyleString.Span> getSpansList() {
        return spans_;
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      public java.util.List<? extends com.android.aapt.Resources.StyleString.SpanOrBuilder> 
          getSpansOrBuilderList() {
        return spans_;
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      @java.lang.Override
      public int getSpansCount() {
        return spans_.size();
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      @java.lang.Override
      public com.android.aapt.Resources.StyleString.Span getSpans(int index) {
        return spans_.get(index);
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      public com.android.aapt.Resources.StyleString.SpanOrBuilder getSpansOrBuilder(
          int index) {
        return spans_.get(index);
      }
      private void ensureSpansIsMutable() {
        com.google.protobuf.Internal.ProtobufList<com.android.aapt.Resources.StyleString.Span> tmp = spans_;
        if (!tmp.isModifiable()) {
          spans_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }
  
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      private void setSpans(
          int index, com.android.aapt.Resources.StyleString.Span value) {
        value.getClass();
    ensureSpansIsMutable();
        spans_.set(index, value);
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      private void addSpans(com.android.aapt.Resources.StyleString.Span value) {
        value.getClass();
    ensureSpansIsMutable();
        spans_.add(value);
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      private void addSpans(
          int index, com.android.aapt.Resources.StyleString.Span value) {
        value.getClass();
    ensureSpansIsMutable();
        spans_.add(index, value);
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      private void addAllSpans(
          java.lang.Iterable<? extends com.android.aapt.Resources.StyleString.Span> values) {
        ensureSpansIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, spans_);
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      private void clearSpans() {
        spans_ = emptyProtobufList();
      }
      /**
       * <code>repeated .StyleString.Span spans = 2;</code>
       */
      private void removeSpans(int index) {
        ensureSpansIsMutable();
        spans_.remove(index);
      }
  
      public static com.android.aapt.Resources.StyleString parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyleString 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 com.android.aapt.Resources.StyleString parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyleString 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 com.android.aapt.Resources.StyleString parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.StyleString 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 com.android.aapt.Resources.StyleString parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StyleString 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 com.android.aapt.Resources.StyleString parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.StyleString parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.StyleString parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.StyleString 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(com.android.aapt.Resources.StyleString prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code StyleString}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.StyleString, Builder> implements
          // @@protoc_insertion_point(builder_implements:StyleString)
          com.android.aapt.Resources.StyleStringOrBuilder {
        // Construct using com.android.aapt.Resources.StyleString.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>string str = 1;</code>
         * @return The str.
         */
        @java.lang.Override
        public java.lang.String getStr() {
          return instance.getStr();
        }
        /**
         * <code>string str = 1;</code>
         * @return The bytes for str.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getStrBytes() {
          return instance.getStrBytes();
        }
        /**
         * <code>string str = 1;</code>
         * @param value The str to set.
         * @return This builder for chaining.
         */
        public Builder setStr(
            java.lang.String value) {
          copyOnWrite();
          instance.setStr(value);
          return this;
        }
        /**
         * <code>string str = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearStr() {
          copyOnWrite();
          instance.clearStr();
          return this;
        }
        /**
         * <code>string str = 1;</code>
         * @param value The bytes for str to set.
         * @return This builder for chaining.
         */
        public Builder setStrBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setStrBytes(value);
          return this;
        }
  
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        @java.lang.Override
        public java.util.List<com.android.aapt.Resources.StyleString.Span> getSpansList() {
          return java.util.Collections.unmodifiableList(
              instance.getSpansList());
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        @java.lang.Override
        public int getSpansCount() {
          return instance.getSpansCount();
        }/**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        @java.lang.Override
        public com.android.aapt.Resources.StyleString.Span getSpans(int index) {
          return instance.getSpans(index);
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder setSpans(
            int index, com.android.aapt.Resources.StyleString.Span value) {
          copyOnWrite();
          instance.setSpans(index, value);
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder setSpans(
            int index, com.android.aapt.Resources.StyleString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.setSpans(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder addSpans(com.android.aapt.Resources.StyleString.Span value) {
          copyOnWrite();
          instance.addSpans(value);
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder addSpans(
            int index, com.android.aapt.Resources.StyleString.Span value) {
          copyOnWrite();
          instance.addSpans(index, value);
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder addSpans(
            com.android.aapt.Resources.StyleString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.addSpans(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder addSpans(
            int index, com.android.aapt.Resources.StyleString.Span.Builder builderForValue) {
          copyOnWrite();
          instance.addSpans(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder addAllSpans(
            java.lang.Iterable<? extends com.android.aapt.Resources.StyleString.Span> values) {
          copyOnWrite();
          instance.addAllSpans(values);
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder clearSpans() {
          copyOnWrite();
          instance.clearSpans();
          return this;
        }
        /**
         * <code>repeated .StyleString.Span spans = 2;</code>
         */
        public Builder removeSpans(int index) {
          copyOnWrite();
          instance.removeSpans(index);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:StyleString)
      }
      @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 com.android.aapt.Resources.StyleString();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "str_",
                "spans_",
                com.android.aapt.Resources.StyleString.Span.class,
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u0208\u0002\u001b" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.StyleString> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.StyleString.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.StyleString>(
                          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:StyleString)
      private static final com.android.aapt.Resources.StyleString DEFAULT_INSTANCE;
      static {
        StyleString defaultInstance = new StyleString();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          StyleString.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.StyleString getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<StyleString> PARSER;
  
      public static com.google.protobuf.Parser<StyleString> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface UntranslatableSectionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:UntranslatableSection)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>uint64 start_index = 1;</code>
       * @return The startIndex.
       */
      long getStartIndex();
  
      /**
       * <code>uint64 end_index = 2;</code>
       * @return The endIndex.
       */
      long getEndIndex();
    }
    /**
     * Protobuf type {@code UntranslatableSection}
     */
    public  static final class UntranslatableSection extends
        com.google.protobuf.GeneratedMessageLite<
            UntranslatableSection, UntranslatableSection.Builder> implements
        // @@protoc_insertion_point(message_implements:UntranslatableSection)
        UntranslatableSectionOrBuilder {
      private UntranslatableSection() {
      }
      public static final int START_INDEX_FIELD_NUMBER = 1;
      private long startIndex_;
      /**
       * <code>uint64 start_index = 1;</code>
       * @return The startIndex.
       */
      @java.lang.Override
      public long getStartIndex() {
        return startIndex_;
      }
      /**
       * <code>uint64 start_index = 1;</code>
       * @param value The startIndex to set.
       */
      private void setStartIndex(long value) {
        
        startIndex_ = value;
      }
      /**
       * <code>uint64 start_index = 1;</code>
       */
      private void clearStartIndex() {
  
        startIndex_ = 0L;
      }
  
      public static final int END_INDEX_FIELD_NUMBER = 2;
      private long endIndex_;
      /**
       * <code>uint64 end_index = 2;</code>
       * @return The endIndex.
       */
      @java.lang.Override
      public long getEndIndex() {
        return endIndex_;
      }
      /**
       * <code>uint64 end_index = 2;</code>
       * @param value The endIndex to set.
       */
      private void setEndIndex(long value) {
        
        endIndex_ = value;
      }
      /**
       * <code>uint64 end_index = 2;</code>
       */
      private void clearEndIndex() {
  
        endIndex_ = 0L;
      }
  
      public static com.android.aapt.Resources.UntranslatableSection parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.UntranslatableSection 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 com.android.aapt.Resources.UntranslatableSection parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.UntranslatableSection 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 com.android.aapt.Resources.UntranslatableSection parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static com.android.aapt.Resources.UntranslatableSection 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 com.android.aapt.Resources.UntranslatableSection parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.UntranslatableSection 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 com.android.aapt.Resources.UntranslatableSection parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static com.android.aapt.Resources.UntranslatableSection parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static com.android.aapt.Resources.UntranslatableSection parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static com.android.aapt.Resources.UntranslatableSection 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(com.android.aapt.Resources.UntranslatableSection prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code UntranslatableSection}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            com.android.aapt.Resources.UntranslatableSection, Builder> implements
          // @@protoc_insertion_point(builder_implements:UntranslatableSection)
          com.android.aapt.Resources.UntranslatableSectionOrBuilder {
        // Construct using com.android.aapt.Resources.UntranslatableSection.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>uint64 start_index = 1;</code>
         * @return The startIndex.
         */
        @java.lang.Override
        public long getStartIndex() {
          return instance.getStartIndex();
        }
        /**
         * <code>uint64 start_index = 1;</code>
         * @param value The startIndex to set.
         * @return This builder for chaining.
         */
        public Builder setStartIndex(long value) {
          copyOnWrite();
          instance.setStartIndex(value);
          return this;
        }
        /**
         * <code>uint64 start_index = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearStartIndex() {
          copyOnWrite();
          instance.clearStartIndex();
          return this;
        }
  
        /**
         * <code>uint64 end_index = 2;</code>
         * @return The endIndex.
         */
        @java.lang.Override
        public long getEndIndex() {
          return instance.getEndIndex();
        }
        /**
         * <code>uint64 end_index = 2;</code>
         * @param value The endIndex to set.
         * @return This builder for chaining.
         */
        public Builder setEndIndex(long value) {
          copyOnWrite();
          instance.setEndIndex(value);
          return this;
        }
        /**
         * <code>uint64 end_index = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearEndIndex() {
          copyOnWrite();
          instance.clearEndIndex();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:UntranslatableSection)
      }
      @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 com.android.aapt.Resources.UntranslatableSection();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "startIndex_",
                "endIndex_",
              };
              java.lang.String info =
                  "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0003\u0002\u0003" +
                  "";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<com.android.aapt.Resources.UntranslatableSection> parser = PARSER;
            if (parser == null) {
              synchronized (com.android.aapt.Resources.UntranslatableSection.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<com.android.aapt.Resources.UntranslatableSection>(
                          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:UntranslatableSection)
      private static final com.android.aapt.Resources.UntranslatableSection DEFAULT_INSTANCE;
      static {
        UntranslatableSection defaultInstance = new UntranslatableSection();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          UntranslatableSection.class, defaultInstance);
      }
  
      public static com.android.aapt.Resources.UntranslatableSection getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<UntranslatableSection> PARSER;
  
      public static com.google.protobuf.Parser<UntranslatableSection> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
  
    static {
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  