All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf Maven / Gradle / Ivy

There is a newer version: 2.1.0-RC
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: js/js.config/src/js-ast.proto

package org.jetbrains.kotlin.serialization.js.ast;

public final class JsAstProtoBuf {
  private JsAstProtoBuf() {}
  public static void registerAllExtensions(
      org.jetbrains.kotlin.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code org.jetbrains.kotlin.serialization.js.ast.SideEffects}
   */
  public enum SideEffects
      implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
    /**
     * AFFECTS_STATE = 1;
     */
    AFFECTS_STATE(0, 1),
    /**
     * DEPENDS_ON_STATE = 2;
     */
    DEPENDS_ON_STATE(1, 2),
    /**
     * PURE = 3;
     */
    PURE(2, 3),
    ;

    /**
     * AFFECTS_STATE = 1;
     */
    public static final int AFFECTS_STATE_VALUE = 1;
    /**
     * DEPENDS_ON_STATE = 2;
     */
    public static final int DEPENDS_ON_STATE_VALUE = 2;
    /**
     * PURE = 3;
     */
    public static final int PURE_VALUE = 3;


    public final int getNumber() { return value; }

    public static SideEffects valueOf(int value) {
      switch (value) {
        case 1: return AFFECTS_STATE;
        case 2: return DEPENDS_ON_STATE;
        case 3: return PURE;
        default: return null;
      }
    }

    public static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap() {
            public SideEffects findValueByNumber(int number) {
              return SideEffects.valueOf(number);
            }
          };

    private final int value;

    private SideEffects(int index, int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.ast.SideEffects)
  }

  /**
   * Protobuf enum {@code org.jetbrains.kotlin.serialization.js.ast.InlineStrategy}
   */
  public enum InlineStrategy
      implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
    /**
     * AS_FUNCTION = 0;
     */
    AS_FUNCTION(0, 0),
    /**
     * IN_PLACE = 1;
     */
    IN_PLACE(1, 1),
    /**
     * NOT_INLINE = 2;
     */
    NOT_INLINE(2, 2),
    ;

    /**
     * AS_FUNCTION = 0;
     */
    public static final int AS_FUNCTION_VALUE = 0;
    /**
     * IN_PLACE = 1;
     */
    public static final int IN_PLACE_VALUE = 1;
    /**
     * NOT_INLINE = 2;
     */
    public static final int NOT_INLINE_VALUE = 2;


    public final int getNumber() { return value; }

    public static InlineStrategy valueOf(int value) {
      switch (value) {
        case 0: return AS_FUNCTION;
        case 1: return IN_PLACE;
        case 2: return NOT_INLINE;
        default: return null;
      }
    }

    public static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap() {
            public InlineStrategy findValueByNumber(int number) {
              return InlineStrategy.valueOf(number);
            }
          };

    private final int value;

    private InlineStrategy(int index, int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.ast.InlineStrategy)
  }

  /**
   * Protobuf enum {@code org.jetbrains.kotlin.serialization.js.ast.SpecialFunction}
   */
  public enum SpecialFunction
      implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
    /**
     * DEFINE_INLINE_FUNCTION = 1;
     */
    DEFINE_INLINE_FUNCTION(0, 1),
    /**
     * WRAP_FUNCTION = 2;
     */
    WRAP_FUNCTION(1, 2),
    /**
     * TO_BOXED_CHAR = 3;
     */
    TO_BOXED_CHAR(2, 3),
    /**
     * UNBOX_CHAR = 4;
     */
    UNBOX_CHAR(3, 4),
    /**
     * SUSPEND_CALL = 5;
     */
    SUSPEND_CALL(4, 5),
    /**
     * COROUTINE_RESULT = 6;
     */
    COROUTINE_RESULT(5, 6),
    /**
     * COROUTINE_CONTROLLER = 7;
     */
    COROUTINE_CONTROLLER(6, 7),
    /**
     * COROUTINE_RECEIVER = 8;
     */
    COROUTINE_RECEIVER(7, 8),
    /**
     * SET_COROUTINE_RESULT = 9;
     */
    SET_COROUTINE_RESULT(8, 9),
    /**
     * GET_KCLASS = 10;
     */
    GET_KCLASS(9, 10),
    /**
     * GET_REIFIED_TYPE_PARAMETER_KTYPE = 11;
     */
    GET_REIFIED_TYPE_PARAMETER_KTYPE(10, 11),
    ;

    /**
     * DEFINE_INLINE_FUNCTION = 1;
     */
    public static final int DEFINE_INLINE_FUNCTION_VALUE = 1;
    /**
     * WRAP_FUNCTION = 2;
     */
    public static final int WRAP_FUNCTION_VALUE = 2;
    /**
     * TO_BOXED_CHAR = 3;
     */
    public static final int TO_BOXED_CHAR_VALUE = 3;
    /**
     * UNBOX_CHAR = 4;
     */
    public static final int UNBOX_CHAR_VALUE = 4;
    /**
     * SUSPEND_CALL = 5;
     */
    public static final int SUSPEND_CALL_VALUE = 5;
    /**
     * COROUTINE_RESULT = 6;
     */
    public static final int COROUTINE_RESULT_VALUE = 6;
    /**
     * COROUTINE_CONTROLLER = 7;
     */
    public static final int COROUTINE_CONTROLLER_VALUE = 7;
    /**
     * COROUTINE_RECEIVER = 8;
     */
    public static final int COROUTINE_RECEIVER_VALUE = 8;
    /**
     * SET_COROUTINE_RESULT = 9;
     */
    public static final int SET_COROUTINE_RESULT_VALUE = 9;
    /**
     * GET_KCLASS = 10;
     */
    public static final int GET_KCLASS_VALUE = 10;
    /**
     * GET_REIFIED_TYPE_PARAMETER_KTYPE = 11;
     */
    public static final int GET_REIFIED_TYPE_PARAMETER_KTYPE_VALUE = 11;


    public final int getNumber() { return value; }

    public static SpecialFunction valueOf(int value) {
      switch (value) {
        case 1: return DEFINE_INLINE_FUNCTION;
        case 2: return WRAP_FUNCTION;
        case 3: return TO_BOXED_CHAR;
        case 4: return UNBOX_CHAR;
        case 5: return SUSPEND_CALL;
        case 6: return COROUTINE_RESULT;
        case 7: return COROUTINE_CONTROLLER;
        case 8: return COROUTINE_RECEIVER;
        case 9: return SET_COROUTINE_RESULT;
        case 10: return GET_KCLASS;
        case 11: return GET_REIFIED_TYPE_PARAMETER_KTYPE;
        default: return null;
      }
    }

    public static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap() {
            public SpecialFunction findValueByNumber(int number) {
              return SpecialFunction.valueOf(number);
            }
          };

    private final int value;

    private SpecialFunction(int index, int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.ast.SpecialFunction)
  }

  public interface LocationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Location)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 startLine = 1;
     */
    boolean hasStartLine();
    /**
     * required int32 startLine = 1;
     */
    int getStartLine();

    /**
     * required int32 startChar = 2;
     */
    boolean hasStartChar();
    /**
     * required int32 startChar = 2;
     */
    int getStartChar();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Location}
   */
  public static final class Location extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Location)
      LocationOrBuilder {
    // Use Location.newBuilder() to construct.
    private Location(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Location(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Location defaultInstance;
    public static Location getDefaultInstance() {
      return defaultInstance;
    }

    public Location getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Location(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              startLine_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              startChar_ = input.readInt32();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Location parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Location(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STARTLINE_FIELD_NUMBER = 1;
    private int startLine_;
    /**
     * required int32 startLine = 1;
     */
    public boolean hasStartLine() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 startLine = 1;
     */
    public int getStartLine() {
      return startLine_;
    }

    public static final int STARTCHAR_FIELD_NUMBER = 2;
    private int startChar_;
    /**
     * required int32 startChar = 2;
     */
    public boolean hasStartChar() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 startChar = 2;
     */
    public int getStartChar() {
      return startChar_;
    }

    private void initFields() {
      startLine_ = 0;
      startChar_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasStartLine()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartChar()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, startLine_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, startChar_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, startLine_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(2, startChar_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Location}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Location)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.LocationOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        startLine_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        startChar_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.startLine_ = startLine_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.startChar_ = startChar_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance()) return this;
        if (other.hasStartLine()) {
          setStartLine(other.getStartLine());
        }
        if (other.hasStartChar()) {
          setStartChar(other.getStartChar());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasStartLine()) {
          
          return false;
        }
        if (!hasStartChar()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int startLine_ ;
      /**
       * required int32 startLine = 1;
       */
      public boolean hasStartLine() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 startLine = 1;
       */
      public int getStartLine() {
        return startLine_;
      }
      /**
       * required int32 startLine = 1;
       */
      public Builder setStartLine(int value) {
        bitField0_ |= 0x00000001;
        startLine_ = value;
        
        return this;
      }
      /**
       * required int32 startLine = 1;
       */
      public Builder clearStartLine() {
        bitField0_ = (bitField0_ & ~0x00000001);
        startLine_ = 0;
        
        return this;
      }

      private int startChar_ ;
      /**
       * required int32 startChar = 2;
       */
      public boolean hasStartChar() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 startChar = 2;
       */
      public int getStartChar() {
        return startChar_;
      }
      /**
       * required int32 startChar = 2;
       */
      public Builder setStartChar(int value) {
        bitField0_ |= 0x00000002;
        startChar_ = value;
        
        return this;
      }
      /**
       * required int32 startChar = 2;
       */
      public Builder clearStartChar() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startChar_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Location)
    }

    static {
      defaultInstance = new Location(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Location)
  }

  public interface JsImportedModuleOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.JsImportedModule)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 external_name = 1;
     */
    boolean hasExternalName();
    /**
     * required int32 external_name = 1;
     */
    int getExternalName();

    /**
     * required int32 internal_name = 2;
     */
    boolean hasInternalName();
    /**
     * required int32 internal_name = 2;
     */
    int getInternalName();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
     */
    boolean hasPlainReference();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getPlainReference();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.JsImportedModule}
   */
  public static final class JsImportedModule extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.JsImportedModule)
      JsImportedModuleOrBuilder {
    // Use JsImportedModule.newBuilder() to construct.
    private JsImportedModule(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private JsImportedModule(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final JsImportedModule defaultInstance;
    public static JsImportedModule getDefaultInstance() {
      return defaultInstance;
    }

    public JsImportedModule getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private JsImportedModule(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              externalName_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              internalName_ = input.readInt32();
              break;
            }
            case 26: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = plainReference_.toBuilder();
              }
              plainReference_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(plainReference_);
                plainReference_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public JsImportedModule parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new JsImportedModule(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EXTERNAL_NAME_FIELD_NUMBER = 1;
    private int externalName_;
    /**
     * required int32 external_name = 1;
     */
    public boolean hasExternalName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 external_name = 1;
     */
    public int getExternalName() {
      return externalName_;
    }

    public static final int INTERNAL_NAME_FIELD_NUMBER = 2;
    private int internalName_;
    /**
     * required int32 internal_name = 2;
     */
    public boolean hasInternalName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 internal_name = 2;
     */
    public int getInternalName() {
      return internalName_;
    }

    public static final int PLAIN_REFERENCE_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression plainReference_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
     */
    public boolean hasPlainReference() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getPlainReference() {
      return plainReference_;
    }

    private void initFields() {
      externalName_ = 0;
      internalName_ = 0;
      plainReference_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasExternalName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasInternalName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPlainReference()) {
        if (!getPlainReference().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, externalName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, internalName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, plainReference_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, externalName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(2, internalName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(3, plainReference_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.JsImportedModule}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.JsImportedModule)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModuleOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        externalName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        internalName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        plainReference_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.externalName_ = externalName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.internalName_ = internalName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.plainReference_ = plainReference_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.getDefaultInstance()) return this;
        if (other.hasExternalName()) {
          setExternalName(other.getExternalName());
        }
        if (other.hasInternalName()) {
          setInternalName(other.getInternalName());
        }
        if (other.hasPlainReference()) {
          mergePlainReference(other.getPlainReference());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasExternalName()) {
          
          return false;
        }
        if (!hasInternalName()) {
          
          return false;
        }
        if (hasPlainReference()) {
          if (!getPlainReference().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int externalName_ ;
      /**
       * required int32 external_name = 1;
       */
      public boolean hasExternalName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 external_name = 1;
       */
      public int getExternalName() {
        return externalName_;
      }
      /**
       * required int32 external_name = 1;
       */
      public Builder setExternalName(int value) {
        bitField0_ |= 0x00000001;
        externalName_ = value;
        
        return this;
      }
      /**
       * required int32 external_name = 1;
       */
      public Builder clearExternalName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        externalName_ = 0;
        
        return this;
      }

      private int internalName_ ;
      /**
       * required int32 internal_name = 2;
       */
      public boolean hasInternalName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 internal_name = 2;
       */
      public int getInternalName() {
        return internalName_;
      }
      /**
       * required int32 internal_name = 2;
       */
      public Builder setInternalName(int value) {
        bitField0_ |= 0x00000002;
        internalName_ = value;
        
        return this;
      }
      /**
       * required int32 internal_name = 2;
       */
      public Builder clearInternalName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        internalName_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression plainReference_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
       */
      public boolean hasPlainReference() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getPlainReference() {
        return plainReference_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
       */
      public Builder setPlainReference(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        plainReference_ = value;

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
       */
      public Builder setPlainReference(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        plainReference_ = builderForValue.build();

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
       */
      public Builder mergePlainReference(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            plainReference_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          plainReference_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(plainReference_).mergeFrom(value).buildPartial();
        } else {
          plainReference_ = value;
        }

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression plain_reference = 3;
       */
      public Builder clearPlainReference() {
        plainReference_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.JsImportedModule)
    }

    static {
      defaultInstance = new JsImportedModule(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.JsImportedModule)
  }

  public interface ExpressionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Expression)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * optional int32 fileId = 1;
     */
    boolean hasFileId();
    /**
     * optional int32 fileId = 1;
     */
    int getFileId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    boolean hasLocation();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation();

    /**
     * optional bool synthetic = 3 [default = false];
     */
    boolean hasSynthetic();
    /**
     * optional bool synthetic = 3 [default = false];
     */
    boolean getSynthetic();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
     */
    boolean hasSideEffects();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects getSideEffects();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
     */
    boolean hasLocalAlias();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule getLocalAlias();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    java.util.List 
        getBeforeCommentsList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getBeforeComments(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    int getBeforeCommentsCount();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    java.util.List 
        getAfterCommentsList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getAfterComments(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    int getAfterCommentsCount();

    /**
     * optional int32 simple_name_reference = 22;
     */
    boolean hasSimpleNameReference();
    /**
     * optional int32 simple_name_reference = 22;
     */
    int getSimpleNameReference();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
     */
    boolean hasThisLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral getThisLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
     */
    boolean hasNullLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral getNullLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
     */
    boolean hasTrueLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral getTrueLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
     */
    boolean hasFalseLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral getFalseLiteral();

    /**
     * optional int32 string_literal = 27;
     */
    boolean hasStringLiteral();
    /**
     * optional int32 string_literal = 27;
     */
    int getStringLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
     */
    boolean hasRegExpLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral getRegExpLiteral();

    /**
     * optional int32 int_literal = 29;
     */
    boolean hasIntLiteral();
    /**
     * optional int32 int_literal = 29;
     */
    int getIntLiteral();

    /**
     * optional double double_literal = 30;
     */
    boolean hasDoubleLiteral();
    /**
     * optional double double_literal = 30;
     */
    double getDoubleLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
     */
    boolean hasArrayLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral getArrayLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
     */
    boolean hasObjectLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral getObjectLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
     */
    boolean hasFunction();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getFunction();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
     */
    boolean hasDocComment();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment getDocComment();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
     */
    boolean hasBinary();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation getBinary();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
     */
    boolean hasUnary();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation getUnary();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
     */
    boolean hasConditional();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional getConditional();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
     */
    boolean hasArrayAccess();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess getArrayAccess();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
     */
    boolean hasNameReference();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference getNameReference();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
     */
    boolean hasPropertyReference();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference getPropertyReference();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
     */
    boolean hasInvocation();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation getInvocation();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
     */
    boolean hasInstantiation();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation getInstantiation();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
     */
    boolean hasSuperLiteral();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral getSuperLiteral();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
     */
    boolean hasClass_();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class getClass_();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Expression}
   */
  public static final class Expression extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Expression)
      ExpressionOrBuilder {
    // Use Expression.newBuilder() to construct.
    private Expression(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Expression(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Expression defaultInstance;
    public static Expression getDefaultInstance() {
      return defaultInstance;
    }

    public Expression getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Expression(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              fileId_ = input.readInt32();
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              synthetic_ = input.readBool();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000008;
                sideEffects_ = value;
              }
              break;
            }
            case 42: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = localAlias_.toBuilder();
              }
              localAlias_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(localAlias_);
                localAlias_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                beforeComments_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000020;
              }
              beforeComments_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.PARSER, extensionRegistry));
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                afterComments_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000040;
              }
              afterComments_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.PARSER, extensionRegistry));
              break;
            }
            case 176: {
              expressionCase_ = 22;
              expression_ = input.readInt32();
              break;
            }
            case 186: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.Builder subBuilder = null;
              if (expressionCase_ == 23) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 23;
              break;
            }
            case 194: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.Builder subBuilder = null;
              if (expressionCase_ == 24) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 24;
              break;
            }
            case 202: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.Builder subBuilder = null;
              if (expressionCase_ == 25) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 25;
              break;
            }
            case 210: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.Builder subBuilder = null;
              if (expressionCase_ == 26) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 26;
              break;
            }
            case 216: {
              expressionCase_ = 27;
              expression_ = input.readInt32();
              break;
            }
            case 226: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.Builder subBuilder = null;
              if (expressionCase_ == 28) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 28;
              break;
            }
            case 232: {
              expressionCase_ = 29;
              expression_ = input.readInt32();
              break;
            }
            case 241: {
              expressionCase_ = 30;
              expression_ = input.readDouble();
              break;
            }
            case 250: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.Builder subBuilder = null;
              if (expressionCase_ == 31) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 31;
              break;
            }
            case 258: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.Builder subBuilder = null;
              if (expressionCase_ == 32) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 32;
              break;
            }
            case 266: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Builder subBuilder = null;
              if (expressionCase_ == 33) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 33;
              break;
            }
            case 274: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.Builder subBuilder = null;
              if (expressionCase_ == 34) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 34;
              break;
            }
            case 282: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Builder subBuilder = null;
              if (expressionCase_ == 35) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 35;
              break;
            }
            case 290: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Builder subBuilder = null;
              if (expressionCase_ == 36) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 36;
              break;
            }
            case 298: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.Builder subBuilder = null;
              if (expressionCase_ == 37) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 37;
              break;
            }
            case 306: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.Builder subBuilder = null;
              if (expressionCase_ == 38) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 38;
              break;
            }
            case 314: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.Builder subBuilder = null;
              if (expressionCase_ == 39) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 39;
              break;
            }
            case 322: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.Builder subBuilder = null;
              if (expressionCase_ == 40) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 40;
              break;
            }
            case 330: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.Builder subBuilder = null;
              if (expressionCase_ == 41) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 41;
              break;
            }
            case 338: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.Builder subBuilder = null;
              if (expressionCase_ == 42) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 42;
              break;
            }
            case 346: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.Builder subBuilder = null;
              if (expressionCase_ == 43) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 43;
              break;
            }
            case 354: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.Builder subBuilder = null;
              if (expressionCase_ == 44) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) expression_).toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) expression_);
                expression_ = subBuilder.buildPartial();
              }
              expressionCase_ = 44;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          beforeComments_ = java.util.Collections.unmodifiableList(beforeComments_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          afterComments_ = java.util.Collections.unmodifiableList(afterComments_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Expression parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Expression(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    private int expressionCase_ = 0;
    private java.lang.Object expression_;
    public enum ExpressionCase
        implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
      SIMPLE_NAME_REFERENCE(22),
      THIS_LITERAL(23),
      NULL_LITERAL(24),
      TRUE_LITERAL(25),
      FALSE_LITERAL(26),
      STRING_LITERAL(27),
      REG_EXP_LITERAL(28),
      INT_LITERAL(29),
      DOUBLE_LITERAL(30),
      ARRAY_LITERAL(31),
      OBJECT_LITERAL(32),
      FUNCTION(33),
      DOC_COMMENT(34),
      BINARY(35),
      UNARY(36),
      CONDITIONAL(37),
      ARRAY_ACCESS(38),
      NAME_REFERENCE(39),
      PROPERTY_REFERENCE(40),
      INVOCATION(41),
      INSTANTIATION(42),
      SUPER_LITERAL(43),
      CLASS(44),
      EXPRESSION_NOT_SET(0);
      private int value = 0;
      private ExpressionCase(int value) {
        this.value = value;
      }
      public static ExpressionCase valueOf(int value) {
        switch (value) {
          case 22: return SIMPLE_NAME_REFERENCE;
          case 23: return THIS_LITERAL;
          case 24: return NULL_LITERAL;
          case 25: return TRUE_LITERAL;
          case 26: return FALSE_LITERAL;
          case 27: return STRING_LITERAL;
          case 28: return REG_EXP_LITERAL;
          case 29: return INT_LITERAL;
          case 30: return DOUBLE_LITERAL;
          case 31: return ARRAY_LITERAL;
          case 32: return OBJECT_LITERAL;
          case 33: return FUNCTION;
          case 34: return DOC_COMMENT;
          case 35: return BINARY;
          case 36: return UNARY;
          case 37: return CONDITIONAL;
          case 38: return ARRAY_ACCESS;
          case 39: return NAME_REFERENCE;
          case 40: return PROPERTY_REFERENCE;
          case 41: return INVOCATION;
          case 42: return INSTANTIATION;
          case 43: return SUPER_LITERAL;
          case 44: return CLASS;
          case 0: return EXPRESSION_NOT_SET;
          default: throw new java.lang.IllegalArgumentException(
            "Value is undefined for this oneof enum.");
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ExpressionCase
    getExpressionCase() {
      return ExpressionCase.valueOf(
          expressionCase_);
    }

    public static final int FILEID_FIELD_NUMBER = 1;
    private int fileId_;
    /**
     * optional int32 fileId = 1;
     */
    public boolean hasFileId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 fileId = 1;
     */
    public int getFileId() {
      return fileId_;
    }

    public static final int LOCATION_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location location_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation() {
      return location_;
    }

    public static final int SYNTHETIC_FIELD_NUMBER = 3;
    private boolean synthetic_;
    /**
     * optional bool synthetic = 3 [default = false];
     */
    public boolean hasSynthetic() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool synthetic = 3 [default = false];
     */
    public boolean getSynthetic() {
      return synthetic_;
    }

    public static final int SIDE_EFFECTS_FIELD_NUMBER = 4;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects sideEffects_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
     */
    public boolean hasSideEffects() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects getSideEffects() {
      return sideEffects_;
    }

    public static final int LOCAL_ALIAS_FIELD_NUMBER = 5;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule localAlias_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
     */
    public boolean hasLocalAlias() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule getLocalAlias() {
      return localAlias_;
    }

    public static final int BEFORE_COMMENTS_FIELD_NUMBER = 6;
    private java.util.List beforeComments_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    public java.util.List getBeforeCommentsList() {
      return beforeComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    public java.util.List 
        getBeforeCommentsOrBuilderList() {
      return beforeComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    public int getBeforeCommentsCount() {
      return beforeComments_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getBeforeComments(int index) {
      return beforeComments_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CommentOrBuilder getBeforeCommentsOrBuilder(
        int index) {
      return beforeComments_.get(index);
    }

    public static final int AFTER_COMMENTS_FIELD_NUMBER = 7;
    private java.util.List afterComments_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    public java.util.List getAfterCommentsList() {
      return afterComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    public java.util.List 
        getAfterCommentsOrBuilderList() {
      return afterComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    public int getAfterCommentsCount() {
      return afterComments_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getAfterComments(int index) {
      return afterComments_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CommentOrBuilder getAfterCommentsOrBuilder(
        int index) {
      return afterComments_.get(index);
    }

    public static final int SIMPLE_NAME_REFERENCE_FIELD_NUMBER = 22;
    /**
     * optional int32 simple_name_reference = 22;
     */
    public boolean hasSimpleNameReference() {
      return expressionCase_ == 22;
    }
    /**
     * optional int32 simple_name_reference = 22;
     */
    public int getSimpleNameReference() {
      if (expressionCase_ == 22) {
        return (java.lang.Integer) expression_;
      }
      return 0;
    }

    public static final int THIS_LITERAL_FIELD_NUMBER = 23;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
     */
    public boolean hasThisLiteral() {
      return expressionCase_ == 23;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral getThisLiteral() {
      if (expressionCase_ == 23) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.getDefaultInstance();
    }

    public static final int NULL_LITERAL_FIELD_NUMBER = 24;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
     */
    public boolean hasNullLiteral() {
      return expressionCase_ == 24;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral getNullLiteral() {
      if (expressionCase_ == 24) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.getDefaultInstance();
    }

    public static final int TRUE_LITERAL_FIELD_NUMBER = 25;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
     */
    public boolean hasTrueLiteral() {
      return expressionCase_ == 25;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral getTrueLiteral() {
      if (expressionCase_ == 25) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.getDefaultInstance();
    }

    public static final int FALSE_LITERAL_FIELD_NUMBER = 26;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
     */
    public boolean hasFalseLiteral() {
      return expressionCase_ == 26;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral getFalseLiteral() {
      if (expressionCase_ == 26) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.getDefaultInstance();
    }

    public static final int STRING_LITERAL_FIELD_NUMBER = 27;
    /**
     * optional int32 string_literal = 27;
     */
    public boolean hasStringLiteral() {
      return expressionCase_ == 27;
    }
    /**
     * optional int32 string_literal = 27;
     */
    public int getStringLiteral() {
      if (expressionCase_ == 27) {
        return (java.lang.Integer) expression_;
      }
      return 0;
    }

    public static final int REG_EXP_LITERAL_FIELD_NUMBER = 28;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
     */
    public boolean hasRegExpLiteral() {
      return expressionCase_ == 28;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral getRegExpLiteral() {
      if (expressionCase_ == 28) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.getDefaultInstance();
    }

    public static final int INT_LITERAL_FIELD_NUMBER = 29;
    /**
     * optional int32 int_literal = 29;
     */
    public boolean hasIntLiteral() {
      return expressionCase_ == 29;
    }
    /**
     * optional int32 int_literal = 29;
     */
    public int getIntLiteral() {
      if (expressionCase_ == 29) {
        return (java.lang.Integer) expression_;
      }
      return 0;
    }

    public static final int DOUBLE_LITERAL_FIELD_NUMBER = 30;
    /**
     * optional double double_literal = 30;
     */
    public boolean hasDoubleLiteral() {
      return expressionCase_ == 30;
    }
    /**
     * optional double double_literal = 30;
     */
    public double getDoubleLiteral() {
      if (expressionCase_ == 30) {
        return (java.lang.Double) expression_;
      }
      return 0D;
    }

    public static final int ARRAY_LITERAL_FIELD_NUMBER = 31;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
     */
    public boolean hasArrayLiteral() {
      return expressionCase_ == 31;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral getArrayLiteral() {
      if (expressionCase_ == 31) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.getDefaultInstance();
    }

    public static final int OBJECT_LITERAL_FIELD_NUMBER = 32;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
     */
    public boolean hasObjectLiteral() {
      return expressionCase_ == 32;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral getObjectLiteral() {
      if (expressionCase_ == 32) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.getDefaultInstance();
    }

    public static final int FUNCTION_FIELD_NUMBER = 33;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
     */
    public boolean hasFunction() {
      return expressionCase_ == 33;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getFunction() {
      if (expressionCase_ == 33) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance();
    }

    public static final int DOC_COMMENT_FIELD_NUMBER = 34;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
     */
    public boolean hasDocComment() {
      return expressionCase_ == 34;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment getDocComment() {
      if (expressionCase_ == 34) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.getDefaultInstance();
    }

    public static final int BINARY_FIELD_NUMBER = 35;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
     */
    public boolean hasBinary() {
      return expressionCase_ == 35;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation getBinary() {
      if (expressionCase_ == 35) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.getDefaultInstance();
    }

    public static final int UNARY_FIELD_NUMBER = 36;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
     */
    public boolean hasUnary() {
      return expressionCase_ == 36;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation getUnary() {
      if (expressionCase_ == 36) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.getDefaultInstance();
    }

    public static final int CONDITIONAL_FIELD_NUMBER = 37;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
     */
    public boolean hasConditional() {
      return expressionCase_ == 37;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional getConditional() {
      if (expressionCase_ == 37) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.getDefaultInstance();
    }

    public static final int ARRAY_ACCESS_FIELD_NUMBER = 38;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
     */
    public boolean hasArrayAccess() {
      return expressionCase_ == 38;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess getArrayAccess() {
      if (expressionCase_ == 38) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.getDefaultInstance();
    }

    public static final int NAME_REFERENCE_FIELD_NUMBER = 39;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
     */
    public boolean hasNameReference() {
      return expressionCase_ == 39;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference getNameReference() {
      if (expressionCase_ == 39) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.getDefaultInstance();
    }

    public static final int PROPERTY_REFERENCE_FIELD_NUMBER = 40;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
     */
    public boolean hasPropertyReference() {
      return expressionCase_ == 40;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference getPropertyReference() {
      if (expressionCase_ == 40) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.getDefaultInstance();
    }

    public static final int INVOCATION_FIELD_NUMBER = 41;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
     */
    public boolean hasInvocation() {
      return expressionCase_ == 41;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation getInvocation() {
      if (expressionCase_ == 41) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.getDefaultInstance();
    }

    public static final int INSTANTIATION_FIELD_NUMBER = 42;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
     */
    public boolean hasInstantiation() {
      return expressionCase_ == 42;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation getInstantiation() {
      if (expressionCase_ == 42) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.getDefaultInstance();
    }

    public static final int SUPER_LITERAL_FIELD_NUMBER = 43;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
     */
    public boolean hasSuperLiteral() {
      return expressionCase_ == 43;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral getSuperLiteral() {
      if (expressionCase_ == 43) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.getDefaultInstance();
    }

    public static final int CLASS_FIELD_NUMBER = 44;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
     */
    public boolean hasClass_() {
      return expressionCase_ == 44;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class getClass_() {
      if (expressionCase_ == 44) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) expression_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.getDefaultInstance();
    }

    private void initFields() {
      fileId_ = 0;
      location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
      synthetic_ = false;
      sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects.AFFECTS_STATE;
      localAlias_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.getDefaultInstance();
      beforeComments_ = java.util.Collections.emptyList();
      afterComments_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (hasLocation()) {
        if (!getLocation().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLocalAlias()) {
        if (!getLocalAlias().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getBeforeCommentsCount(); i++) {
        if (!getBeforeComments(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAfterCommentsCount(); i++) {
        if (!getAfterComments(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRegExpLiteral()) {
        if (!getRegExpLiteral().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasArrayLiteral()) {
        if (!getArrayLiteral().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasObjectLiteral()) {
        if (!getObjectLiteral().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasFunction()) {
        if (!getFunction().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDocComment()) {
        if (!getDocComment().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBinary()) {
        if (!getBinary().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasUnary()) {
        if (!getUnary().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasConditional()) {
        if (!getConditional().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasArrayAccess()) {
        if (!getArrayAccess().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasNameReference()) {
        if (!getNameReference().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPropertyReference()) {
        if (!getPropertyReference().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInvocation()) {
        if (!getInvocation().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInstantiation()) {
        if (!getInstantiation().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasClass_()) {
        if (!getClass_().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, fileId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, location_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, synthetic_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, sideEffects_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, localAlias_);
      }
      for (int i = 0; i < beforeComments_.size(); i++) {
        output.writeMessage(6, beforeComments_.get(i));
      }
      for (int i = 0; i < afterComments_.size(); i++) {
        output.writeMessage(7, afterComments_.get(i));
      }
      if (expressionCase_ == 22) {
        output.writeInt32(
            22, (int)((java.lang.Integer) expression_));
      }
      if (expressionCase_ == 23) {
        output.writeMessage(23, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) expression_);
      }
      if (expressionCase_ == 24) {
        output.writeMessage(24, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) expression_);
      }
      if (expressionCase_ == 25) {
        output.writeMessage(25, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) expression_);
      }
      if (expressionCase_ == 26) {
        output.writeMessage(26, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) expression_);
      }
      if (expressionCase_ == 27) {
        output.writeInt32(
            27, (int)((java.lang.Integer) expression_));
      }
      if (expressionCase_ == 28) {
        output.writeMessage(28, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) expression_);
      }
      if (expressionCase_ == 29) {
        output.writeInt32(
            29, (int)((java.lang.Integer) expression_));
      }
      if (expressionCase_ == 30) {
        output.writeDouble(
            30, (double)((java.lang.Double) expression_));
      }
      if (expressionCase_ == 31) {
        output.writeMessage(31, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) expression_);
      }
      if (expressionCase_ == 32) {
        output.writeMessage(32, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) expression_);
      }
      if (expressionCase_ == 33) {
        output.writeMessage(33, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) expression_);
      }
      if (expressionCase_ == 34) {
        output.writeMessage(34, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) expression_);
      }
      if (expressionCase_ == 35) {
        output.writeMessage(35, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) expression_);
      }
      if (expressionCase_ == 36) {
        output.writeMessage(36, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) expression_);
      }
      if (expressionCase_ == 37) {
        output.writeMessage(37, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) expression_);
      }
      if (expressionCase_ == 38) {
        output.writeMessage(38, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) expression_);
      }
      if (expressionCase_ == 39) {
        output.writeMessage(39, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) expression_);
      }
      if (expressionCase_ == 40) {
        output.writeMessage(40, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) expression_);
      }
      if (expressionCase_ == 41) {
        output.writeMessage(41, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) expression_);
      }
      if (expressionCase_ == 42) {
        output.writeMessage(42, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) expression_);
      }
      if (expressionCase_ == 43) {
        output.writeMessage(43, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) expression_);
      }
      if (expressionCase_ == 44) {
        output.writeMessage(44, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) expression_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, fileId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, location_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(3, synthetic_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeEnumSize(4, sideEffects_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(5, localAlias_);
      }
      for (int i = 0; i < beforeComments_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(6, beforeComments_.get(i));
      }
      for (int i = 0; i < afterComments_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(7, afterComments_.get(i));
      }
      if (expressionCase_ == 22) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(
              22, (int)((java.lang.Integer) expression_));
      }
      if (expressionCase_ == 23) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(23, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) expression_);
      }
      if (expressionCase_ == 24) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(24, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) expression_);
      }
      if (expressionCase_ == 25) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(25, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) expression_);
      }
      if (expressionCase_ == 26) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(26, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) expression_);
      }
      if (expressionCase_ == 27) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(
              27, (int)((java.lang.Integer) expression_));
      }
      if (expressionCase_ == 28) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(28, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) expression_);
      }
      if (expressionCase_ == 29) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(
              29, (int)((java.lang.Integer) expression_));
      }
      if (expressionCase_ == 30) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeDoubleSize(
              30, (double)((java.lang.Double) expression_));
      }
      if (expressionCase_ == 31) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(31, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) expression_);
      }
      if (expressionCase_ == 32) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(32, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) expression_);
      }
      if (expressionCase_ == 33) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(33, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) expression_);
      }
      if (expressionCase_ == 34) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(34, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) expression_);
      }
      if (expressionCase_ == 35) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(35, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) expression_);
      }
      if (expressionCase_ == 36) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(36, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) expression_);
      }
      if (expressionCase_ == 37) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(37, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) expression_);
      }
      if (expressionCase_ == 38) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(38, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) expression_);
      }
      if (expressionCase_ == 39) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(39, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) expression_);
      }
      if (expressionCase_ == 40) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(40, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) expression_);
      }
      if (expressionCase_ == 41) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(41, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) expression_);
      }
      if (expressionCase_ == 42) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(42, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) expression_);
      }
      if (expressionCase_ == 43) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(43, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) expression_);
      }
      if (expressionCase_ == 44) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(44, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) expression_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Expression}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Expression)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        fileId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        synthetic_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects.AFFECTS_STATE;
        bitField0_ = (bitField0_ & ~0x00000008);
        localAlias_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000010);
        beforeComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000020);
        afterComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
        expressionCase_ = 0;
        expression_ = null;
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.fileId_ = fileId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.location_ = location_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.synthetic_ = synthetic_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sideEffects_ = sideEffects_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.localAlias_ = localAlias_;
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          beforeComments_ = java.util.Collections.unmodifiableList(beforeComments_);
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.beforeComments_ = beforeComments_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          afterComments_ = java.util.Collections.unmodifiableList(afterComments_);
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.afterComments_ = afterComments_;
        if (expressionCase_ == 22) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 23) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 24) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 25) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 26) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 27) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 28) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 29) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 30) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 31) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 32) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 33) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 34) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 35) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 36) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 37) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 38) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 39) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 40) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 41) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 42) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 43) {
          result.expression_ = expression_;
        }
        if (expressionCase_ == 44) {
          result.expression_ = expression_;
        }
        result.bitField0_ = to_bitField0_;
        result.expressionCase_ = expressionCase_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) return this;
        if (other.hasFileId()) {
          setFileId(other.getFileId());
        }
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        if (other.hasSynthetic()) {
          setSynthetic(other.getSynthetic());
        }
        if (other.hasSideEffects()) {
          setSideEffects(other.getSideEffects());
        }
        if (other.hasLocalAlias()) {
          mergeLocalAlias(other.getLocalAlias());
        }
        if (!other.beforeComments_.isEmpty()) {
          if (beforeComments_.isEmpty()) {
            beforeComments_ = other.beforeComments_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureBeforeCommentsIsMutable();
            beforeComments_.addAll(other.beforeComments_);
          }
          
        }
        if (!other.afterComments_.isEmpty()) {
          if (afterComments_.isEmpty()) {
            afterComments_ = other.afterComments_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureAfterCommentsIsMutable();
            afterComments_.addAll(other.afterComments_);
          }
          
        }
        switch (other.getExpressionCase()) {
          case SIMPLE_NAME_REFERENCE: {
            setSimpleNameReference(other.getSimpleNameReference());
            break;
          }
          case THIS_LITERAL: {
            mergeThisLiteral(other.getThisLiteral());
            break;
          }
          case NULL_LITERAL: {
            mergeNullLiteral(other.getNullLiteral());
            break;
          }
          case TRUE_LITERAL: {
            mergeTrueLiteral(other.getTrueLiteral());
            break;
          }
          case FALSE_LITERAL: {
            mergeFalseLiteral(other.getFalseLiteral());
            break;
          }
          case STRING_LITERAL: {
            setStringLiteral(other.getStringLiteral());
            break;
          }
          case REG_EXP_LITERAL: {
            mergeRegExpLiteral(other.getRegExpLiteral());
            break;
          }
          case INT_LITERAL: {
            setIntLiteral(other.getIntLiteral());
            break;
          }
          case DOUBLE_LITERAL: {
            setDoubleLiteral(other.getDoubleLiteral());
            break;
          }
          case ARRAY_LITERAL: {
            mergeArrayLiteral(other.getArrayLiteral());
            break;
          }
          case OBJECT_LITERAL: {
            mergeObjectLiteral(other.getObjectLiteral());
            break;
          }
          case FUNCTION: {
            mergeFunction(other.getFunction());
            break;
          }
          case DOC_COMMENT: {
            mergeDocComment(other.getDocComment());
            break;
          }
          case BINARY: {
            mergeBinary(other.getBinary());
            break;
          }
          case UNARY: {
            mergeUnary(other.getUnary());
            break;
          }
          case CONDITIONAL: {
            mergeConditional(other.getConditional());
            break;
          }
          case ARRAY_ACCESS: {
            mergeArrayAccess(other.getArrayAccess());
            break;
          }
          case NAME_REFERENCE: {
            mergeNameReference(other.getNameReference());
            break;
          }
          case PROPERTY_REFERENCE: {
            mergePropertyReference(other.getPropertyReference());
            break;
          }
          case INVOCATION: {
            mergeInvocation(other.getInvocation());
            break;
          }
          case INSTANTIATION: {
            mergeInstantiation(other.getInstantiation());
            break;
          }
          case SUPER_LITERAL: {
            mergeSuperLiteral(other.getSuperLiteral());
            break;
          }
          case CLASS: {
            mergeClass_(other.getClass_());
            break;
          }
          case EXPRESSION_NOT_SET: {
            break;
          }
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (hasLocation()) {
          if (!getLocation().isInitialized()) {
            
            return false;
          }
        }
        if (hasLocalAlias()) {
          if (!getLocalAlias().isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getBeforeCommentsCount(); i++) {
          if (!getBeforeComments(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getAfterCommentsCount(); i++) {
          if (!getAfterComments(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasRegExpLiteral()) {
          if (!getRegExpLiteral().isInitialized()) {
            
            return false;
          }
        }
        if (hasArrayLiteral()) {
          if (!getArrayLiteral().isInitialized()) {
            
            return false;
          }
        }
        if (hasObjectLiteral()) {
          if (!getObjectLiteral().isInitialized()) {
            
            return false;
          }
        }
        if (hasFunction()) {
          if (!getFunction().isInitialized()) {
            
            return false;
          }
        }
        if (hasDocComment()) {
          if (!getDocComment().isInitialized()) {
            
            return false;
          }
        }
        if (hasBinary()) {
          if (!getBinary().isInitialized()) {
            
            return false;
          }
        }
        if (hasUnary()) {
          if (!getUnary().isInitialized()) {
            
            return false;
          }
        }
        if (hasConditional()) {
          if (!getConditional().isInitialized()) {
            
            return false;
          }
        }
        if (hasArrayAccess()) {
          if (!getArrayAccess().isInitialized()) {
            
            return false;
          }
        }
        if (hasNameReference()) {
          if (!getNameReference().isInitialized()) {
            
            return false;
          }
        }
        if (hasPropertyReference()) {
          if (!getPropertyReference().isInitialized()) {
            
            return false;
          }
        }
        if (hasInvocation()) {
          if (!getInvocation().isInitialized()) {
            
            return false;
          }
        }
        if (hasInstantiation()) {
          if (!getInstantiation().isInitialized()) {
            
            return false;
          }
        }
        if (hasClass_()) {
          if (!getClass_().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int expressionCase_ = 0;
      private java.lang.Object expression_;
      public ExpressionCase
          getExpressionCase() {
        return ExpressionCase.valueOf(
            expressionCase_);
      }

      public Builder clearExpression() {
        expressionCase_ = 0;
        expression_ = null;
        return this;
      }

      private int bitField0_;

      private int fileId_ ;
      /**
       * optional int32 fileId = 1;
       */
      public boolean hasFileId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 fileId = 1;
       */
      public int getFileId() {
        return fileId_;
      }
      /**
       * optional int32 fileId = 1;
       */
      public Builder setFileId(int value) {
        bitField0_ |= 0x00000001;
        fileId_ = value;
        
        return this;
      }
      /**
       * optional int32 fileId = 1;
       */
      public Builder clearFileId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        fileId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation() {
        return location_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder setLocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location value) {
        if (value == null) {
          throw new NullPointerException();
        }
        location_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder setLocation(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.Builder builderForValue) {
        location_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder mergeLocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            location_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance()) {
          location_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.newBuilder(location_).mergeFrom(value).buildPartial();
        } else {
          location_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder clearLocation() {
        location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private boolean synthetic_ ;
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public boolean hasSynthetic() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public boolean getSynthetic() {
        return synthetic_;
      }
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public Builder setSynthetic(boolean value) {
        bitField0_ |= 0x00000004;
        synthetic_ = value;
        
        return this;
      }
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public Builder clearSynthetic() {
        bitField0_ = (bitField0_ & ~0x00000004);
        synthetic_ = false;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects.AFFECTS_STATE;
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
       */
      public boolean hasSideEffects() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects getSideEffects() {
        return sideEffects_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
       */
      public Builder setSideEffects(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        sideEffects_ = value;
        
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SideEffects side_effects = 4 [default = AFFECTS_STATE];
       */
      public Builder clearSideEffects() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sideEffects_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SideEffects.AFFECTS_STATE;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule localAlias_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
       */
      public boolean hasLocalAlias() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule getLocalAlias() {
        return localAlias_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
       */
      public Builder setLocalAlias(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule value) {
        if (value == null) {
          throw new NullPointerException();
        }
        localAlias_ = value;

        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
       */
      public Builder setLocalAlias(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.Builder builderForValue) {
        localAlias_ = builderForValue.build();

        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
       */
      public Builder mergeLocalAlias(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule value) {
        if (((bitField0_ & 0x00000010) == 0x00000010) &&
            localAlias_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.getDefaultInstance()) {
          localAlias_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.newBuilder(localAlias_).mergeFrom(value).buildPartial();
        } else {
          localAlias_ = value;
        }

        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.JsImportedModule local_alias = 5;
       */
      public Builder clearLocalAlias() {
        localAlias_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.JsImportedModule.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      private java.util.List beforeComments_ =
        java.util.Collections.emptyList();
      private void ensureBeforeCommentsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          beforeComments_ = new java.util.ArrayList(beforeComments_);
          bitField0_ |= 0x00000020;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public java.util.List getBeforeCommentsList() {
        return java.util.Collections.unmodifiableList(beforeComments_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public int getBeforeCommentsCount() {
        return beforeComments_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getBeforeComments(int index) {
        return beforeComments_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder setBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBeforeCommentsIsMutable();
        beforeComments_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder setBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder addBeforeComments(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder addBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder addBeforeComments(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder addBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder addAllBeforeComments(
          java.lang.Iterable values) {
        ensureBeforeCommentsIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, beforeComments_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder clearBeforeComments() {
        beforeComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000020);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 6;
       */
      public Builder removeBeforeComments(int index) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.remove(index);

        return this;
      }

      private java.util.List afterComments_ =
        java.util.Collections.emptyList();
      private void ensureAfterCommentsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          afterComments_ = new java.util.ArrayList(afterComments_);
          bitField0_ |= 0x00000040;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public java.util.List getAfterCommentsList() {
        return java.util.Collections.unmodifiableList(afterComments_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public int getAfterCommentsCount() {
        return afterComments_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getAfterComments(int index) {
        return afterComments_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder setAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAfterCommentsIsMutable();
        afterComments_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder setAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureAfterCommentsIsMutable();
        afterComments_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder addAfterComments(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAfterCommentsIsMutable();
        afterComments_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder addAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAfterCommentsIsMutable();
        afterComments_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder addAfterComments(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureAfterCommentsIsMutable();
        afterComments_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder addAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureAfterCommentsIsMutable();
        afterComments_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder addAllAfterComments(
          java.lang.Iterable values) {
        ensureAfterCommentsIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, afterComments_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder clearAfterComments() {
        afterComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 7;
       */
      public Builder removeAfterComments(int index) {
        ensureAfterCommentsIsMutable();
        afterComments_.remove(index);

        return this;
      }

      /**
       * optional int32 simple_name_reference = 22;
       */
      public boolean hasSimpleNameReference() {
        return expressionCase_ == 22;
      }
      /**
       * optional int32 simple_name_reference = 22;
       */
      public int getSimpleNameReference() {
        if (expressionCase_ == 22) {
          return (java.lang.Integer) expression_;
        }
        return 0;
      }
      /**
       * optional int32 simple_name_reference = 22;
       */
      public Builder setSimpleNameReference(int value) {
        expressionCase_ = 22;
        expression_ = value;
        
        return this;
      }
      /**
       * optional int32 simple_name_reference = 22;
       */
      public Builder clearSimpleNameReference() {
        if (expressionCase_ == 22) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
       */
      public boolean hasThisLiteral() {
        return expressionCase_ == 23;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral getThisLiteral() {
        if (expressionCase_ == 23) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
       */
      public Builder setThisLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 23;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
       */
      public Builder setThisLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 23;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
       */
      public Builder mergeThisLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral value) {
        if (expressionCase_ == 23 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 23;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ThisLiteral this_literal = 23;
       */
      public Builder clearThisLiteral() {
        if (expressionCase_ == 23) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
       */
      public boolean hasNullLiteral() {
        return expressionCase_ == 24;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral getNullLiteral() {
        if (expressionCase_ == 24) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
       */
      public Builder setNullLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 24;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
       */
      public Builder setNullLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 24;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
       */
      public Builder mergeNullLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral value) {
        if (expressionCase_ == 24 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 24;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NullLiteral null_literal = 24;
       */
      public Builder clearNullLiteral() {
        if (expressionCase_ == 24) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
       */
      public boolean hasTrueLiteral() {
        return expressionCase_ == 25;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral getTrueLiteral() {
        if (expressionCase_ == 25) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
       */
      public Builder setTrueLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 25;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
       */
      public Builder setTrueLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 25;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
       */
      public Builder mergeTrueLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral value) {
        if (expressionCase_ == 25 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 25;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.TrueLiteral true_literal = 25;
       */
      public Builder clearTrueLiteral() {
        if (expressionCase_ == 25) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
       */
      public boolean hasFalseLiteral() {
        return expressionCase_ == 26;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral getFalseLiteral() {
        if (expressionCase_ == 26) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
       */
      public Builder setFalseLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 26;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
       */
      public Builder setFalseLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 26;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
       */
      public Builder mergeFalseLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral value) {
        if (expressionCase_ == 26 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 26;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.FalseLiteral false_literal = 26;
       */
      public Builder clearFalseLiteral() {
        if (expressionCase_ == 26) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional int32 string_literal = 27;
       */
      public boolean hasStringLiteral() {
        return expressionCase_ == 27;
      }
      /**
       * optional int32 string_literal = 27;
       */
      public int getStringLiteral() {
        if (expressionCase_ == 27) {
          return (java.lang.Integer) expression_;
        }
        return 0;
      }
      /**
       * optional int32 string_literal = 27;
       */
      public Builder setStringLiteral(int value) {
        expressionCase_ = 27;
        expression_ = value;
        
        return this;
      }
      /**
       * optional int32 string_literal = 27;
       */
      public Builder clearStringLiteral() {
        if (expressionCase_ == 27) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
       */
      public boolean hasRegExpLiteral() {
        return expressionCase_ == 28;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral getRegExpLiteral() {
        if (expressionCase_ == 28) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
       */
      public Builder setRegExpLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 28;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
       */
      public Builder setRegExpLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 28;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
       */
      public Builder mergeRegExpLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral value) {
        if (expressionCase_ == 28 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 28;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral reg_exp_literal = 28;
       */
      public Builder clearRegExpLiteral() {
        if (expressionCase_ == 28) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional int32 int_literal = 29;
       */
      public boolean hasIntLiteral() {
        return expressionCase_ == 29;
      }
      /**
       * optional int32 int_literal = 29;
       */
      public int getIntLiteral() {
        if (expressionCase_ == 29) {
          return (java.lang.Integer) expression_;
        }
        return 0;
      }
      /**
       * optional int32 int_literal = 29;
       */
      public Builder setIntLiteral(int value) {
        expressionCase_ = 29;
        expression_ = value;
        
        return this;
      }
      /**
       * optional int32 int_literal = 29;
       */
      public Builder clearIntLiteral() {
        if (expressionCase_ == 29) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional double double_literal = 30;
       */
      public boolean hasDoubleLiteral() {
        return expressionCase_ == 30;
      }
      /**
       * optional double double_literal = 30;
       */
      public double getDoubleLiteral() {
        if (expressionCase_ == 30) {
          return (java.lang.Double) expression_;
        }
        return 0D;
      }
      /**
       * optional double double_literal = 30;
       */
      public Builder setDoubleLiteral(double value) {
        expressionCase_ = 30;
        expression_ = value;
        
        return this;
      }
      /**
       * optional double double_literal = 30;
       */
      public Builder clearDoubleLiteral() {
        if (expressionCase_ == 30) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
       */
      public boolean hasArrayLiteral() {
        return expressionCase_ == 31;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral getArrayLiteral() {
        if (expressionCase_ == 31) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
       */
      public Builder setArrayLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 31;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
       */
      public Builder setArrayLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 31;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
       */
      public Builder mergeArrayLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral value) {
        if (expressionCase_ == 31 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 31;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral array_literal = 31;
       */
      public Builder clearArrayLiteral() {
        if (expressionCase_ == 31) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
       */
      public boolean hasObjectLiteral() {
        return expressionCase_ == 32;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral getObjectLiteral() {
        if (expressionCase_ == 32) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
       */
      public Builder setObjectLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 32;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
       */
      public Builder setObjectLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 32;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
       */
      public Builder mergeObjectLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral value) {
        if (expressionCase_ == 32 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 32;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral object_literal = 32;
       */
      public Builder clearObjectLiteral() {
        if (expressionCase_ == 32) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
       */
      public boolean hasFunction() {
        return expressionCase_ == 33;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getFunction() {
        if (expressionCase_ == 33) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
       */
      public Builder setFunction(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 33;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
       */
      public Builder setFunction(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 33;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
       */
      public Builder mergeFunction(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function value) {
        if (expressionCase_ == 33 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 33;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function function = 33;
       */
      public Builder clearFunction() {
        if (expressionCase_ == 33) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
       */
      public boolean hasDocComment() {
        return expressionCase_ == 34;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment getDocComment() {
        if (expressionCase_ == 34) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
       */
      public Builder setDocComment(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 34;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
       */
      public Builder setDocComment(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 34;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
       */
      public Builder mergeDocComment(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment value) {
        if (expressionCase_ == 34 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 34;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DocComment doc_comment = 34;
       */
      public Builder clearDocComment() {
        if (expressionCase_ == 34) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
       */
      public boolean hasBinary() {
        return expressionCase_ == 35;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation getBinary() {
        if (expressionCase_ == 35) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
       */
      public Builder setBinary(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 35;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
       */
      public Builder setBinary(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 35;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
       */
      public Builder mergeBinary(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation value) {
        if (expressionCase_ == 35 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 35;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation binary = 35;
       */
      public Builder clearBinary() {
        if (expressionCase_ == 35) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
       */
      public boolean hasUnary() {
        return expressionCase_ == 36;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation getUnary() {
        if (expressionCase_ == 36) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
       */
      public Builder setUnary(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 36;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
       */
      public Builder setUnary(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 36;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
       */
      public Builder mergeUnary(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation value) {
        if (expressionCase_ == 36 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 36;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation unary = 36;
       */
      public Builder clearUnary() {
        if (expressionCase_ == 36) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
       */
      public boolean hasConditional() {
        return expressionCase_ == 37;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional getConditional() {
        if (expressionCase_ == 37) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
       */
      public Builder setConditional(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 37;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
       */
      public Builder setConditional(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 37;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
       */
      public Builder mergeConditional(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional value) {
        if (expressionCase_ == 37 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 37;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Conditional conditional = 37;
       */
      public Builder clearConditional() {
        if (expressionCase_ == 37) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
       */
      public boolean hasArrayAccess() {
        return expressionCase_ == 38;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess getArrayAccess() {
        if (expressionCase_ == 38) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
       */
      public Builder setArrayAccess(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 38;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
       */
      public Builder setArrayAccess(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 38;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
       */
      public Builder mergeArrayAccess(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess value) {
        if (expressionCase_ == 38 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 38;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ArrayAccess array_access = 38;
       */
      public Builder clearArrayAccess() {
        if (expressionCase_ == 38) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
       */
      public boolean hasNameReference() {
        return expressionCase_ == 39;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference getNameReference() {
        if (expressionCase_ == 39) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
       */
      public Builder setNameReference(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 39;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
       */
      public Builder setNameReference(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 39;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
       */
      public Builder mergeNameReference(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference value) {
        if (expressionCase_ == 39 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 39;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.NameReference name_reference = 39;
       */
      public Builder clearNameReference() {
        if (expressionCase_ == 39) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
       */
      public boolean hasPropertyReference() {
        return expressionCase_ == 40;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference getPropertyReference() {
        if (expressionCase_ == 40) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
       */
      public Builder setPropertyReference(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 40;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
       */
      public Builder setPropertyReference(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 40;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
       */
      public Builder mergePropertyReference(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference value) {
        if (expressionCase_ == 40 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 40;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.PropertyReference property_reference = 40;
       */
      public Builder clearPropertyReference() {
        if (expressionCase_ == 40) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
       */
      public boolean hasInvocation() {
        return expressionCase_ == 41;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation getInvocation() {
        if (expressionCase_ == 41) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
       */
      public Builder setInvocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 41;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
       */
      public Builder setInvocation(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 41;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
       */
      public Builder mergeInvocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation value) {
        if (expressionCase_ == 41 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 41;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Invocation invocation = 41;
       */
      public Builder clearInvocation() {
        if (expressionCase_ == 41) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
       */
      public boolean hasInstantiation() {
        return expressionCase_ == 42;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation getInstantiation() {
        if (expressionCase_ == 42) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
       */
      public Builder setInstantiation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 42;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
       */
      public Builder setInstantiation(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 42;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
       */
      public Builder mergeInstantiation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation value) {
        if (expressionCase_ == 42 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 42;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Instantiation instantiation = 42;
       */
      public Builder clearInstantiation() {
        if (expressionCase_ == 42) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
       */
      public boolean hasSuperLiteral() {
        return expressionCase_ == 43;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral getSuperLiteral() {
        if (expressionCase_ == 43) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
       */
      public Builder setSuperLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 43;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
       */
      public Builder setSuperLiteral(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 43;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
       */
      public Builder mergeSuperLiteral(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral value) {
        if (expressionCase_ == 43 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 43;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SuperLiteral super_literal = 43;
       */
      public Builder clearSuperLiteral() {
        if (expressionCase_ == 43) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
       */
      public boolean hasClass_() {
        return expressionCase_ == 44;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class getClass_() {
        if (expressionCase_ == 44) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) expression_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
       */
      public Builder setClass_(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        expressionCase_ = 44;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
       */
      public Builder setClass_(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.Builder builderForValue) {
        expression_ = builderForValue.build();

        expressionCase_ = 44;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
       */
      public Builder mergeClass_(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class value) {
        if (expressionCase_ == 44 &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.getDefaultInstance()) {
          expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) expression_)
              .mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        expressionCase_ = 44;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Class class = 44;
       */
      public Builder clearClass_() {
        if (expressionCase_ == 44) {
          expressionCase_ = 0;
          expression_ = null;
          
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Expression)
    }

    static {
      defaultInstance = new Expression(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Expression)
  }

  public interface ThisLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.ThisLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ThisLiteral}
   */
  public static final class ThisLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.ThisLiteral)
      ThisLiteralOrBuilder {
    // Use ThisLiteral.newBuilder() to construct.
    private ThisLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ThisLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final ThisLiteral defaultInstance;
    public static ThisLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public ThisLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private ThisLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public ThisLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new ThisLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ThisLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.ThisLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral(this);
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThisLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.ThisLiteral)
    }

    static {
      defaultInstance = new ThisLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.ThisLiteral)
  }

  public interface SuperLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.SuperLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.SuperLiteral}
   */
  public static final class SuperLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.SuperLiteral)
      SuperLiteralOrBuilder {
    // Use SuperLiteral.newBuilder() to construct.
    private SuperLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SuperLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final SuperLiteral defaultInstance;
    public static SuperLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public SuperLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private SuperLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public SuperLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new SuperLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.SuperLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.SuperLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral(this);
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SuperLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.SuperLiteral)
    }

    static {
      defaultInstance = new SuperLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.SuperLiteral)
  }

  public interface NullLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.NullLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.NullLiteral}
   */
  public static final class NullLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.NullLiteral)
      NullLiteralOrBuilder {
    // Use NullLiteral.newBuilder() to construct.
    private NullLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private NullLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final NullLiteral defaultInstance;
    public static NullLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public NullLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private NullLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public NullLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new NullLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.NullLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.NullLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral(this);
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NullLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.NullLiteral)
    }

    static {
      defaultInstance = new NullLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.NullLiteral)
  }

  public interface TrueLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.TrueLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.TrueLiteral}
   */
  public static final class TrueLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.TrueLiteral)
      TrueLiteralOrBuilder {
    // Use TrueLiteral.newBuilder() to construct.
    private TrueLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private TrueLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final TrueLiteral defaultInstance;
    public static TrueLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public TrueLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private TrueLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public TrueLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new TrueLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.TrueLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.TrueLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral(this);
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.TrueLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.TrueLiteral)
    }

    static {
      defaultInstance = new TrueLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.TrueLiteral)
  }

  public interface FalseLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.FalseLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.FalseLiteral}
   */
  public static final class FalseLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.FalseLiteral)
      FalseLiteralOrBuilder {
    // Use FalseLiteral.newBuilder() to construct.
    private FalseLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private FalseLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final FalseLiteral defaultInstance;
    public static FalseLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public FalseLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private FalseLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public FalseLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new FalseLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.FalseLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.FalseLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral(this);
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FalseLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.FalseLiteral)
    }

    static {
      defaultInstance = new FalseLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.FalseLiteral)
  }

  public interface RegExpLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 pattern_string_id = 1;
     */
    boolean hasPatternStringId();
    /**
     * required int32 pattern_string_id = 1;
     */
    int getPatternStringId();

    /**
     * optional int32 flags_string_id = 2;
     */
    boolean hasFlagsStringId();
    /**
     * optional int32 flags_string_id = 2;
     */
    int getFlagsStringId();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral}
   */
  public static final class RegExpLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral)
      RegExpLiteralOrBuilder {
    // Use RegExpLiteral.newBuilder() to construct.
    private RegExpLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private RegExpLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final RegExpLiteral defaultInstance;
    public static RegExpLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public RegExpLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private RegExpLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              patternStringId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              flagsStringId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public RegExpLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new RegExpLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PATTERN_STRING_ID_FIELD_NUMBER = 1;
    private int patternStringId_;
    /**
     * required int32 pattern_string_id = 1;
     */
    public boolean hasPatternStringId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 pattern_string_id = 1;
     */
    public int getPatternStringId() {
      return patternStringId_;
    }

    public static final int FLAGS_STRING_ID_FIELD_NUMBER = 2;
    private int flagsStringId_;
    /**
     * optional int32 flags_string_id = 2;
     */
    public boolean hasFlagsStringId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 flags_string_id = 2;
     */
    public int getFlagsStringId() {
      return flagsStringId_;
    }

    private void initFields() {
      patternStringId_ = 0;
      flagsStringId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPatternStringId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, patternStringId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, flagsStringId_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, patternStringId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(2, flagsStringId_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        patternStringId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        flagsStringId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.patternStringId_ = patternStringId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.flagsStringId_ = flagsStringId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral.getDefaultInstance()) return this;
        if (other.hasPatternStringId()) {
          setPatternStringId(other.getPatternStringId());
        }
        if (other.hasFlagsStringId()) {
          setFlagsStringId(other.getFlagsStringId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPatternStringId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.RegExpLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int patternStringId_ ;
      /**
       * required int32 pattern_string_id = 1;
       */
      public boolean hasPatternStringId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 pattern_string_id = 1;
       */
      public int getPatternStringId() {
        return patternStringId_;
      }
      /**
       * required int32 pattern_string_id = 1;
       */
      public Builder setPatternStringId(int value) {
        bitField0_ |= 0x00000001;
        patternStringId_ = value;
        
        return this;
      }
      /**
       * required int32 pattern_string_id = 1;
       */
      public Builder clearPatternStringId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        patternStringId_ = 0;
        
        return this;
      }

      private int flagsStringId_ ;
      /**
       * optional int32 flags_string_id = 2;
       */
      public boolean hasFlagsStringId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 flags_string_id = 2;
       */
      public int getFlagsStringId() {
        return flagsStringId_;
      }
      /**
       * optional int32 flags_string_id = 2;
       */
      public Builder setFlagsStringId(int value) {
        bitField0_ |= 0x00000002;
        flagsStringId_ = value;
        
        return this;
      }
      /**
       * optional int32 flags_string_id = 2;
       */
      public Builder clearFlagsStringId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        flagsStringId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral)
    }

    static {
      defaultInstance = new RegExpLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.RegExpLiteral)
  }

  public interface ArrayLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    java.util.List 
        getElementList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getElement(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    int getElementCount();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral}
   */
  public static final class ArrayLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral)
      ArrayLiteralOrBuilder {
    // Use ArrayLiteral.newBuilder() to construct.
    private ArrayLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ArrayLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final ArrayLiteral defaultInstance;
    public static ArrayLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public ArrayLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private ArrayLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                element_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              element_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          element_ = java.util.Collections.unmodifiableList(element_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public ArrayLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new ArrayLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int ELEMENT_FIELD_NUMBER = 1;
    private java.util.List element_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    public java.util.List getElementList() {
      return element_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    public java.util.List 
        getElementOrBuilderList() {
      return element_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    public int getElementCount() {
      return element_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getElement(int index) {
      return element_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionOrBuilder getElementOrBuilder(
        int index) {
      return element_.get(index);
    }

    private void initFields() {
      element_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getElementCount(); i++) {
        if (!getElement(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < element_.size(); i++) {
        output.writeMessage(1, element_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < element_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, element_.get(i));
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        element_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          element_ = java.util.Collections.unmodifiableList(element_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.element_ = element_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral.getDefaultInstance()) return this;
        if (!other.element_.isEmpty()) {
          if (element_.isEmpty()) {
            element_ = other.element_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureElementIsMutable();
            element_.addAll(other.element_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getElementCount(); i++) {
          if (!getElement(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List element_ =
        java.util.Collections.emptyList();
      private void ensureElementIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          element_ = new java.util.ArrayList(element_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public java.util.List getElementList() {
        return java.util.Collections.unmodifiableList(element_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public int getElementCount() {
        return element_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getElement(int index) {
        return element_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder setElement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureElementIsMutable();
        element_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder setElement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureElementIsMutable();
        element_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder addElement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureElementIsMutable();
        element_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder addElement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureElementIsMutable();
        element_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder addElement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureElementIsMutable();
        element_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder addElement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureElementIsMutable();
        element_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder addAllElement(
          java.lang.Iterable values) {
        ensureElementIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, element_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder clearElement() {
        element_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression element = 1;
       */
      public Builder removeElement(int index) {
        ensureElementIsMutable();
        element_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral)
    }

    static {
      defaultInstance = new ArrayLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.ArrayLiteral)
  }

  public interface ObjectLiteralOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    java.util.List 
        getEntryList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry getEntry(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    int getEntryCount();

    /**
     * optional bool multiline = 2 [default = true];
     */
    boolean hasMultiline();
    /**
     * optional bool multiline = 2 [default = true];
     */
    boolean getMultiline();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral}
   */
  public static final class ObjectLiteral extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral)
      ObjectLiteralOrBuilder {
    // Use ObjectLiteral.newBuilder() to construct.
    private ObjectLiteral(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ObjectLiteral(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final ObjectLiteral defaultInstance;
    public static ObjectLiteral getDefaultInstance() {
      return defaultInstance;
    }

    public ObjectLiteral getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private ObjectLiteral(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                entry_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              entry_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              multiline_ = input.readBool();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          entry_ = java.util.Collections.unmodifiableList(entry_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public ObjectLiteral parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new ObjectLiteral(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTRY_FIELD_NUMBER = 1;
    private java.util.List entry_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    public java.util.List getEntryList() {
      return entry_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    public java.util.List 
        getEntryOrBuilderList() {
      return entry_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    public int getEntryCount() {
      return entry_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry getEntry(int index) {
      return entry_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntryOrBuilder getEntryOrBuilder(
        int index) {
      return entry_.get(index);
    }

    public static final int MULTILINE_FIELD_NUMBER = 2;
    private boolean multiline_;
    /**
     * optional bool multiline = 2 [default = true];
     */
    public boolean hasMultiline() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool multiline = 2 [default = true];
     */
    public boolean getMultiline() {
      return multiline_;
    }

    private void initFields() {
      entry_ = java.util.Collections.emptyList();
      multiline_ = true;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getEntryCount(); i++) {
        if (!getEntry(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < entry_.size(); i++) {
        output.writeMessage(1, entry_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(2, multiline_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < entry_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, entry_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(2, multiline_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entry_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        multiline_ = true;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          entry_ = java.util.Collections.unmodifiableList(entry_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.entry_ = entry_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.multiline_ = multiline_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral.getDefaultInstance()) return this;
        if (!other.entry_.isEmpty()) {
          if (entry_.isEmpty()) {
            entry_ = other.entry_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureEntryIsMutable();
            entry_.addAll(other.entry_);
          }
          
        }
        if (other.hasMultiline()) {
          setMultiline(other.getMultiline());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getEntryCount(); i++) {
          if (!getEntry(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteral) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List entry_ =
        java.util.Collections.emptyList();
      private void ensureEntryIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          entry_ = new java.util.ArrayList(entry_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public java.util.List getEntryList() {
        return java.util.Collections.unmodifiableList(entry_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public int getEntryCount() {
        return entry_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry getEntry(int index) {
        return entry_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder setEntry(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder setEntry(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder addEntry(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder addEntry(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureEntryIsMutable();
        entry_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder addEntry(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder addEntry(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry.Builder builderForValue) {
        ensureEntryIsMutable();
        entry_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder addAllEntry(
          java.lang.Iterable values) {
        ensureEntryIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, entry_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder clearEntry() {
        entry_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry entry = 1;
       */
      public Builder removeEntry(int index) {
        ensureEntryIsMutable();
        entry_.remove(index);

        return this;
      }

      private boolean multiline_ = true;
      /**
       * optional bool multiline = 2 [default = true];
       */
      public boolean hasMultiline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool multiline = 2 [default = true];
       */
      public boolean getMultiline() {
        return multiline_;
      }
      /**
       * optional bool multiline = 2 [default = true];
       */
      public Builder setMultiline(boolean value) {
        bitField0_ |= 0x00000002;
        multiline_ = value;
        
        return this;
      }
      /**
       * optional bool multiline = 2 [default = true];
       */
      public Builder clearMultiline() {
        bitField0_ = (bitField0_ & ~0x00000002);
        multiline_ = true;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral)
    }

    static {
      defaultInstance = new ObjectLiteral(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteral)
  }

  public interface ObjectLiteralEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
     */
    boolean hasKey();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getKey();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
     */
    boolean hasValue();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getValue();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry}
   */
  public static final class ObjectLiteralEntry extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry)
      ObjectLiteralEntryOrBuilder {
    // Use ObjectLiteralEntry.newBuilder() to construct.
    private ObjectLiteralEntry(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ObjectLiteralEntry(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final ObjectLiteralEntry defaultInstance;
    public static ObjectLiteralEntry getDefaultInstance() {
      return defaultInstance;
    }

    public ObjectLiteralEntry getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private ObjectLiteralEntry(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = value_.toBuilder();
              }
              value_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(value_);
                value_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public ObjectLiteralEntry parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new ObjectLiteralEntry(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression key_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getKey() {
      return key_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getValue() {
      return value_;
    }

    private void initFields() {
      key_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getValue().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, value_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, value_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntryOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        key_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasKey()) {
          
          return false;
        }
        if (!hasValue()) {
          
          return false;
        }
        if (!getKey().isInitialized()) {
          
          return false;
        }
        if (!getValue().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ObjectLiteralEntry) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression key_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getKey() {
        return key_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
       */
      public Builder setKey(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        key_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
       */
      public Builder setKey(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        key_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
       */
      public Builder mergeKey(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            key_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          key_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(key_).mergeFrom(value).buildPartial();
        } else {
          key_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression key = 1;
       */
      public Builder clearKey() {
        key_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getValue() {
        return value_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
       */
      public Builder setValue(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        value_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
       */
      public Builder setValue(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        value_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
       */
      public Builder mergeValue(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            value_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          value_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(value_).mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression value = 2;
       */
      public Builder clearValue() {
        value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry)
    }

    static {
      defaultInstance = new ObjectLiteralEntry(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.ObjectLiteralEntry)
  }

  public interface FunctionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Function)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    java.util.List 
        getParameterList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter getParameter(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    int getParameterCount();

    /**
     * optional int32 name_id = 2;
     */
    boolean hasNameId();
    /**
     * optional int32 name_id = 2;
     */
    int getNameId();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
     */
    boolean hasBody();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getBody();

    /**
     * optional bool local = 4 [default = false];
     */
    boolean hasLocal();
    /**
     * optional bool local = 4 [default = false];
     */
    boolean getLocal();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
     */
    java.util.List getModifierList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
     */
    int getModifierCount();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier getModifier(int index);

    /**
     * optional bool is_es6_arrow = 6 [default = false];
     */
    boolean hasIsEs6Arrow();
    /**
     * optional bool is_es6_arrow = 6 [default = false];
     */
    boolean getIsEs6Arrow();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Function}
   */
  public static final class Function extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Function)
      FunctionOrBuilder {
    // Use Function.newBuilder() to construct.
    private Function(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Function(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Function defaultInstance;
    public static Function getDefaultInstance() {
      return defaultInstance;
    }

    public Function getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Function(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                parameter_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              parameter_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              nameId_ = input.readInt32();
              break;
            }
            case 26: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = body_.toBuilder();
              }
              body_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(body_);
                body_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              local_ = input.readBool();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
                } else {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  modifier_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000010;
                }
                modifier_.add(value);
              }
              break;
            }
            case 42: {
              int length = input.readRawVarint32();
              int oldLimit = input.pushLimit(length);
              while(input.getBytesUntilLimit() > 0) {
                int rawValue = input.readEnum();
                org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier.valueOf(rawValue);
                if (value == null) {
                  unknownFieldsCodedOutput.writeRawVarint32(tag);
                  unknownFieldsCodedOutput.writeRawVarint32(rawValue);
                  } else {
                  if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                    modifier_ = new java.util.ArrayList();
                    mutable_bitField0_ |= 0x00000010;
                  }
                  modifier_.add(value);
                }
              }
              input.popLimit(oldLimit);
              break;
            }
            case 48: {
              bitField0_ |= 0x00000008;
              isEs6Arrow_ = input.readBool();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          parameter_ = java.util.Collections.unmodifiableList(parameter_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          modifier_ = java.util.Collections.unmodifiableList(modifier_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Function parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Function(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code org.jetbrains.kotlin.serialization.js.ast.Function.Modifier}
     */
    public enum Modifier
        implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
      /**
       * STATIC = 1;
       */
      STATIC(0, 1),
      /**
       * GET = 2;
       */
      GET(1, 2),
      /**
       * SET = 3;
       */
      SET(2, 3),
      /**
       * GENERATOR = 4;
       */
      GENERATOR(3, 4),
      ;

      /**
       * STATIC = 1;
       */
      public static final int STATIC_VALUE = 1;
      /**
       * GET = 2;
       */
      public static final int GET_VALUE = 2;
      /**
       * SET = 3;
       */
      public static final int SET_VALUE = 3;
      /**
       * GENERATOR = 4;
       */
      public static final int GENERATOR_VALUE = 4;


      public final int getNumber() { return value; }

      public static Modifier valueOf(int value) {
        switch (value) {
          case 1: return STATIC;
          case 2: return GET;
          case 3: return SET;
          case 4: return GENERATOR;
          default: return null;
        }
      }

      public static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
          internalValueMap =
            new org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap() {
              public Modifier findValueByNumber(int number) {
                return Modifier.valueOf(number);
              }
            };

      private final int value;

      private Modifier(int index, int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.ast.Function.Modifier)
    }

    private int bitField0_;
    public static final int PARAMETER_FIELD_NUMBER = 1;
    private java.util.List parameter_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    public java.util.List getParameterList() {
      return parameter_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    public java.util.List 
        getParameterOrBuilderList() {
      return parameter_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    public int getParameterCount() {
      return parameter_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter getParameter(int index) {
      return parameter_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ParameterOrBuilder getParameterOrBuilder(
        int index) {
      return parameter_.get(index);
    }

    public static final int NAME_ID_FIELD_NUMBER = 2;
    private int nameId_;
    /**
     * optional int32 name_id = 2;
     */
    public boolean hasNameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 name_id = 2;
     */
    public int getNameId() {
      return nameId_;
    }

    public static final int BODY_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement body_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
     */
    public boolean hasBody() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getBody() {
      return body_;
    }

    public static final int LOCAL_FIELD_NUMBER = 4;
    private boolean local_;
    /**
     * optional bool local = 4 [default = false];
     */
    public boolean hasLocal() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool local = 4 [default = false];
     */
    public boolean getLocal() {
      return local_;
    }

    public static final int MODIFIER_FIELD_NUMBER = 5;
    private java.util.List modifier_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
     */
    public java.util.List getModifierList() {
      return modifier_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
     */
    public int getModifierCount() {
      return modifier_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier getModifier(int index) {
      return modifier_.get(index);
    }

    public static final int IS_ES6_ARROW_FIELD_NUMBER = 6;
    private boolean isEs6Arrow_;
    /**
     * optional bool is_es6_arrow = 6 [default = false];
     */
    public boolean hasIsEs6Arrow() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool is_es6_arrow = 6 [default = false];
     */
    public boolean getIsEs6Arrow() {
      return isEs6Arrow_;
    }

    private void initFields() {
      parameter_ = java.util.Collections.emptyList();
      nameId_ = 0;
      body_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.getDefaultInstance();
      local_ = false;
      modifier_ = java.util.Collections.emptyList();
      isEs6Arrow_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasBody()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getParameterCount(); i++) {
        if (!getParameter(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (!getBody().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < parameter_.size(); i++) {
        output.writeMessage(1, parameter_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(2, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, body_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(4, local_);
      }
      for (int i = 0; i < modifier_.size(); i++) {
        output.writeEnum(5, modifier_.get(i).getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(6, isEs6Arrow_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < parameter_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, parameter_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(2, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(3, body_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(4, local_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < modifier_.size(); i++) {
          dataSize += org.jetbrains.kotlin.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(modifier_.get(i).getNumber());
        }
        size += dataSize;
        size += 1 * modifier_.size();
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(6, isEs6Arrow_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Function}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Function)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FunctionOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        parameter_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        nameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        body_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        local_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        modifier_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        isEs6Arrow_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          parameter_ = java.util.Collections.unmodifiableList(parameter_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.parameter_ = parameter_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.nameId_ = nameId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.body_ = body_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.local_ = local_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          modifier_ = java.util.Collections.unmodifiableList(modifier_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.modifier_ = modifier_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000008;
        }
        result.isEs6Arrow_ = isEs6Arrow_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance()) return this;
        if (!other.parameter_.isEmpty()) {
          if (parameter_.isEmpty()) {
            parameter_ = other.parameter_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureParameterIsMutable();
            parameter_.addAll(other.parameter_);
          }
          
        }
        if (other.hasNameId()) {
          setNameId(other.getNameId());
        }
        if (other.hasBody()) {
          mergeBody(other.getBody());
        }
        if (other.hasLocal()) {
          setLocal(other.getLocal());
        }
        if (!other.modifier_.isEmpty()) {
          if (modifier_.isEmpty()) {
            modifier_ = other.modifier_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureModifierIsMutable();
            modifier_.addAll(other.modifier_);
          }
          
        }
        if (other.hasIsEs6Arrow()) {
          setIsEs6Arrow(other.getIsEs6Arrow());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasBody()) {
          
          return false;
        }
        for (int i = 0; i < getParameterCount(); i++) {
          if (!getParameter(i).isInitialized()) {
            
            return false;
          }
        }
        if (!getBody().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List parameter_ =
        java.util.Collections.emptyList();
      private void ensureParameterIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          parameter_ = new java.util.ArrayList(parameter_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public java.util.List getParameterList() {
        return java.util.Collections.unmodifiableList(parameter_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public int getParameterCount() {
        return parameter_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter getParameter(int index) {
        return parameter_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder setParameter(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureParameterIsMutable();
        parameter_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder setParameter(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter.Builder builderForValue) {
        ensureParameterIsMutable();
        parameter_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder addParameter(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureParameterIsMutable();
        parameter_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder addParameter(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureParameterIsMutable();
        parameter_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder addParameter(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter.Builder builderForValue) {
        ensureParameterIsMutable();
        parameter_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder addParameter(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter.Builder builderForValue) {
        ensureParameterIsMutable();
        parameter_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder addAllParameter(
          java.lang.Iterable values) {
        ensureParameterIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, parameter_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder clearParameter() {
        parameter_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Parameter parameter = 1;
       */
      public Builder removeParameter(int index) {
        ensureParameterIsMutable();
        parameter_.remove(index);

        return this;
      }

      private int nameId_ ;
      /**
       * optional int32 name_id = 2;
       */
      public boolean hasNameId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 name_id = 2;
       */
      public int getNameId() {
        return nameId_;
      }
      /**
       * optional int32 name_id = 2;
       */
      public Builder setNameId(int value) {
        bitField0_ |= 0x00000002;
        nameId_ = value;
        
        return this;
      }
      /**
       * optional int32 name_id = 2;
       */
      public Builder clearNameId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        nameId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement body_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
       */
      public boolean hasBody() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getBody() {
        return body_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
       */
      public Builder setBody(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        body_ = value;

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
       */
      public Builder setBody(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder builderForValue) {
        body_ = builderForValue.build();

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
       */
      public Builder mergeBody(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            body_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.getDefaultInstance()) {
          body_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.newBuilder(body_).mergeFrom(value).buildPartial();
        } else {
          body_ = value;
        }

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Statement body = 3;
       */
      public Builder clearBody() {
        body_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      private boolean local_ ;
      /**
       * optional bool local = 4 [default = false];
       */
      public boolean hasLocal() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool local = 4 [default = false];
       */
      public boolean getLocal() {
        return local_;
      }
      /**
       * optional bool local = 4 [default = false];
       */
      public Builder setLocal(boolean value) {
        bitField0_ |= 0x00000008;
        local_ = value;
        
        return this;
      }
      /**
       * optional bool local = 4 [default = false];
       */
      public Builder clearLocal() {
        bitField0_ = (bitField0_ & ~0x00000008);
        local_ = false;
        
        return this;
      }

      private java.util.List modifier_ =
        java.util.Collections.emptyList();
      private void ensureModifierIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          modifier_ = new java.util.ArrayList(modifier_);
          bitField0_ |= 0x00000010;
        }
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
       */
      public java.util.List getModifierList() {
        return java.util.Collections.unmodifiableList(modifier_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
       */
      public int getModifierCount() {
        return modifier_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier getModifier(int index) {
        return modifier_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
       */
      public Builder setModifier(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureModifierIsMutable();
        modifier_.set(index, value);
        
        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
       */
      public Builder addModifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Modifier value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureModifierIsMutable();
        modifier_.add(value);
        
        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
       */
      public Builder addAllModifier(
          java.lang.Iterable values) {
        ensureModifierIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, modifier_);
        
        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function.Modifier modifier = 5;
       */
      public Builder clearModifier() {
        modifier_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        
        return this;
      }

      private boolean isEs6Arrow_ ;
      /**
       * optional bool is_es6_arrow = 6 [default = false];
       */
      public boolean hasIsEs6Arrow() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool is_es6_arrow = 6 [default = false];
       */
      public boolean getIsEs6Arrow() {
        return isEs6Arrow_;
      }
      /**
       * optional bool is_es6_arrow = 6 [default = false];
       */
      public Builder setIsEs6Arrow(boolean value) {
        bitField0_ |= 0x00000020;
        isEs6Arrow_ = value;
        
        return this;
      }
      /**
       * optional bool is_es6_arrow = 6 [default = false];
       */
      public Builder clearIsEs6Arrow() {
        bitField0_ = (bitField0_ & ~0x00000020);
        isEs6Arrow_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Function)
    }

    static {
      defaultInstance = new Function(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Function)
  }

  public interface ClassOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Class)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * optional int32 name_id = 1;
     */
    boolean hasNameId();
    /**
     * optional int32 name_id = 1;
     */
    int getNameId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
     */
    boolean hasSuperExpression();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getSuperExpression();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
     */
    boolean hasConstructor();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getConstructor();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    java.util.List 
        getMemberList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getMember(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    int getMemberCount();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Class}
   */
  public static final class Class extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Class)
      ClassOrBuilder {
    // Use Class.newBuilder() to construct.
    private Class(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Class(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Class defaultInstance;
    public static Class getDefaultInstance() {
      return defaultInstance;
    }

    public Class getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Class(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              nameId_ = input.readInt32();
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = superExpression_.toBuilder();
              }
              superExpression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(superExpression_);
                superExpression_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = constructor_.toBuilder();
              }
              constructor_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(constructor_);
                constructor_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                member_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              member_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          member_ = java.util.Collections.unmodifiableList(member_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Class parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Class(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int NAME_ID_FIELD_NUMBER = 1;
    private int nameId_;
    /**
     * optional int32 name_id = 1;
     */
    public boolean hasNameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 name_id = 1;
     */
    public int getNameId() {
      return nameId_;
    }

    public static final int SUPER_EXPRESSION_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression superExpression_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
     */
    public boolean hasSuperExpression() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getSuperExpression() {
      return superExpression_;
    }

    public static final int CONSTRUCTOR_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function constructor_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
     */
    public boolean hasConstructor() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getConstructor() {
      return constructor_;
    }

    public static final int MEMBER_FIELD_NUMBER = 4;
    private java.util.List member_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    public java.util.List getMemberList() {
      return member_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    public java.util.List 
        getMemberOrBuilderList() {
      return member_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    public int getMemberCount() {
      return member_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getMember(int index) {
      return member_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.FunctionOrBuilder getMemberOrBuilder(
        int index) {
      return member_.get(index);
    }

    private void initFields() {
      nameId_ = 0;
      superExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      constructor_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance();
      member_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (hasSuperExpression()) {
        if (!getSuperExpression().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasConstructor()) {
        if (!getConstructor().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getMemberCount(); i++) {
        if (!getMember(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, superExpression_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, constructor_);
      }
      for (int i = 0; i < member_.size(); i++) {
        output.writeMessage(4, member_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, superExpression_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(3, constructor_);
      }
      for (int i = 0; i < member_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(4, member_.get(i));
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Class}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Class)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ClassOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        nameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        superExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        constructor_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        member_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.nameId_ = nameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.superExpression_ = superExpression_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.constructor_ = constructor_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          member_ = java.util.Collections.unmodifiableList(member_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.member_ = member_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class.getDefaultInstance()) return this;
        if (other.hasNameId()) {
          setNameId(other.getNameId());
        }
        if (other.hasSuperExpression()) {
          mergeSuperExpression(other.getSuperExpression());
        }
        if (other.hasConstructor()) {
          mergeConstructor(other.getConstructor());
        }
        if (!other.member_.isEmpty()) {
          if (member_.isEmpty()) {
            member_ = other.member_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureMemberIsMutable();
            member_.addAll(other.member_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (hasSuperExpression()) {
          if (!getSuperExpression().isInitialized()) {
            
            return false;
          }
        }
        if (hasConstructor()) {
          if (!getConstructor().isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getMemberCount(); i++) {
          if (!getMember(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Class) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int nameId_ ;
      /**
       * optional int32 name_id = 1;
       */
      public boolean hasNameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 name_id = 1;
       */
      public int getNameId() {
        return nameId_;
      }
      /**
       * optional int32 name_id = 1;
       */
      public Builder setNameId(int value) {
        bitField0_ |= 0x00000001;
        nameId_ = value;
        
        return this;
      }
      /**
       * optional int32 name_id = 1;
       */
      public Builder clearNameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        nameId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression superExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
       */
      public boolean hasSuperExpression() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getSuperExpression() {
        return superExpression_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
       */
      public Builder setSuperExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        superExpression_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
       */
      public Builder setSuperExpression(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        superExpression_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
       */
      public Builder mergeSuperExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            superExpression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          superExpression_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(superExpression_).mergeFrom(value).buildPartial();
        } else {
          superExpression_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression super_expression = 2;
       */
      public Builder clearSuperExpression() {
        superExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function constructor_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
       */
      public boolean hasConstructor() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getConstructor() {
        return constructor_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
       */
      public Builder setConstructor(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function value) {
        if (value == null) {
          throw new NullPointerException();
        }
        constructor_ = value;

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
       */
      public Builder setConstructor(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Builder builderForValue) {
        constructor_ = builderForValue.build();

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
       */
      public Builder mergeConstructor(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            constructor_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance()) {
          constructor_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.newBuilder(constructor_).mergeFrom(value).buildPartial();
        } else {
          constructor_ = value;
        }

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Function constructor = 3;
       */
      public Builder clearConstructor() {
        constructor_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      private java.util.List member_ =
        java.util.Collections.emptyList();
      private void ensureMemberIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          member_ = new java.util.ArrayList(member_);
          bitField0_ |= 0x00000008;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public java.util.List getMemberList() {
        return java.util.Collections.unmodifiableList(member_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public int getMemberCount() {
        return member_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function getMember(int index) {
        return member_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder setMember(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMemberIsMutable();
        member_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder setMember(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Builder builderForValue) {
        ensureMemberIsMutable();
        member_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder addMember(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMemberIsMutable();
        member_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder addMember(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMemberIsMutable();
        member_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder addMember(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Builder builderForValue) {
        ensureMemberIsMutable();
        member_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder addMember(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Function.Builder builderForValue) {
        ensureMemberIsMutable();
        member_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder addAllMember(
          java.lang.Iterable values) {
        ensureMemberIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, member_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder clearMember() {
        member_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Function member = 4;
       */
      public Builder removeMember(int index) {
        ensureMemberIsMutable();
        member_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Class)
    }

    static {
      defaultInstance = new Class(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Class)
  }

  public interface ParameterOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Parameter)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 name_id = 1;
     */
    boolean hasNameId();
    /**
     * required int32 name_id = 1;
     */
    int getNameId();

    /**
     * optional bool has_default_value = 2 [default = false];
     */
    boolean hasHasDefaultValue();
    /**
     * optional bool has_default_value = 2 [default = false];
     */
    boolean getHasDefaultValue();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Parameter}
   */
  public static final class Parameter extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Parameter)
      ParameterOrBuilder {
    // Use Parameter.newBuilder() to construct.
    private Parameter(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Parameter(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Parameter defaultInstance;
    public static Parameter getDefaultInstance() {
      return defaultInstance;
    }

    public Parameter getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Parameter(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              nameId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              hasDefaultValue_ = input.readBool();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Parameter parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Parameter(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int NAME_ID_FIELD_NUMBER = 1;
    private int nameId_;
    /**
     * required int32 name_id = 1;
     */
    public boolean hasNameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 name_id = 1;
     */
    public int getNameId() {
      return nameId_;
    }

    public static final int HAS_DEFAULT_VALUE_FIELD_NUMBER = 2;
    private boolean hasDefaultValue_;
    /**
     * optional bool has_default_value = 2 [default = false];
     */
    public boolean hasHasDefaultValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool has_default_value = 2 [default = false];
     */
    public boolean getHasDefaultValue() {
      return hasDefaultValue_;
    }

    private void initFields() {
      nameId_ = 0;
      hasDefaultValue_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasNameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, hasDefaultValue_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(2, hasDefaultValue_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Parameter}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Parameter)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ParameterOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        nameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        hasDefaultValue_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.nameId_ = nameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hasDefaultValue_ = hasDefaultValue_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter.getDefaultInstance()) return this;
        if (other.hasNameId()) {
          setNameId(other.getNameId());
        }
        if (other.hasHasDefaultValue()) {
          setHasDefaultValue(other.getHasDefaultValue());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasNameId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Parameter) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int nameId_ ;
      /**
       * required int32 name_id = 1;
       */
      public boolean hasNameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 name_id = 1;
       */
      public int getNameId() {
        return nameId_;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder setNameId(int value) {
        bitField0_ |= 0x00000001;
        nameId_ = value;
        
        return this;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder clearNameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        nameId_ = 0;
        
        return this;
      }

      private boolean hasDefaultValue_ ;
      /**
       * optional bool has_default_value = 2 [default = false];
       */
      public boolean hasHasDefaultValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool has_default_value = 2 [default = false];
       */
      public boolean getHasDefaultValue() {
        return hasDefaultValue_;
      }
      /**
       * optional bool has_default_value = 2 [default = false];
       */
      public Builder setHasDefaultValue(boolean value) {
        bitField0_ |= 0x00000002;
        hasDefaultValue_ = value;
        
        return this;
      }
      /**
       * optional bool has_default_value = 2 [default = false];
       */
      public Builder clearHasDefaultValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hasDefaultValue_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Parameter)
    }

    static {
      defaultInstance = new Parameter(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Parameter)
  }

  public interface DocCommentOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.DocComment)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    java.util.List 
        getTagList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag getTag(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    int getTagCount();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.DocComment}
   */
  public static final class DocComment extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.DocComment)
      DocCommentOrBuilder {
    // Use DocComment.newBuilder() to construct.
    private DocComment(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DocComment(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final DocComment defaultInstance;
    public static DocComment getDefaultInstance() {
      return defaultInstance;
    }

    public DocComment getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private DocComment(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                tag_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              tag_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          tag_ = java.util.Collections.unmodifiableList(tag_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public DocComment parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new DocComment(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int TAG_FIELD_NUMBER = 1;
    private java.util.List tag_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    public java.util.List getTagList() {
      return tag_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    public java.util.List 
        getTagOrBuilderList() {
      return tag_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    public int getTagCount() {
      return tag_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag getTag(int index) {
      return tag_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTagOrBuilder getTagOrBuilder(
        int index) {
      return tag_.get(index);
    }

    private void initFields() {
      tag_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getTagCount(); i++) {
        if (!getTag(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < tag_.size(); i++) {
        output.writeMessage(1, tag_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < tag_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, tag_.get(i));
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.DocComment}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.DocComment)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        tag_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          tag_ = java.util.Collections.unmodifiableList(tag_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.tag_ = tag_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment.getDefaultInstance()) return this;
        if (!other.tag_.isEmpty()) {
          if (tag_.isEmpty()) {
            tag_ = other.tag_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureTagIsMutable();
            tag_.addAll(other.tag_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getTagCount(); i++) {
          if (!getTag(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocComment) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List tag_ =
        java.util.Collections.emptyList();
      private void ensureTagIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          tag_ = new java.util.ArrayList(tag_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public java.util.List getTagList() {
        return java.util.Collections.unmodifiableList(tag_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public int getTagCount() {
        return tag_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag getTag(int index) {
        return tag_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder setTag(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTagIsMutable();
        tag_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder setTag(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag.Builder builderForValue) {
        ensureTagIsMutable();
        tag_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder addTag(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTagIsMutable();
        tag_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder addTag(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTagIsMutable();
        tag_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder addTag(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag.Builder builderForValue) {
        ensureTagIsMutable();
        tag_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder addTag(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag.Builder builderForValue) {
        ensureTagIsMutable();
        tag_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder addAllTag(
          java.lang.Iterable values) {
        ensureTagIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, tag_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder clearTag() {
        tag_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.DocCommentTag tag = 1;
       */
      public Builder removeTag(int index) {
        ensureTagIsMutable();
        tag_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.DocComment)
    }

    static {
      defaultInstance = new DocComment(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.DocComment)
  }

  public interface DocCommentTagOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.DocCommentTag)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 name_id = 1;
     */
    boolean hasNameId();
    /**
     * required int32 name_id = 1;
     */
    int getNameId();

    /**
     * optional int32 value_string_id = 2;
     */
    boolean hasValueStringId();
    /**
     * optional int32 value_string_id = 2;
     */
    int getValueStringId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
     */
    boolean hasExpression();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getExpression();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.DocCommentTag}
   */
  public static final class DocCommentTag extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.DocCommentTag)
      DocCommentTagOrBuilder {
    // Use DocCommentTag.newBuilder() to construct.
    private DocCommentTag(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DocCommentTag(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final DocCommentTag defaultInstance;
    public static DocCommentTag getDefaultInstance() {
      return defaultInstance;
    }

    public DocCommentTag getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private DocCommentTag(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              nameId_ = input.readInt32();
              break;
            }
            case 16: {
              valueCase_ = 2;
              value_ = input.readInt32();
              break;
            }
            case 26: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (valueCase_ == 3) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) value_).toBuilder();
              }
              value_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) value_);
                value_ = subBuilder.buildPartial();
              }
              valueCase_ = 3;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public DocCommentTag parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new DocCommentTag(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    private int valueCase_ = 0;
    private java.lang.Object value_;
    public enum ValueCase
        implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
      VALUE_STRING_ID(2),
      EXPRESSION(3),
      VALUE_NOT_SET(0);
      private int value = 0;
      private ValueCase(int value) {
        this.value = value;
      }
      public static ValueCase valueOf(int value) {
        switch (value) {
          case 2: return VALUE_STRING_ID;
          case 3: return EXPRESSION;
          case 0: return VALUE_NOT_SET;
          default: throw new java.lang.IllegalArgumentException(
            "Value is undefined for this oneof enum.");
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ValueCase
    getValueCase() {
      return ValueCase.valueOf(
          valueCase_);
    }

    public static final int NAME_ID_FIELD_NUMBER = 1;
    private int nameId_;
    /**
     * required int32 name_id = 1;
     */
    public boolean hasNameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 name_id = 1;
     */
    public int getNameId() {
      return nameId_;
    }

    public static final int VALUE_STRING_ID_FIELD_NUMBER = 2;
    /**
     * optional int32 value_string_id = 2;
     */
    public boolean hasValueStringId() {
      return valueCase_ == 2;
    }
    /**
     * optional int32 value_string_id = 2;
     */
    public int getValueStringId() {
      if (valueCase_ == 2) {
        return (java.lang.Integer) value_;
      }
      return 0;
    }

    public static final int EXPRESSION_FIELD_NUMBER = 3;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
     */
    public boolean hasExpression() {
      return valueCase_ == 3;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getExpression() {
      if (valueCase_ == 3) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) value_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
    }

    private void initFields() {
      nameId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasNameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasExpression()) {
        if (!getExpression().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, nameId_);
      }
      if (valueCase_ == 2) {
        output.writeInt32(
            2, (int)((java.lang.Integer) value_));
      }
      if (valueCase_ == 3) {
        output.writeMessage(3, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) value_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, nameId_);
      }
      if (valueCase_ == 2) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(
              2, (int)((java.lang.Integer) value_));
      }
      if (valueCase_ == 3) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(3, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) value_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.DocCommentTag}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.DocCommentTag)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTagOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        nameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.nameId_ = nameId_;
        if (valueCase_ == 2) {
          result.value_ = value_;
        }
        if (valueCase_ == 3) {
          result.value_ = value_;
        }
        result.bitField0_ = to_bitField0_;
        result.valueCase_ = valueCase_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag.getDefaultInstance()) return this;
        if (other.hasNameId()) {
          setNameId(other.getNameId());
        }
        switch (other.getValueCase()) {
          case VALUE_STRING_ID: {
            setValueStringId(other.getValueStringId());
            break;
          }
          case EXPRESSION: {
            mergeExpression(other.getExpression());
            break;
          }
          case VALUE_NOT_SET: {
            break;
          }
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasNameId()) {
          
          return false;
        }
        if (hasExpression()) {
          if (!getExpression().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DocCommentTag) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int valueCase_ = 0;
      private java.lang.Object value_;
      public ValueCase
          getValueCase() {
        return ValueCase.valueOf(
            valueCase_);
      }

      public Builder clearValue() {
        valueCase_ = 0;
        value_ = null;
        return this;
      }

      private int bitField0_;

      private int nameId_ ;
      /**
       * required int32 name_id = 1;
       */
      public boolean hasNameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 name_id = 1;
       */
      public int getNameId() {
        return nameId_;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder setNameId(int value) {
        bitField0_ |= 0x00000001;
        nameId_ = value;
        
        return this;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder clearNameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        nameId_ = 0;
        
        return this;
      }

      /**
       * optional int32 value_string_id = 2;
       */
      public boolean hasValueStringId() {
        return valueCase_ == 2;
      }
      /**
       * optional int32 value_string_id = 2;
       */
      public int getValueStringId() {
        if (valueCase_ == 2) {
          return (java.lang.Integer) value_;
        }
        return 0;
      }
      /**
       * optional int32 value_string_id = 2;
       */
      public Builder setValueStringId(int value) {
        valueCase_ = 2;
        value_ = value;
        
        return this;
      }
      /**
       * optional int32 value_string_id = 2;
       */
      public Builder clearValueStringId() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
       */
      public boolean hasExpression() {
        return valueCase_ == 3;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getExpression() {
        if (valueCase_ == 3) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) value_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
       */
      public Builder setExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        value_ = value;

        valueCase_ = 3;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
       */
      public Builder setExpression(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        value_ = builderForValue.build();

        valueCase_ = 3;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
       */
      public Builder mergeExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (valueCase_ == 3 &&
            value_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression) value_)
              .mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }

        valueCase_ = 3;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 3;
       */
      public Builder clearExpression() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.DocCommentTag)
    }

    static {
      defaultInstance = new DocCommentTag(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.DocCommentTag)
  }

  public interface CommentOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Comment)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required string text = 1;
     */
    boolean hasText();
    /**
     * required string text = 1;
     */
    java.lang.String getText();
    /**
     * required string text = 1;
     */
    org.jetbrains.kotlin.protobuf.ByteString
        getTextBytes();

    /**
     * required bool multiline = 2;
     */
    boolean hasMultiline();
    /**
     * required bool multiline = 2;
     */
    boolean getMultiline();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Comment}
   */
  public static final class Comment extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Comment)
      CommentOrBuilder {
    // Use Comment.newBuilder() to construct.
    private Comment(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Comment(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Comment defaultInstance;
    public static Comment getDefaultInstance() {
      return defaultInstance;
    }

    public Comment getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Comment(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              text_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              multiline_ = input.readBool();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Comment parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Comment(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TEXT_FIELD_NUMBER = 1;
    private java.lang.Object text_;
    /**
     * required string text = 1;
     */
    public boolean hasText() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string text = 1;
     */
    public java.lang.String getText() {
      java.lang.Object ref = text_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        org.jetbrains.kotlin.protobuf.ByteString bs = 
            (org.jetbrains.kotlin.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          text_ = s;
        }
        return s;
      }
    }
    /**
     * required string text = 1;
     */
    public org.jetbrains.kotlin.protobuf.ByteString
        getTextBytes() {
      java.lang.Object ref = text_;
      if (ref instanceof java.lang.String) {
        org.jetbrains.kotlin.protobuf.ByteString b = 
            org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        text_ = b;
        return b;
      } else {
        return (org.jetbrains.kotlin.protobuf.ByteString) ref;
      }
    }

    public static final int MULTILINE_FIELD_NUMBER = 2;
    private boolean multiline_;
    /**
     * required bool multiline = 2;
     */
    public boolean hasMultiline() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required bool multiline = 2;
     */
    public boolean getMultiline() {
      return multiline_;
    }

    private void initFields() {
      text_ = "";
      multiline_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasText()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMultiline()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getTextBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, multiline_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBytesSize(1, getTextBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(2, multiline_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Comment}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Comment)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CommentOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        text_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        multiline_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.text_ = text_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.multiline_ = multiline_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.getDefaultInstance()) return this;
        if (other.hasText()) {
          bitField0_ |= 0x00000001;
          text_ = other.text_;
          
        }
        if (other.hasMultiline()) {
          setMultiline(other.getMultiline());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasText()) {
          
          return false;
        }
        if (!hasMultiline()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object text_ = "";
      /**
       * required string text = 1;
       */
      public boolean hasText() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string text = 1;
       */
      public java.lang.String getText() {
        java.lang.Object ref = text_;
        if (!(ref instanceof java.lang.String)) {
          org.jetbrains.kotlin.protobuf.ByteString bs =
              (org.jetbrains.kotlin.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            text_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string text = 1;
       */
      public org.jetbrains.kotlin.protobuf.ByteString
          getTextBytes() {
        java.lang.Object ref = text_;
        if (ref instanceof String) {
          org.jetbrains.kotlin.protobuf.ByteString b = 
              org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          text_ = b;
          return b;
        } else {
          return (org.jetbrains.kotlin.protobuf.ByteString) ref;
        }
      }
      /**
       * required string text = 1;
       */
      public Builder setText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        text_ = value;
        
        return this;
      }
      /**
       * required string text = 1;
       */
      public Builder clearText() {
        bitField0_ = (bitField0_ & ~0x00000001);
        text_ = getDefaultInstance().getText();
        
        return this;
      }
      /**
       * required string text = 1;
       */
      public Builder setTextBytes(
          org.jetbrains.kotlin.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        text_ = value;
        
        return this;
      }

      private boolean multiline_ ;
      /**
       * required bool multiline = 2;
       */
      public boolean hasMultiline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required bool multiline = 2;
       */
      public boolean getMultiline() {
        return multiline_;
      }
      /**
       * required bool multiline = 2;
       */
      public Builder setMultiline(boolean value) {
        bitField0_ |= 0x00000002;
        multiline_ = value;
        
        return this;
      }
      /**
       * required bool multiline = 2;
       */
      public Builder clearMultiline() {
        bitField0_ = (bitField0_ & ~0x00000002);
        multiline_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Comment)
    }

    static {
      defaultInstance = new Comment(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Comment)
  }

  public interface BinaryOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.BinaryOperation)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
     */
    boolean hasLeft();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getLeft();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
     */
    boolean hasRight();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getRight();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
     */
    boolean hasType();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type getType();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.BinaryOperation}
   */
  public static final class BinaryOperation extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.BinaryOperation)
      BinaryOperationOrBuilder {
    // Use BinaryOperation.newBuilder() to construct.
    private BinaryOperation(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private BinaryOperation(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final BinaryOperation defaultInstance;
    public static BinaryOperation getDefaultInstance() {
      return defaultInstance;
    }

    public BinaryOperation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private BinaryOperation(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = left_.toBuilder();
              }
              left_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(left_);
                left_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = right_.toBuilder();
              }
              right_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(right_);
                right_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                type_ = value;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public BinaryOperation parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new BinaryOperation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type}
     */
    public enum Type
        implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
      /**
       * MUL = 1;
       */
      MUL(0, 1),
      /**
       * DIV = 2;
       */
      DIV(1, 2),
      /**
       * MOD = 3;
       */
      MOD(2, 3),
      /**
       * ADD = 4;
       */
      ADD(3, 4),
      /**
       * SUB = 5;
       */
      SUB(4, 5),
      /**
       * SHL = 6;
       */
      SHL(5, 6),
      /**
       * SHR = 7;
       */
      SHR(6, 7),
      /**
       * SHRU = 8;
       */
      SHRU(7, 8),
      /**
       * LT = 9;
       */
      LT(8, 9),
      /**
       * LTE = 10;
       */
      LTE(9, 10),
      /**
       * GT = 11;
       */
      GT(10, 11),
      /**
       * GTE = 12;
       */
      GTE(11, 12),
      /**
       * INSTANCEOF = 13;
       */
      INSTANCEOF(12, 13),
      /**
       * IN = 14;
       */
      IN(13, 14),
      /**
       * EQ = 15;
       */
      EQ(14, 15),
      /**
       * NEQ = 16;
       */
      NEQ(15, 16),
      /**
       * REF_EQ = 17;
       */
      REF_EQ(16, 17),
      /**
       * REF_NEQ = 18;
       */
      REF_NEQ(17, 18),
      /**
       * BIT_AND = 19;
       */
      BIT_AND(18, 19),
      /**
       * BIT_XOR = 20;
       */
      BIT_XOR(19, 20),
      /**
       * BIT_OR = 21;
       */
      BIT_OR(20, 21),
      /**
       * AND = 22;
       */
      AND(21, 22),
      /**
       * OR = 23;
       */
      OR(22, 23),
      /**
       * ASG = 24;
       */
      ASG(23, 24),
      /**
       * ASG_ADD = 25;
       */
      ASG_ADD(24, 25),
      /**
       * ASG_SUB = 26;
       */
      ASG_SUB(25, 26),
      /**
       * ASG_MUL = 27;
       */
      ASG_MUL(26, 27),
      /**
       * ASG_DIV = 28;
       */
      ASG_DIV(27, 28),
      /**
       * ASG_MOD = 29;
       */
      ASG_MOD(28, 29),
      /**
       * ASG_SHL = 30;
       */
      ASG_SHL(29, 30),
      /**
       * ASG_SHR = 31;
       */
      ASG_SHR(30, 31),
      /**
       * ASG_SHRU = 32;
       */
      ASG_SHRU(31, 32),
      /**
       * ASG_BIT_AND = 33;
       */
      ASG_BIT_AND(32, 33),
      /**
       * ASG_BIT_OR = 34;
       */
      ASG_BIT_OR(33, 34),
      /**
       * ASG_BIT_XOR = 35;
       */
      ASG_BIT_XOR(34, 35),
      /**
       * COMMA = 36;
       */
      COMMA(35, 36),
      ;

      /**
       * MUL = 1;
       */
      public static final int MUL_VALUE = 1;
      /**
       * DIV = 2;
       */
      public static final int DIV_VALUE = 2;
      /**
       * MOD = 3;
       */
      public static final int MOD_VALUE = 3;
      /**
       * ADD = 4;
       */
      public static final int ADD_VALUE = 4;
      /**
       * SUB = 5;
       */
      public static final int SUB_VALUE = 5;
      /**
       * SHL = 6;
       */
      public static final int SHL_VALUE = 6;
      /**
       * SHR = 7;
       */
      public static final int SHR_VALUE = 7;
      /**
       * SHRU = 8;
       */
      public static final int SHRU_VALUE = 8;
      /**
       * LT = 9;
       */
      public static final int LT_VALUE = 9;
      /**
       * LTE = 10;
       */
      public static final int LTE_VALUE = 10;
      /**
       * GT = 11;
       */
      public static final int GT_VALUE = 11;
      /**
       * GTE = 12;
       */
      public static final int GTE_VALUE = 12;
      /**
       * INSTANCEOF = 13;
       */
      public static final int INSTANCEOF_VALUE = 13;
      /**
       * IN = 14;
       */
      public static final int IN_VALUE = 14;
      /**
       * EQ = 15;
       */
      public static final int EQ_VALUE = 15;
      /**
       * NEQ = 16;
       */
      public static final int NEQ_VALUE = 16;
      /**
       * REF_EQ = 17;
       */
      public static final int REF_EQ_VALUE = 17;
      /**
       * REF_NEQ = 18;
       */
      public static final int REF_NEQ_VALUE = 18;
      /**
       * BIT_AND = 19;
       */
      public static final int BIT_AND_VALUE = 19;
      /**
       * BIT_XOR = 20;
       */
      public static final int BIT_XOR_VALUE = 20;
      /**
       * BIT_OR = 21;
       */
      public static final int BIT_OR_VALUE = 21;
      /**
       * AND = 22;
       */
      public static final int AND_VALUE = 22;
      /**
       * OR = 23;
       */
      public static final int OR_VALUE = 23;
      /**
       * ASG = 24;
       */
      public static final int ASG_VALUE = 24;
      /**
       * ASG_ADD = 25;
       */
      public static final int ASG_ADD_VALUE = 25;
      /**
       * ASG_SUB = 26;
       */
      public static final int ASG_SUB_VALUE = 26;
      /**
       * ASG_MUL = 27;
       */
      public static final int ASG_MUL_VALUE = 27;
      /**
       * ASG_DIV = 28;
       */
      public static final int ASG_DIV_VALUE = 28;
      /**
       * ASG_MOD = 29;
       */
      public static final int ASG_MOD_VALUE = 29;
      /**
       * ASG_SHL = 30;
       */
      public static final int ASG_SHL_VALUE = 30;
      /**
       * ASG_SHR = 31;
       */
      public static final int ASG_SHR_VALUE = 31;
      /**
       * ASG_SHRU = 32;
       */
      public static final int ASG_SHRU_VALUE = 32;
      /**
       * ASG_BIT_AND = 33;
       */
      public static final int ASG_BIT_AND_VALUE = 33;
      /**
       * ASG_BIT_OR = 34;
       */
      public static final int ASG_BIT_OR_VALUE = 34;
      /**
       * ASG_BIT_XOR = 35;
       */
      public static final int ASG_BIT_XOR_VALUE = 35;
      /**
       * COMMA = 36;
       */
      public static final int COMMA_VALUE = 36;


      public final int getNumber() { return value; }

      public static Type valueOf(int value) {
        switch (value) {
          case 1: return MUL;
          case 2: return DIV;
          case 3: return MOD;
          case 4: return ADD;
          case 5: return SUB;
          case 6: return SHL;
          case 7: return SHR;
          case 8: return SHRU;
          case 9: return LT;
          case 10: return LTE;
          case 11: return GT;
          case 12: return GTE;
          case 13: return INSTANCEOF;
          case 14: return IN;
          case 15: return EQ;
          case 16: return NEQ;
          case 17: return REF_EQ;
          case 18: return REF_NEQ;
          case 19: return BIT_AND;
          case 20: return BIT_XOR;
          case 21: return BIT_OR;
          case 22: return AND;
          case 23: return OR;
          case 24: return ASG;
          case 25: return ASG_ADD;
          case 26: return ASG_SUB;
          case 27: return ASG_MUL;
          case 28: return ASG_DIV;
          case 29: return ASG_MOD;
          case 30: return ASG_SHL;
          case 31: return ASG_SHR;
          case 32: return ASG_SHRU;
          case 33: return ASG_BIT_AND;
          case 34: return ASG_BIT_OR;
          case 35: return ASG_BIT_XOR;
          case 36: return COMMA;
          default: return null;
        }
      }

      public static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
          internalValueMap =
            new org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap() {
              public Type findValueByNumber(int number) {
                return Type.valueOf(number);
              }
            };

      private final int value;

      private Type(int index, int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type)
    }

    private int bitField0_;
    public static final int LEFT_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression left_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
     */
    public boolean hasLeft() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getLeft() {
      return left_;
    }

    public static final int RIGHT_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression right_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
     */
    public boolean hasRight() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getRight() {
      return right_;
    }

    public static final int TYPE_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type type_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type getType() {
      return type_;
    }

    private void initFields() {
      left_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      right_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type.MUL;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasLeft()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRight()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getLeft().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getRight().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, left_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, right_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, type_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, left_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, right_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeEnumSize(3, type_.getNumber());
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.BinaryOperation}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.BinaryOperation)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperationOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        left_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        right_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type.MUL;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.left_ = left_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.right_ = right_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.getDefaultInstance()) return this;
        if (other.hasLeft()) {
          mergeLeft(other.getLeft());
        }
        if (other.hasRight()) {
          mergeRight(other.getRight());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasLeft()) {
          
          return false;
        }
        if (!hasRight()) {
          
          return false;
        }
        if (!hasType()) {
          
          return false;
        }
        if (!getLeft().isInitialized()) {
          
          return false;
        }
        if (!getRight().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression left_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
       */
      public boolean hasLeft() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getLeft() {
        return left_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
       */
      public Builder setLeft(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        left_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
       */
      public Builder setLeft(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        left_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
       */
      public Builder mergeLeft(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            left_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          left_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(left_).mergeFrom(value).buildPartial();
        } else {
          left_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression left = 1;
       */
      public Builder clearLeft() {
        left_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression right_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
       */
      public boolean hasRight() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getRight() {
        return right_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
       */
      public Builder setRight(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        right_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
       */
      public Builder setRight(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        right_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
       */
      public Builder mergeRight(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            right_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          right_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(right_).mergeFrom(value).buildPartial();
        } else {
          right_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression right = 2;
       */
      public Builder clearRight() {
        right_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type.MUL;
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type getType() {
        return type_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
       */
      public Builder setType(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        type_ = value;
        
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.BinaryOperation.Type type = 3;
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BinaryOperation.Type.MUL;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.BinaryOperation)
    }

    static {
      defaultInstance = new BinaryOperation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.BinaryOperation)
  }

  public interface UnaryOperationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.UnaryOperation)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
     */
    boolean hasOperand();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getOperand();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
     */
    boolean hasType();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type getType();

    /**
     * required bool postfix = 3;
     */
    boolean hasPostfix();
    /**
     * required bool postfix = 3;
     */
    boolean getPostfix();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.UnaryOperation}
   */
  public static final class UnaryOperation extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.UnaryOperation)
      UnaryOperationOrBuilder {
    // Use UnaryOperation.newBuilder() to construct.
    private UnaryOperation(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private UnaryOperation(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final UnaryOperation defaultInstance;
    public static UnaryOperation getDefaultInstance() {
      return defaultInstance;
    }

    public UnaryOperation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private UnaryOperation(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = operand_.toBuilder();
              }
              operand_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(operand_);
                operand_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                type_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              postfix_ = input.readBool();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public UnaryOperation parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new UnaryOperation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type}
     */
    public enum Type
        implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
      /**
       * BIT_NOT = 1;
       */
      BIT_NOT(0, 1),
      /**
       * DEC = 2;
       */
      DEC(1, 2),
      /**
       * DELETE = 3;
       */
      DELETE(2, 3),
      /**
       * INC = 4;
       */
      INC(3, 4),
      /**
       * NEG = 5;
       */
      NEG(4, 5),
      /**
       * POS = 6;
       */
      POS(5, 6),
      /**
       * NOT = 7;
       */
      NOT(6, 7),
      /**
       * TYPEOF = 8;
       */
      TYPEOF(7, 8),
      /**
       * VOID = 9;
       */
      VOID(8, 9),
      ;

      /**
       * BIT_NOT = 1;
       */
      public static final int BIT_NOT_VALUE = 1;
      /**
       * DEC = 2;
       */
      public static final int DEC_VALUE = 2;
      /**
       * DELETE = 3;
       */
      public static final int DELETE_VALUE = 3;
      /**
       * INC = 4;
       */
      public static final int INC_VALUE = 4;
      /**
       * NEG = 5;
       */
      public static final int NEG_VALUE = 5;
      /**
       * POS = 6;
       */
      public static final int POS_VALUE = 6;
      /**
       * NOT = 7;
       */
      public static final int NOT_VALUE = 7;
      /**
       * TYPEOF = 8;
       */
      public static final int TYPEOF_VALUE = 8;
      /**
       * VOID = 9;
       */
      public static final int VOID_VALUE = 9;


      public final int getNumber() { return value; }

      public static Type valueOf(int value) {
        switch (value) {
          case 1: return BIT_NOT;
          case 2: return DEC;
          case 3: return DELETE;
          case 4: return INC;
          case 5: return NEG;
          case 6: return POS;
          case 7: return NOT;
          case 8: return TYPEOF;
          case 9: return VOID;
          default: return null;
        }
      }

      public static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap
          internalValueMap =
            new org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap() {
              public Type findValueByNumber(int number) {
                return Type.valueOf(number);
              }
            };

      private final int value;

      private Type(int index, int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type)
    }

    private int bitField0_;
    public static final int OPERAND_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression operand_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
     */
    public boolean hasOperand() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getOperand() {
      return operand_;
    }

    public static final int TYPE_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type type_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type getType() {
      return type_;
    }

    public static final int POSTFIX_FIELD_NUMBER = 3;
    private boolean postfix_;
    /**
     * required bool postfix = 3;
     */
    public boolean hasPostfix() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required bool postfix = 3;
     */
    public boolean getPostfix() {
      return postfix_;
    }

    private void initFields() {
      operand_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type.BIT_NOT;
      postfix_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasOperand()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPostfix()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getOperand().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, operand_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, type_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, postfix_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, operand_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeEnumSize(2, type_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(3, postfix_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.UnaryOperation}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.UnaryOperation)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperationOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        operand_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type.BIT_NOT;
        bitField0_ = (bitField0_ & ~0x00000002);
        postfix_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.operand_ = operand_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.postfix_ = postfix_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.getDefaultInstance()) return this;
        if (other.hasOperand()) {
          mergeOperand(other.getOperand());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasPostfix()) {
          setPostfix(other.getPostfix());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasOperand()) {
          
          return false;
        }
        if (!hasType()) {
          
          return false;
        }
        if (!hasPostfix()) {
          
          return false;
        }
        if (!getOperand().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression operand_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
       */
      public boolean hasOperand() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getOperand() {
        return operand_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
       */
      public Builder setOperand(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        operand_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
       */
      public Builder setOperand(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        operand_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
       */
      public Builder mergeOperand(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            operand_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          operand_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(operand_).mergeFrom(value).buildPartial();
        } else {
          operand_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression operand = 1;
       */
      public Builder clearOperand() {
        operand_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type.BIT_NOT;
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type getType() {
        return type_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
       */
      public Builder setType(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value;
        
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.UnaryOperation.Type type = 2;
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Type.BIT_NOT;
        
        return this;
      }

      private boolean postfix_ ;
      /**
       * required bool postfix = 3;
       */
      public boolean hasPostfix() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required bool postfix = 3;
       */
      public boolean getPostfix() {
        return postfix_;
      }
      /**
       * required bool postfix = 3;
       */
      public Builder setPostfix(boolean value) {
        bitField0_ |= 0x00000004;
        postfix_ = value;
        
        return this;
      }
      /**
       * required bool postfix = 3;
       */
      public Builder clearPostfix() {
        bitField0_ = (bitField0_ & ~0x00000004);
        postfix_ = false;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.UnaryOperation)
    }

    static {
      defaultInstance = new UnaryOperation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.UnaryOperation)
  }

  public interface ConditionalOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Conditional)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
     */
    boolean hasTestExpression();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getTestExpression();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
     */
    boolean hasThenExpression();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getThenExpression();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
     */
    boolean hasElseExpression();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getElseExpression();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Conditional}
   */
  public static final class Conditional extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Conditional)
      ConditionalOrBuilder {
    // Use Conditional.newBuilder() to construct.
    private Conditional(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Conditional(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Conditional defaultInstance;
    public static Conditional getDefaultInstance() {
      return defaultInstance;
    }

    public Conditional getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Conditional(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = testExpression_.toBuilder();
              }
              testExpression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(testExpression_);
                testExpression_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = thenExpression_.toBuilder();
              }
              thenExpression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(thenExpression_);
                thenExpression_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = elseExpression_.toBuilder();
              }
              elseExpression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(elseExpression_);
                elseExpression_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Conditional parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Conditional(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TEST_EXPRESSION_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression testExpression_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
     */
    public boolean hasTestExpression() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getTestExpression() {
      return testExpression_;
    }

    public static final int THEN_EXPRESSION_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression thenExpression_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
     */
    public boolean hasThenExpression() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getThenExpression() {
      return thenExpression_;
    }

    public static final int ELSE_EXPRESSION_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression elseExpression_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
     */
    public boolean hasElseExpression() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getElseExpression() {
      return elseExpression_;
    }

    private void initFields() {
      testExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      thenExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      elseExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasTestExpression()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasThenExpression()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasElseExpression()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getTestExpression().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getThenExpression().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getElseExpression().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, testExpression_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, thenExpression_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, elseExpression_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, testExpression_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, thenExpression_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(3, elseExpression_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Conditional}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Conditional)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ConditionalOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        testExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        thenExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        elseExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.testExpression_ = testExpression_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.thenExpression_ = thenExpression_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.elseExpression_ = elseExpression_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional.getDefaultInstance()) return this;
        if (other.hasTestExpression()) {
          mergeTestExpression(other.getTestExpression());
        }
        if (other.hasThenExpression()) {
          mergeThenExpression(other.getThenExpression());
        }
        if (other.hasElseExpression()) {
          mergeElseExpression(other.getElseExpression());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasTestExpression()) {
          
          return false;
        }
        if (!hasThenExpression()) {
          
          return false;
        }
        if (!hasElseExpression()) {
          
          return false;
        }
        if (!getTestExpression().isInitialized()) {
          
          return false;
        }
        if (!getThenExpression().isInitialized()) {
          
          return false;
        }
        if (!getElseExpression().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Conditional) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression testExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
       */
      public boolean hasTestExpression() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getTestExpression() {
        return testExpression_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
       */
      public Builder setTestExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        testExpression_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
       */
      public Builder setTestExpression(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        testExpression_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
       */
      public Builder mergeTestExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            testExpression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          testExpression_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(testExpression_).mergeFrom(value).buildPartial();
        } else {
          testExpression_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression test_expression = 1;
       */
      public Builder clearTestExpression() {
        testExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression thenExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
       */
      public boolean hasThenExpression() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getThenExpression() {
        return thenExpression_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
       */
      public Builder setThenExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        thenExpression_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
       */
      public Builder setThenExpression(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        thenExpression_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
       */
      public Builder mergeThenExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            thenExpression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          thenExpression_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(thenExpression_).mergeFrom(value).buildPartial();
        } else {
          thenExpression_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression then_expression = 2;
       */
      public Builder clearThenExpression() {
        thenExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression elseExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
       */
      public boolean hasElseExpression() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getElseExpression() {
        return elseExpression_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
       */
      public Builder setElseExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        elseExpression_ = value;

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
       */
      public Builder setElseExpression(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        elseExpression_ = builderForValue.build();

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
       */
      public Builder mergeElseExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            elseExpression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          elseExpression_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(elseExpression_).mergeFrom(value).buildPartial();
        } else {
          elseExpression_ = value;
        }

        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression else_expression = 3;
       */
      public Builder clearElseExpression() {
        elseExpression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Conditional)
    }

    static {
      defaultInstance = new Conditional(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Conditional)
  }

  public interface ArrayAccessOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.ArrayAccess)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
     */
    boolean hasArray();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArray();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
     */
    boolean hasIndex();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getIndex();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ArrayAccess}
   */
  public static final class ArrayAccess extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.ArrayAccess)
      ArrayAccessOrBuilder {
    // Use ArrayAccess.newBuilder() to construct.
    private ArrayAccess(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ArrayAccess(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final ArrayAccess defaultInstance;
    public static ArrayAccess getDefaultInstance() {
      return defaultInstance;
    }

    public ArrayAccess getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private ArrayAccess(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = array_.toBuilder();
              }
              array_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(array_);
                array_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = index_.toBuilder();
              }
              index_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(index_);
                index_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public ArrayAccess parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new ArrayAccess(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ARRAY_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression array_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
     */
    public boolean hasArray() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArray() {
      return array_;
    }

    public static final int INDEX_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression index_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
     */
    public boolean hasIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getIndex() {
      return index_;
    }

    private void initFields() {
      array_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      index_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasArray()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getArray().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getIndex().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, array_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, index_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, array_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, index_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ArrayAccess}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.ArrayAccess)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccessOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        array_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        index_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.array_ = array_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.index_ = index_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess.getDefaultInstance()) return this;
        if (other.hasArray()) {
          mergeArray(other.getArray());
        }
        if (other.hasIndex()) {
          mergeIndex(other.getIndex());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasArray()) {
          
          return false;
        }
        if (!hasIndex()) {
          
          return false;
        }
        if (!getArray().isInitialized()) {
          
          return false;
        }
        if (!getIndex().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ArrayAccess) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression array_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
       */
      public boolean hasArray() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArray() {
        return array_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
       */
      public Builder setArray(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        array_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
       */
      public Builder setArray(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        array_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
       */
      public Builder mergeArray(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            array_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          array_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(array_).mergeFrom(value).buildPartial();
        } else {
          array_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression array = 1;
       */
      public Builder clearArray() {
        array_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression index_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getIndex() {
        return index_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
       */
      public Builder setIndex(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        index_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
       */
      public Builder setIndex(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        index_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
       */
      public Builder mergeIndex(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            index_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          index_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(index_).mergeFrom(value).buildPartial();
        } else {
          index_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression index = 2;
       */
      public Builder clearIndex() {
        index_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.ArrayAccess)
    }

    static {
      defaultInstance = new ArrayAccess(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.ArrayAccess)
  }

  public interface NameReferenceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.NameReference)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 name_id = 1;
     */
    boolean hasNameId();
    /**
     * required int32 name_id = 1;
     */
    int getNameId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    boolean hasQualifier();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    boolean hasInlineStrategy();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.NameReference}
   */
  public static final class NameReference extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.NameReference)
      NameReferenceOrBuilder {
    // Use NameReference.newBuilder() to construct.
    private NameReference(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private NameReference(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final NameReference defaultInstance;
    public static NameReference getDefaultInstance() {
      return defaultInstance;
    }

    public NameReference getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private NameReference(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              nameId_ = input.readInt32();
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = qualifier_.toBuilder();
              }
              qualifier_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(qualifier_);
                qualifier_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                inlineStrategy_ = value;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public NameReference parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new NameReference(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int NAME_ID_FIELD_NUMBER = 1;
    private int nameId_;
    /**
     * required int32 name_id = 1;
     */
    public boolean hasNameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 name_id = 1;
     */
    public int getNameId() {
      return nameId_;
    }

    public static final int QUALIFIER_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    public boolean hasQualifier() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
      return qualifier_;
    }

    public static final int INLINE_STRATEGY_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy inlineStrategy_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    public boolean hasInlineStrategy() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy() {
      return inlineStrategy_;
    }

    private void initFields() {
      nameId_ = 0;
      qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasNameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasQualifier()) {
        if (!getQualifier().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, inlineStrategy_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeEnumSize(3, inlineStrategy_.getNumber());
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.NameReference}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.NameReference)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReferenceOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        nameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.nameId_ = nameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.qualifier_ = qualifier_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.inlineStrategy_ = inlineStrategy_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference.getDefaultInstance()) return this;
        if (other.hasNameId()) {
          setNameId(other.getNameId());
        }
        if (other.hasQualifier()) {
          mergeQualifier(other.getQualifier());
        }
        if (other.hasInlineStrategy()) {
          setInlineStrategy(other.getInlineStrategy());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasNameId()) {
          
          return false;
        }
        if (hasQualifier()) {
          if (!getQualifier().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.NameReference) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int nameId_ ;
      /**
       * required int32 name_id = 1;
       */
      public boolean hasNameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 name_id = 1;
       */
      public int getNameId() {
        return nameId_;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder setNameId(int value) {
        bitField0_ |= 0x00000001;
        nameId_ = value;
        
        return this;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder clearNameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        nameId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public boolean hasQualifier() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
        return qualifier_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder setQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        qualifier_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder setQualifier(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        qualifier_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder mergeQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            qualifier_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          qualifier_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(qualifier_).mergeFrom(value).buildPartial();
        } else {
          qualifier_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder clearQualifier() {
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public boolean hasInlineStrategy() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy() {
        return inlineStrategy_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public Builder setInlineStrategy(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        inlineStrategy_ = value;
        
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public Builder clearInlineStrategy() {
        bitField0_ = (bitField0_ & ~0x00000004);
        inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.NameReference)
    }

    static {
      defaultInstance = new NameReference(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.NameReference)
  }

  public interface PropertyReferenceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.PropertyReference)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 string_id = 1;
     */
    boolean hasStringId();
    /**
     * required int32 string_id = 1;
     */
    int getStringId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    boolean hasQualifier();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    boolean hasInlineStrategy();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.PropertyReference}
   */
  public static final class PropertyReference extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.PropertyReference)
      PropertyReferenceOrBuilder {
    // Use PropertyReference.newBuilder() to construct.
    private PropertyReference(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PropertyReference(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final PropertyReference defaultInstance;
    public static PropertyReference getDefaultInstance() {
      return defaultInstance;
    }

    public PropertyReference getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private PropertyReference(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              stringId_ = input.readInt32();
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = qualifier_.toBuilder();
              }
              qualifier_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(qualifier_);
                qualifier_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000004;
                inlineStrategy_ = value;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public PropertyReference parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new PropertyReference(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STRING_ID_FIELD_NUMBER = 1;
    private int stringId_;
    /**
     * required int32 string_id = 1;
     */
    public boolean hasStringId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 string_id = 1;
     */
    public int getStringId() {
      return stringId_;
    }

    public static final int QUALIFIER_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    public boolean hasQualifier() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
      return qualifier_;
    }

    public static final int INLINE_STRATEGY_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy inlineStrategy_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    public boolean hasInlineStrategy() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy() {
      return inlineStrategy_;
    }

    private void initFields() {
      stringId_ = 0;
      qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasStringId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasQualifier()) {
        if (!getQualifier().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, stringId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, inlineStrategy_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, stringId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, qualifier_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeEnumSize(3, inlineStrategy_.getNumber());
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.PropertyReference}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.PropertyReference)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReferenceOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        stringId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.stringId_ = stringId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.qualifier_ = qualifier_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.inlineStrategy_ = inlineStrategy_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference.getDefaultInstance()) return this;
        if (other.hasStringId()) {
          setStringId(other.getStringId());
        }
        if (other.hasQualifier()) {
          mergeQualifier(other.getQualifier());
        }
        if (other.hasInlineStrategy()) {
          setInlineStrategy(other.getInlineStrategy());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasStringId()) {
          
          return false;
        }
        if (hasQualifier()) {
          if (!getQualifier().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.PropertyReference) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int stringId_ ;
      /**
       * required int32 string_id = 1;
       */
      public boolean hasStringId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 string_id = 1;
       */
      public int getStringId() {
        return stringId_;
      }
      /**
       * required int32 string_id = 1;
       */
      public Builder setStringId(int value) {
        bitField0_ |= 0x00000001;
        stringId_ = value;
        
        return this;
      }
      /**
       * required int32 string_id = 1;
       */
      public Builder clearStringId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        stringId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public boolean hasQualifier() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
        return qualifier_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder setQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        qualifier_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder setQualifier(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        qualifier_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder mergeQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            qualifier_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          qualifier_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(qualifier_).mergeFrom(value).buildPartial();
        } else {
          qualifier_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 2;
       */
      public Builder clearQualifier() {
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public boolean hasInlineStrategy() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy() {
        return inlineStrategy_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public Builder setInlineStrategy(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        inlineStrategy_ = value;
        
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public Builder clearInlineStrategy() {
        bitField0_ = (bitField0_ & ~0x00000004);
        inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.PropertyReference)
    }

    static {
      defaultInstance = new PropertyReference(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.PropertyReference)
  }

  public interface InvocationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Invocation)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    boolean hasQualifier();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    java.util.List 
        getArgumentList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArgument(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    int getArgumentCount();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    boolean hasInlineStrategy();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Invocation}
   */
  public static final class Invocation extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Invocation)
      InvocationOrBuilder {
    // Use Invocation.newBuilder() to construct.
    private Invocation(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Invocation(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Invocation defaultInstance;
    public static Invocation getDefaultInstance() {
      return defaultInstance;
    }

    public Invocation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Invocation(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = qualifier_.toBuilder();
              }
              qualifier_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(qualifier_);
                qualifier_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                argument_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              argument_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy value = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.valueOf(rawValue);
              if (value == null) {
                unknownFieldsCodedOutput.writeRawVarint32(tag);
                unknownFieldsCodedOutput.writeRawVarint32(rawValue);
              } else {
                bitField0_ |= 0x00000002;
                inlineStrategy_ = value;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = java.util.Collections.unmodifiableList(argument_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Invocation parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Invocation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int QUALIFIER_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    public boolean hasQualifier() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
      return qualifier_;
    }

    public static final int ARGUMENT_FIELD_NUMBER = 2;
    private java.util.List argument_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public java.util.List getArgumentList() {
      return argument_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public java.util.List 
        getArgumentOrBuilderList() {
      return argument_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public int getArgumentCount() {
      return argument_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArgument(int index) {
      return argument_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionOrBuilder getArgumentOrBuilder(
        int index) {
      return argument_.get(index);
    }

    public static final int INLINE_STRATEGY_FIELD_NUMBER = 3;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy inlineStrategy_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    public boolean hasInlineStrategy() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy() {
      return inlineStrategy_;
    }

    private void initFields() {
      qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      argument_ = java.util.Collections.emptyList();
      inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasQualifier()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getQualifier().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getArgumentCount(); i++) {
        if (!getArgument(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, qualifier_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        output.writeMessage(2, argument_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(3, inlineStrategy_.getNumber());
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, qualifier_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, argument_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeEnumSize(3, inlineStrategy_.getNumber());
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Invocation}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Invocation)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InvocationOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        argument_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.qualifier_ = qualifier_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = java.util.Collections.unmodifiableList(argument_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.argument_ = argument_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.inlineStrategy_ = inlineStrategy_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation.getDefaultInstance()) return this;
        if (other.hasQualifier()) {
          mergeQualifier(other.getQualifier());
        }
        if (!other.argument_.isEmpty()) {
          if (argument_.isEmpty()) {
            argument_ = other.argument_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureArgumentIsMutable();
            argument_.addAll(other.argument_);
          }
          
        }
        if (other.hasInlineStrategy()) {
          setInlineStrategy(other.getInlineStrategy());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasQualifier()) {
          
          return false;
        }
        if (!getQualifier().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getArgumentCount(); i++) {
          if (!getArgument(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Invocation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public boolean hasQualifier() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
        return qualifier_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder setQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        qualifier_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder setQualifier(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        qualifier_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder mergeQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            qualifier_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          qualifier_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(qualifier_).mergeFrom(value).buildPartial();
        } else {
          qualifier_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder clearQualifier() {
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private java.util.List argument_ =
        java.util.Collections.emptyList();
      private void ensureArgumentIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = new java.util.ArrayList(argument_);
          bitField0_ |= 0x00000002;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public java.util.List getArgumentList() {
        return java.util.Collections.unmodifiableList(argument_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public int getArgumentCount() {
        return argument_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArgument(int index) {
        return argument_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgumentIsMutable();
        argument_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureArgumentIsMutable();
        argument_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgumentIsMutable();
        argument_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgumentIsMutable();
        argument_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureArgumentIsMutable();
        argument_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureArgumentIsMutable();
        argument_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addAllArgument(
          java.lang.Iterable values) {
        ensureArgumentIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, argument_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder clearArgument() {
        argument_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder removeArgument(int index) {
        ensureArgumentIsMutable();
        argument_.remove(index);

        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public boolean hasInlineStrategy() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy getInlineStrategy() {
        return inlineStrategy_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public Builder setInlineStrategy(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        inlineStrategy_ = value;
        
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.InlineStrategy inline_strategy = 3 [default = NOT_INLINE];
       */
      public Builder clearInlineStrategy() {
        bitField0_ = (bitField0_ & ~0x00000004);
        inlineStrategy_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InlineStrategy.NOT_INLINE;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Invocation)
    }

    static {
      defaultInstance = new Invocation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Invocation)
  }

  public interface InstantiationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Instantiation)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    boolean hasQualifier();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    java.util.List 
        getArgumentList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArgument(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    int getArgumentCount();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Instantiation}
   */
  public static final class Instantiation extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Instantiation)
      InstantiationOrBuilder {
    // Use Instantiation.newBuilder() to construct.
    private Instantiation(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Instantiation(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Instantiation defaultInstance;
    public static Instantiation getDefaultInstance() {
      return defaultInstance;
    }

    public Instantiation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Instantiation(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = qualifier_.toBuilder();
              }
              qualifier_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(qualifier_);
                qualifier_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                argument_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              argument_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = java.util.Collections.unmodifiableList(argument_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Instantiation parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Instantiation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int QUALIFIER_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    public boolean hasQualifier() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
      return qualifier_;
    }

    public static final int ARGUMENT_FIELD_NUMBER = 2;
    private java.util.List argument_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public java.util.List getArgumentList() {
      return argument_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public java.util.List 
        getArgumentOrBuilderList() {
      return argument_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public int getArgumentCount() {
      return argument_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArgument(int index) {
      return argument_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionOrBuilder getArgumentOrBuilder(
        int index) {
      return argument_.get(index);
    }

    private void initFields() {
      qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      argument_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasQualifier()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getQualifier().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getArgumentCount(); i++) {
        if (!getArgument(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, qualifier_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        output.writeMessage(2, argument_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, qualifier_);
      }
      for (int i = 0; i < argument_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, argument_.get(i));
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Instantiation}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Instantiation)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.InstantiationOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        argument_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.qualifier_ = qualifier_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = java.util.Collections.unmodifiableList(argument_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.argument_ = argument_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation.getDefaultInstance()) return this;
        if (other.hasQualifier()) {
          mergeQualifier(other.getQualifier());
        }
        if (!other.argument_.isEmpty()) {
          if (argument_.isEmpty()) {
            argument_ = other.argument_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureArgumentIsMutable();
            argument_.addAll(other.argument_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasQualifier()) {
          
          return false;
        }
        if (!getQualifier().isInitialized()) {
          
          return false;
        }
        for (int i = 0; i < getArgumentCount(); i++) {
          if (!getArgument(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Instantiation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public boolean hasQualifier() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getQualifier() {
        return qualifier_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder setQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        qualifier_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder setQualifier(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        qualifier_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder mergeQualifier(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            qualifier_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          qualifier_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(qualifier_).mergeFrom(value).buildPartial();
        } else {
          qualifier_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression qualifier = 1;
       */
      public Builder clearQualifier() {
        qualifier_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private java.util.List argument_ =
        java.util.Collections.emptyList();
      private void ensureArgumentIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          argument_ = new java.util.ArrayList(argument_);
          bitField0_ |= 0x00000002;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public java.util.List getArgumentList() {
        return java.util.Collections.unmodifiableList(argument_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public int getArgumentCount() {
        return argument_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getArgument(int index) {
        return argument_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgumentIsMutable();
        argument_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder setArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureArgumentIsMutable();
        argument_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgumentIsMutable();
        argument_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgumentIsMutable();
        argument_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureArgumentIsMutable();
        argument_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addArgument(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        ensureArgumentIsMutable();
        argument_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder addAllArgument(
          java.lang.Iterable values) {
        ensureArgumentIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, argument_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder clearArgument() {
        argument_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Expression argument = 2;
       */
      public Builder removeArgument(int index) {
        ensureArgumentIsMutable();
        argument_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Instantiation)
    }

    static {
      defaultInstance = new Instantiation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Instantiation)
  }

  public interface StatementOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Statement)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * optional int32 fileId = 1;
     */
    boolean hasFileId();
    /**
     * optional int32 fileId = 1;
     */
    int getFileId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    boolean hasLocation();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation();

    /**
     * optional bool synthetic = 3 [default = false];
     */
    boolean hasSynthetic();
    /**
     * optional bool synthetic = 3 [default = false];
     */
    boolean getSynthetic();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    java.util.List 
        getBeforeCommentsList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getBeforeComments(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    int getBeforeCommentsCount();

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    java.util.List 
        getAfterCommentsList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getAfterComments(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    int getAfterCommentsCount();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
     */
    boolean hasReturnStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return getReturnStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
     */
    boolean hasThrowStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw getThrowStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
     */
    boolean hasBreakStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break getBreakStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
     */
    boolean hasContinueStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue getContinueStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
     */
    boolean hasDebugger();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger getDebugger();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
     */
    boolean hasExpression();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement getExpression();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
     */
    boolean hasVars();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars getVars();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
     */
    boolean hasBlock();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block getBlock();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
     */
    boolean hasCompositeBlock();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock getCompositeBlock();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
     */
    boolean hasLabel();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label getLabel();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
     */
    boolean hasIfStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If getIfStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
     */
    boolean hasSwitchStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch getSwitchStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
     */
    boolean hasWhileStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While getWhileStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
     */
    boolean hasDoWhileStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile getDoWhileStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
     */
    boolean hasForStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For getForStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
     */
    boolean hasForInStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn getForInStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
     */
    boolean hasTryStatement();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try getTryStatement();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
     */
    boolean hasEmpty();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty getEmpty();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
     */
    boolean hasSingleLineComment();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment getSingleLineComment();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
     */
    boolean hasMultiLineComment();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment getMultiLineComment();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Statement}
   */
  public static final class Statement extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Statement)
      StatementOrBuilder {
    // Use Statement.newBuilder() to construct.
    private Statement(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Statement(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Statement defaultInstance;
    public static Statement getDefaultInstance() {
      return defaultInstance;
    }

    public Statement getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Statement(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              fileId_ = input.readInt32();
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              synthetic_ = input.readBool();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                beforeComments_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              beforeComments_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.PARSER, extensionRegistry));
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                afterComments_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              afterComments_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.PARSER, extensionRegistry));
              break;
            }
            case 170: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.Builder subBuilder = null;
              if (statementCase_ == 21) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 21;
              break;
            }
            case 178: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.Builder subBuilder = null;
              if (statementCase_ == 22) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 22;
              break;
            }
            case 186: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.Builder subBuilder = null;
              if (statementCase_ == 23) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 23;
              break;
            }
            case 194: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.Builder subBuilder = null;
              if (statementCase_ == 24) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 24;
              break;
            }
            case 202: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.Builder subBuilder = null;
              if (statementCase_ == 25) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 25;
              break;
            }
            case 210: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.Builder subBuilder = null;
              if (statementCase_ == 26) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 26;
              break;
            }
            case 218: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.Builder subBuilder = null;
              if (statementCase_ == 27) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 27;
              break;
            }
            case 226: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.Builder subBuilder = null;
              if (statementCase_ == 28) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 28;
              break;
            }
            case 234: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.Builder subBuilder = null;
              if (statementCase_ == 29) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 29;
              break;
            }
            case 242: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label.Builder subBuilder = null;
              if (statementCase_ == 30) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 30;
              break;
            }
            case 250: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If.Builder subBuilder = null;
              if (statementCase_ == 31) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 31;
              break;
            }
            case 258: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch.Builder subBuilder = null;
              if (statementCase_ == 32) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 32;
              break;
            }
            case 266: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While.Builder subBuilder = null;
              if (statementCase_ == 33) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 33;
              break;
            }
            case 274: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile.Builder subBuilder = null;
              if (statementCase_ == 34) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 34;
              break;
            }
            case 282: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For.Builder subBuilder = null;
              if (statementCase_ == 35) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 35;
              break;
            }
            case 290: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn.Builder subBuilder = null;
              if (statementCase_ == 36) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 36;
              break;
            }
            case 298: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try.Builder subBuilder = null;
              if (statementCase_ == 37) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 37;
              break;
            }
            case 306: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty.Builder subBuilder = null;
              if (statementCase_ == 38) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 38;
              break;
            }
            case 314: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment.Builder subBuilder = null;
              if (statementCase_ == 39) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 39;
              break;
            }
            case 322: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment.Builder subBuilder = null;
              if (statementCase_ == 40) {
                subBuilder = ((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment) statement_).toBuilder();
              }
              statement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment) statement_);
                statement_ = subBuilder.buildPartial();
              }
              statementCase_ = 40;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          beforeComments_ = java.util.Collections.unmodifiableList(beforeComments_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          afterComments_ = java.util.Collections.unmodifiableList(afterComments_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Statement parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Statement(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    private int statementCase_ = 0;
    private java.lang.Object statement_;
    public enum StatementCase
        implements org.jetbrains.kotlin.protobuf.Internal.EnumLite {
      RETURN_STATEMENT(21),
      THROW_STATEMENT(22),
      BREAK_STATEMENT(23),
      CONTINUE_STATEMENT(24),
      DEBUGGER(25),
      EXPRESSION(26),
      VARS(27),
      BLOCK(28),
      COMPOSITE_BLOCK(29),
      LABEL(30),
      IF_STATEMENT(31),
      SWITCH_STATEMENT(32),
      WHILE_STATEMENT(33),
      DO_WHILE_STATEMENT(34),
      FOR_STATEMENT(35),
      FOR_IN_STATEMENT(36),
      TRY_STATEMENT(37),
      EMPTY(38),
      SINGLE_LINE_COMMENT(39),
      MULTI_LINE_COMMENT(40),
      STATEMENT_NOT_SET(0);
      private int value = 0;
      private StatementCase(int value) {
        this.value = value;
      }
      public static StatementCase valueOf(int value) {
        switch (value) {
          case 21: return RETURN_STATEMENT;
          case 22: return THROW_STATEMENT;
          case 23: return BREAK_STATEMENT;
          case 24: return CONTINUE_STATEMENT;
          case 25: return DEBUGGER;
          case 26: return EXPRESSION;
          case 27: return VARS;
          case 28: return BLOCK;
          case 29: return COMPOSITE_BLOCK;
          case 30: return LABEL;
          case 31: return IF_STATEMENT;
          case 32: return SWITCH_STATEMENT;
          case 33: return WHILE_STATEMENT;
          case 34: return DO_WHILE_STATEMENT;
          case 35: return FOR_STATEMENT;
          case 36: return FOR_IN_STATEMENT;
          case 37: return TRY_STATEMENT;
          case 38: return EMPTY;
          case 39: return SINGLE_LINE_COMMENT;
          case 40: return MULTI_LINE_COMMENT;
          case 0: return STATEMENT_NOT_SET;
          default: throw new java.lang.IllegalArgumentException(
            "Value is undefined for this oneof enum.");
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public StatementCase
    getStatementCase() {
      return StatementCase.valueOf(
          statementCase_);
    }

    public static final int FILEID_FIELD_NUMBER = 1;
    private int fileId_;
    /**
     * optional int32 fileId = 1;
     */
    public boolean hasFileId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 fileId = 1;
     */
    public int getFileId() {
      return fileId_;
    }

    public static final int LOCATION_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location location_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation() {
      return location_;
    }

    public static final int SYNTHETIC_FIELD_NUMBER = 3;
    private boolean synthetic_;
    /**
     * optional bool synthetic = 3 [default = false];
     */
    public boolean hasSynthetic() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool synthetic = 3 [default = false];
     */
    public boolean getSynthetic() {
      return synthetic_;
    }

    public static final int BEFORE_COMMENTS_FIELD_NUMBER = 4;
    private java.util.List beforeComments_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    public java.util.List getBeforeCommentsList() {
      return beforeComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    public java.util.List 
        getBeforeCommentsOrBuilderList() {
      return beforeComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    public int getBeforeCommentsCount() {
      return beforeComments_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getBeforeComments(int index) {
      return beforeComments_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CommentOrBuilder getBeforeCommentsOrBuilder(
        int index) {
      return beforeComments_.get(index);
    }

    public static final int AFTER_COMMENTS_FIELD_NUMBER = 5;
    private java.util.List afterComments_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    public java.util.List getAfterCommentsList() {
      return afterComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    public java.util.List 
        getAfterCommentsOrBuilderList() {
      return afterComments_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    public int getAfterCommentsCount() {
      return afterComments_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getAfterComments(int index) {
      return afterComments_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CommentOrBuilder getAfterCommentsOrBuilder(
        int index) {
      return afterComments_.get(index);
    }

    public static final int RETURN_STATEMENT_FIELD_NUMBER = 21;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
     */
    public boolean hasReturnStatement() {
      return statementCase_ == 21;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return getReturnStatement() {
      if (statementCase_ == 21) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.getDefaultInstance();
    }

    public static final int THROW_STATEMENT_FIELD_NUMBER = 22;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
     */
    public boolean hasThrowStatement() {
      return statementCase_ == 22;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw getThrowStatement() {
      if (statementCase_ == 22) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.getDefaultInstance();
    }

    public static final int BREAK_STATEMENT_FIELD_NUMBER = 23;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
     */
    public boolean hasBreakStatement() {
      return statementCase_ == 23;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break getBreakStatement() {
      if (statementCase_ == 23) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.getDefaultInstance();
    }

    public static final int CONTINUE_STATEMENT_FIELD_NUMBER = 24;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
     */
    public boolean hasContinueStatement() {
      return statementCase_ == 24;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue getContinueStatement() {
      if (statementCase_ == 24) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.getDefaultInstance();
    }

    public static final int DEBUGGER_FIELD_NUMBER = 25;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
     */
    public boolean hasDebugger() {
      return statementCase_ == 25;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger getDebugger() {
      if (statementCase_ == 25) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.getDefaultInstance();
    }

    public static final int EXPRESSION_FIELD_NUMBER = 26;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
     */
    public boolean hasExpression() {
      return statementCase_ == 26;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement getExpression() {
      if (statementCase_ == 26) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.getDefaultInstance();
    }

    public static final int VARS_FIELD_NUMBER = 27;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
     */
    public boolean hasVars() {
      return statementCase_ == 27;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars getVars() {
      if (statementCase_ == 27) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.getDefaultInstance();
    }

    public static final int BLOCK_FIELD_NUMBER = 28;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
     */
    public boolean hasBlock() {
      return statementCase_ == 28;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block getBlock() {
      if (statementCase_ == 28) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.getDefaultInstance();
    }

    public static final int COMPOSITE_BLOCK_FIELD_NUMBER = 29;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
     */
    public boolean hasCompositeBlock() {
      return statementCase_ == 29;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock getCompositeBlock() {
      if (statementCase_ == 29) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.getDefaultInstance();
    }

    public static final int LABEL_FIELD_NUMBER = 30;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
     */
    public boolean hasLabel() {
      return statementCase_ == 30;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label getLabel() {
      if (statementCase_ == 30) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label.getDefaultInstance();
    }

    public static final int IF_STATEMENT_FIELD_NUMBER = 31;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
     */
    public boolean hasIfStatement() {
      return statementCase_ == 31;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If getIfStatement() {
      if (statementCase_ == 31) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If.getDefaultInstance();
    }

    public static final int SWITCH_STATEMENT_FIELD_NUMBER = 32;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
     */
    public boolean hasSwitchStatement() {
      return statementCase_ == 32;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch getSwitchStatement() {
      if (statementCase_ == 32) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch.getDefaultInstance();
    }

    public static final int WHILE_STATEMENT_FIELD_NUMBER = 33;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
     */
    public boolean hasWhileStatement() {
      return statementCase_ == 33;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While getWhileStatement() {
      if (statementCase_ == 33) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While.getDefaultInstance();
    }

    public static final int DO_WHILE_STATEMENT_FIELD_NUMBER = 34;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
     */
    public boolean hasDoWhileStatement() {
      return statementCase_ == 34;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile getDoWhileStatement() {
      if (statementCase_ == 34) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile.getDefaultInstance();
    }

    public static final int FOR_STATEMENT_FIELD_NUMBER = 35;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
     */
    public boolean hasForStatement() {
      return statementCase_ == 35;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For getForStatement() {
      if (statementCase_ == 35) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For.getDefaultInstance();
    }

    public static final int FOR_IN_STATEMENT_FIELD_NUMBER = 36;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
     */
    public boolean hasForInStatement() {
      return statementCase_ == 36;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn getForInStatement() {
      if (statementCase_ == 36) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn.getDefaultInstance();
    }

    public static final int TRY_STATEMENT_FIELD_NUMBER = 37;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
     */
    public boolean hasTryStatement() {
      return statementCase_ == 37;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try getTryStatement() {
      if (statementCase_ == 37) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try.getDefaultInstance();
    }

    public static final int EMPTY_FIELD_NUMBER = 38;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
     */
    public boolean hasEmpty() {
      return statementCase_ == 38;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty getEmpty() {
      if (statementCase_ == 38) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty.getDefaultInstance();
    }

    public static final int SINGLE_LINE_COMMENT_FIELD_NUMBER = 39;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
     */
    public boolean hasSingleLineComment() {
      return statementCase_ == 39;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment getSingleLineComment() {
      if (statementCase_ == 39) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment.getDefaultInstance();
    }

    public static final int MULTI_LINE_COMMENT_FIELD_NUMBER = 40;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
     */
    public boolean hasMultiLineComment() {
      return statementCase_ == 40;
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment getMultiLineComment() {
      if (statementCase_ == 40) {
         return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment) statement_;
      }
      return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment.getDefaultInstance();
    }

    private void initFields() {
      fileId_ = 0;
      location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
      synthetic_ = false;
      beforeComments_ = java.util.Collections.emptyList();
      afterComments_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (hasLocation()) {
        if (!getLocation().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getBeforeCommentsCount(); i++) {
        if (!getBeforeComments(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getAfterCommentsCount(); i++) {
        if (!getAfterComments(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReturnStatement()) {
        if (!getReturnStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasThrowStatement()) {
        if (!getThrowStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasExpression()) {
        if (!getExpression().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasVars()) {
        if (!getVars().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBlock()) {
        if (!getBlock().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasCompositeBlock()) {
        if (!getCompositeBlock().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLabel()) {
        if (!getLabel().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasIfStatement()) {
        if (!getIfStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSwitchStatement()) {
        if (!getSwitchStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasWhileStatement()) {
        if (!getWhileStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDoWhileStatement()) {
        if (!getDoWhileStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasForStatement()) {
        if (!getForStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasForInStatement()) {
        if (!getForInStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTryStatement()) {
        if (!getTryStatement().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSingleLineComment()) {
        if (!getSingleLineComment().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMultiLineComment()) {
        if (!getMultiLineComment().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, fileId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, location_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, synthetic_);
      }
      for (int i = 0; i < beforeComments_.size(); i++) {
        output.writeMessage(4, beforeComments_.get(i));
      }
      for (int i = 0; i < afterComments_.size(); i++) {
        output.writeMessage(5, afterComments_.get(i));
      }
      if (statementCase_ == 21) {
        output.writeMessage(21, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) statement_);
      }
      if (statementCase_ == 22) {
        output.writeMessage(22, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) statement_);
      }
      if (statementCase_ == 23) {
        output.writeMessage(23, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) statement_);
      }
      if (statementCase_ == 24) {
        output.writeMessage(24, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) statement_);
      }
      if (statementCase_ == 25) {
        output.writeMessage(25, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) statement_);
      }
      if (statementCase_ == 26) {
        output.writeMessage(26, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) statement_);
      }
      if (statementCase_ == 27) {
        output.writeMessage(27, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) statement_);
      }
      if (statementCase_ == 28) {
        output.writeMessage(28, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) statement_);
      }
      if (statementCase_ == 29) {
        output.writeMessage(29, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) statement_);
      }
      if (statementCase_ == 30) {
        output.writeMessage(30, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label) statement_);
      }
      if (statementCase_ == 31) {
        output.writeMessage(31, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If) statement_);
      }
      if (statementCase_ == 32) {
        output.writeMessage(32, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch) statement_);
      }
      if (statementCase_ == 33) {
        output.writeMessage(33, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While) statement_);
      }
      if (statementCase_ == 34) {
        output.writeMessage(34, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile) statement_);
      }
      if (statementCase_ == 35) {
        output.writeMessage(35, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For) statement_);
      }
      if (statementCase_ == 36) {
        output.writeMessage(36, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn) statement_);
      }
      if (statementCase_ == 37) {
        output.writeMessage(37, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try) statement_);
      }
      if (statementCase_ == 38) {
        output.writeMessage(38, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty) statement_);
      }
      if (statementCase_ == 39) {
        output.writeMessage(39, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment) statement_);
      }
      if (statementCase_ == 40) {
        output.writeMessage(40, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment) statement_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, fileId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, location_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(3, synthetic_);
      }
      for (int i = 0; i < beforeComments_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(4, beforeComments_.get(i));
      }
      for (int i = 0; i < afterComments_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(5, afterComments_.get(i));
      }
      if (statementCase_ == 21) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(21, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) statement_);
      }
      if (statementCase_ == 22) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(22, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) statement_);
      }
      if (statementCase_ == 23) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(23, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) statement_);
      }
      if (statementCase_ == 24) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(24, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) statement_);
      }
      if (statementCase_ == 25) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(25, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) statement_);
      }
      if (statementCase_ == 26) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(26, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) statement_);
      }
      if (statementCase_ == 27) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(27, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) statement_);
      }
      if (statementCase_ == 28) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(28, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) statement_);
      }
      if (statementCase_ == 29) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(29, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) statement_);
      }
      if (statementCase_ == 30) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(30, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label) statement_);
      }
      if (statementCase_ == 31) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(31, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If) statement_);
      }
      if (statementCase_ == 32) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(32, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch) statement_);
      }
      if (statementCase_ == 33) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(33, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While) statement_);
      }
      if (statementCase_ == 34) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(34, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile) statement_);
      }
      if (statementCase_ == 35) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(35, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For) statement_);
      }
      if (statementCase_ == 36) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(36, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn) statement_);
      }
      if (statementCase_ == 37) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(37, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try) statement_);
      }
      if (statementCase_ == 38) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(38, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty) statement_);
      }
      if (statementCase_ == 39) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(39, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment) statement_);
      }
      if (statementCase_ == 40) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(40, (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment) statement_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Statement}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Statement)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.StatementOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        fileId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        synthetic_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        beforeComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        afterComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        statementCase_ = 0;
        statement_ = null;
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.fileId_ = fileId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.location_ = location_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.synthetic_ = synthetic_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          beforeComments_ = java.util.Collections.unmodifiableList(beforeComments_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.beforeComments_ = beforeComments_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          afterComments_ = java.util.Collections.unmodifiableList(afterComments_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.afterComments_ = afterComments_;
        if (statementCase_ == 21) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 22) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 23) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 24) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 25) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 26) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 27) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 28) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 29) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 30) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 31) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 32) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 33) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 34) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 35) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 36) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 37) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 38) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 39) {
          result.statement_ = statement_;
        }
        if (statementCase_ == 40) {
          result.statement_ = statement_;
        }
        result.bitField0_ = to_bitField0_;
        result.statementCase_ = statementCase_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.getDefaultInstance()) return this;
        if (other.hasFileId()) {
          setFileId(other.getFileId());
        }
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        if (other.hasSynthetic()) {
          setSynthetic(other.getSynthetic());
        }
        if (!other.beforeComments_.isEmpty()) {
          if (beforeComments_.isEmpty()) {
            beforeComments_ = other.beforeComments_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureBeforeCommentsIsMutable();
            beforeComments_.addAll(other.beforeComments_);
          }
          
        }
        if (!other.afterComments_.isEmpty()) {
          if (afterComments_.isEmpty()) {
            afterComments_ = other.afterComments_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureAfterCommentsIsMutable();
            afterComments_.addAll(other.afterComments_);
          }
          
        }
        switch (other.getStatementCase()) {
          case RETURN_STATEMENT: {
            mergeReturnStatement(other.getReturnStatement());
            break;
          }
          case THROW_STATEMENT: {
            mergeThrowStatement(other.getThrowStatement());
            break;
          }
          case BREAK_STATEMENT: {
            mergeBreakStatement(other.getBreakStatement());
            break;
          }
          case CONTINUE_STATEMENT: {
            mergeContinueStatement(other.getContinueStatement());
            break;
          }
          case DEBUGGER: {
            mergeDebugger(other.getDebugger());
            break;
          }
          case EXPRESSION: {
            mergeExpression(other.getExpression());
            break;
          }
          case VARS: {
            mergeVars(other.getVars());
            break;
          }
          case BLOCK: {
            mergeBlock(other.getBlock());
            break;
          }
          case COMPOSITE_BLOCK: {
            mergeCompositeBlock(other.getCompositeBlock());
            break;
          }
          case LABEL: {
            mergeLabel(other.getLabel());
            break;
          }
          case IF_STATEMENT: {
            mergeIfStatement(other.getIfStatement());
            break;
          }
          case SWITCH_STATEMENT: {
            mergeSwitchStatement(other.getSwitchStatement());
            break;
          }
          case WHILE_STATEMENT: {
            mergeWhileStatement(other.getWhileStatement());
            break;
          }
          case DO_WHILE_STATEMENT: {
            mergeDoWhileStatement(other.getDoWhileStatement());
            break;
          }
          case FOR_STATEMENT: {
            mergeForStatement(other.getForStatement());
            break;
          }
          case FOR_IN_STATEMENT: {
            mergeForInStatement(other.getForInStatement());
            break;
          }
          case TRY_STATEMENT: {
            mergeTryStatement(other.getTryStatement());
            break;
          }
          case EMPTY: {
            mergeEmpty(other.getEmpty());
            break;
          }
          case SINGLE_LINE_COMMENT: {
            mergeSingleLineComment(other.getSingleLineComment());
            break;
          }
          case MULTI_LINE_COMMENT: {
            mergeMultiLineComment(other.getMultiLineComment());
            break;
          }
          case STATEMENT_NOT_SET: {
            break;
          }
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (hasLocation()) {
          if (!getLocation().isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getBeforeCommentsCount(); i++) {
          if (!getBeforeComments(i).isInitialized()) {
            
            return false;
          }
        }
        for (int i = 0; i < getAfterCommentsCount(); i++) {
          if (!getAfterComments(i).isInitialized()) {
            
            return false;
          }
        }
        if (hasReturnStatement()) {
          if (!getReturnStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasThrowStatement()) {
          if (!getThrowStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasExpression()) {
          if (!getExpression().isInitialized()) {
            
            return false;
          }
        }
        if (hasVars()) {
          if (!getVars().isInitialized()) {
            
            return false;
          }
        }
        if (hasBlock()) {
          if (!getBlock().isInitialized()) {
            
            return false;
          }
        }
        if (hasCompositeBlock()) {
          if (!getCompositeBlock().isInitialized()) {
            
            return false;
          }
        }
        if (hasLabel()) {
          if (!getLabel().isInitialized()) {
            
            return false;
          }
        }
        if (hasIfStatement()) {
          if (!getIfStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasSwitchStatement()) {
          if (!getSwitchStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasWhileStatement()) {
          if (!getWhileStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasDoWhileStatement()) {
          if (!getDoWhileStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasForStatement()) {
          if (!getForStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasForInStatement()) {
          if (!getForInStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasTryStatement()) {
          if (!getTryStatement().isInitialized()) {
            
            return false;
          }
        }
        if (hasSingleLineComment()) {
          if (!getSingleLineComment().isInitialized()) {
            
            return false;
          }
        }
        if (hasMultiLineComment()) {
          if (!getMultiLineComment().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int statementCase_ = 0;
      private java.lang.Object statement_;
      public StatementCase
          getStatementCase() {
        return StatementCase.valueOf(
            statementCase_);
      }

      public Builder clearStatement() {
        statementCase_ = 0;
        statement_ = null;
        return this;
      }

      private int bitField0_;

      private int fileId_ ;
      /**
       * optional int32 fileId = 1;
       */
      public boolean hasFileId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 fileId = 1;
       */
      public int getFileId() {
        return fileId_;
      }
      /**
       * optional int32 fileId = 1;
       */
      public Builder setFileId(int value) {
        bitField0_ |= 0x00000001;
        fileId_ = value;
        
        return this;
      }
      /**
       * optional int32 fileId = 1;
       */
      public Builder clearFileId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        fileId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation() {
        return location_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder setLocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location value) {
        if (value == null) {
          throw new NullPointerException();
        }
        location_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder setLocation(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.Builder builderForValue) {
        location_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder mergeLocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            location_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance()) {
          location_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.newBuilder(location_).mergeFrom(value).buildPartial();
        } else {
          location_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 2;
       */
      public Builder clearLocation() {
        location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private boolean synthetic_ ;
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public boolean hasSynthetic() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public boolean getSynthetic() {
        return synthetic_;
      }
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public Builder setSynthetic(boolean value) {
        bitField0_ |= 0x00000004;
        synthetic_ = value;
        
        return this;
      }
      /**
       * optional bool synthetic = 3 [default = false];
       */
      public Builder clearSynthetic() {
        bitField0_ = (bitField0_ & ~0x00000004);
        synthetic_ = false;
        
        return this;
      }

      private java.util.List beforeComments_ =
        java.util.Collections.emptyList();
      private void ensureBeforeCommentsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          beforeComments_ = new java.util.ArrayList(beforeComments_);
          bitField0_ |= 0x00000008;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public java.util.List getBeforeCommentsList() {
        return java.util.Collections.unmodifiableList(beforeComments_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public int getBeforeCommentsCount() {
        return beforeComments_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getBeforeComments(int index) {
        return beforeComments_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder setBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBeforeCommentsIsMutable();
        beforeComments_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder setBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder addBeforeComments(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder addBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder addBeforeComments(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder addBeforeComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder addAllBeforeComments(
          java.lang.Iterable values) {
        ensureBeforeCommentsIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, beforeComments_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder clearBeforeComments() {
        beforeComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment before_comments = 4;
       */
      public Builder removeBeforeComments(int index) {
        ensureBeforeCommentsIsMutable();
        beforeComments_.remove(index);

        return this;
      }

      private java.util.List afterComments_ =
        java.util.Collections.emptyList();
      private void ensureAfterCommentsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          afterComments_ = new java.util.ArrayList(afterComments_);
          bitField0_ |= 0x00000010;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public java.util.List getAfterCommentsList() {
        return java.util.Collections.unmodifiableList(afterComments_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public int getAfterCommentsCount() {
        return afterComments_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment getAfterComments(int index) {
        return afterComments_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder setAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAfterCommentsIsMutable();
        afterComments_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder setAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureAfterCommentsIsMutable();
        afterComments_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder addAfterComments(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAfterCommentsIsMutable();
        afterComments_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder addAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAfterCommentsIsMutable();
        afterComments_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder addAfterComments(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureAfterCommentsIsMutable();
        afterComments_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder addAfterComments(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Comment.Builder builderForValue) {
        ensureAfterCommentsIsMutable();
        afterComments_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder addAllAfterComments(
          java.lang.Iterable values) {
        ensureAfterCommentsIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, afterComments_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder clearAfterComments() {
        afterComments_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Comment after_comments = 5;
       */
      public Builder removeAfterComments(int index) {
        ensureAfterCommentsIsMutable();
        afterComments_.remove(index);

        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
       */
      public boolean hasReturnStatement() {
        return statementCase_ == 21;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return getReturnStatement() {
        if (statementCase_ == 21) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
       */
      public Builder setReturnStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 21;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
       */
      public Builder setReturnStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 21;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
       */
      public Builder mergeReturnStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return value) {
        if (statementCase_ == 21 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 21;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Return return_statement = 21;
       */
      public Builder clearReturnStatement() {
        if (statementCase_ == 21) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
       */
      public boolean hasThrowStatement() {
        return statementCase_ == 22;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw getThrowStatement() {
        if (statementCase_ == 22) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
       */
      public Builder setThrowStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 22;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
       */
      public Builder setThrowStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 22;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
       */
      public Builder mergeThrowStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw value) {
        if (statementCase_ == 22 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 22;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Throw throw_statement = 22;
       */
      public Builder clearThrowStatement() {
        if (statementCase_ == 22) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
       */
      public boolean hasBreakStatement() {
        return statementCase_ == 23;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break getBreakStatement() {
        if (statementCase_ == 23) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
       */
      public Builder setBreakStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 23;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
       */
      public Builder setBreakStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 23;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
       */
      public Builder mergeBreakStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break value) {
        if (statementCase_ == 23 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 23;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Break break_statement = 23;
       */
      public Builder clearBreakStatement() {
        if (statementCase_ == 23) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
       */
      public boolean hasContinueStatement() {
        return statementCase_ == 24;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue getContinueStatement() {
        if (statementCase_ == 24) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
       */
      public Builder setContinueStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 24;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
       */
      public Builder setContinueStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 24;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
       */
      public Builder mergeContinueStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue value) {
        if (statementCase_ == 24 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 24;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Continue continue_statement = 24;
       */
      public Builder clearContinueStatement() {
        if (statementCase_ == 24) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
       */
      public boolean hasDebugger() {
        return statementCase_ == 25;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger getDebugger() {
        if (statementCase_ == 25) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
       */
      public Builder setDebugger(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 25;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
       */
      public Builder setDebugger(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 25;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
       */
      public Builder mergeDebugger(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger value) {
        if (statementCase_ == 25 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 25;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Debugger debugger = 25;
       */
      public Builder clearDebugger() {
        if (statementCase_ == 25) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
       */
      public boolean hasExpression() {
        return statementCase_ == 26;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement getExpression() {
        if (statementCase_ == 26) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
       */
      public Builder setExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 26;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
       */
      public Builder setExpression(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 26;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
       */
      public Builder mergeExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement value) {
        if (statementCase_ == 26 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 26;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement expression = 26;
       */
      public Builder clearExpression() {
        if (statementCase_ == 26) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
       */
      public boolean hasVars() {
        return statementCase_ == 27;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars getVars() {
        if (statementCase_ == 27) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
       */
      public Builder setVars(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 27;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
       */
      public Builder setVars(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 27;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
       */
      public Builder mergeVars(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars value) {
        if (statementCase_ == 27 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 27;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Vars vars = 27;
       */
      public Builder clearVars() {
        if (statementCase_ == 27) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
       */
      public boolean hasBlock() {
        return statementCase_ == 28;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block getBlock() {
        if (statementCase_ == 28) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
       */
      public Builder setBlock(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 28;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
       */
      public Builder setBlock(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 28;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
       */
      public Builder mergeBlock(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block value) {
        if (statementCase_ == 28 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 28;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Block block = 28;
       */
      public Builder clearBlock() {
        if (statementCase_ == 28) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
       */
      public boolean hasCompositeBlock() {
        return statementCase_ == 29;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock getCompositeBlock() {
        if (statementCase_ == 29) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
       */
      public Builder setCompositeBlock(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 29;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
       */
      public Builder setCompositeBlock(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 29;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
       */
      public Builder mergeCompositeBlock(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock value) {
        if (statementCase_ == 29 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 29;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.CompositeBlock composite_block = 29;
       */
      public Builder clearCompositeBlock() {
        if (statementCase_ == 29) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
       */
      public boolean hasLabel() {
        return statementCase_ == 30;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label getLabel() {
        if (statementCase_ == 30) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
       */
      public Builder setLabel(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 30;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
       */
      public Builder setLabel(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 30;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
       */
      public Builder mergeLabel(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label value) {
        if (statementCase_ == 30 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Label) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 30;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Label label = 30;
       */
      public Builder clearLabel() {
        if (statementCase_ == 30) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
       */
      public boolean hasIfStatement() {
        return statementCase_ == 31;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If getIfStatement() {
        if (statementCase_ == 31) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
       */
      public Builder setIfStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 31;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
       */
      public Builder setIfStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 31;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
       */
      public Builder mergeIfStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If value) {
        if (statementCase_ == 31 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.If) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 31;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.If if_statement = 31;
       */
      public Builder clearIfStatement() {
        if (statementCase_ == 31) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
       */
      public boolean hasSwitchStatement() {
        return statementCase_ == 32;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch getSwitchStatement() {
        if (statementCase_ == 32) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
       */
      public Builder setSwitchStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 32;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
       */
      public Builder setSwitchStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 32;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
       */
      public Builder mergeSwitchStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch value) {
        if (statementCase_ == 32 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Switch) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 32;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Switch switch_statement = 32;
       */
      public Builder clearSwitchStatement() {
        if (statementCase_ == 32) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
       */
      public boolean hasWhileStatement() {
        return statementCase_ == 33;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While getWhileStatement() {
        if (statementCase_ == 33) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
       */
      public Builder setWhileStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 33;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
       */
      public Builder setWhileStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 33;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
       */
      public Builder mergeWhileStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While value) {
        if (statementCase_ == 33 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.While) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 33;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.While while_statement = 33;
       */
      public Builder clearWhileStatement() {
        if (statementCase_ == 33) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
       */
      public boolean hasDoWhileStatement() {
        return statementCase_ == 34;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile getDoWhileStatement() {
        if (statementCase_ == 34) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
       */
      public Builder setDoWhileStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 34;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
       */
      public Builder setDoWhileStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 34;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
       */
      public Builder mergeDoWhileStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile value) {
        if (statementCase_ == 34 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DoWhile) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 34;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.DoWhile do_while_statement = 34;
       */
      public Builder clearDoWhileStatement() {
        if (statementCase_ == 34) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
       */
      public boolean hasForStatement() {
        return statementCase_ == 35;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For getForStatement() {
        if (statementCase_ == 35) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
       */
      public Builder setForStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 35;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
       */
      public Builder setForStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 35;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
       */
      public Builder mergeForStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For value) {
        if (statementCase_ == 35 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.For) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 35;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.For for_statement = 35;
       */
      public Builder clearForStatement() {
        if (statementCase_ == 35) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
       */
      public boolean hasForInStatement() {
        return statementCase_ == 36;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn getForInStatement() {
        if (statementCase_ == 36) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
       */
      public Builder setForInStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 36;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
       */
      public Builder setForInStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 36;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
       */
      public Builder mergeForInStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn value) {
        if (statementCase_ == 36 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ForIn) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 36;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.ForIn for_in_statement = 36;
       */
      public Builder clearForInStatement() {
        if (statementCase_ == 36) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
       */
      public boolean hasTryStatement() {
        return statementCase_ == 37;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try getTryStatement() {
        if (statementCase_ == 37) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
       */
      public Builder setTryStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 37;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
       */
      public Builder setTryStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 37;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
       */
      public Builder mergeTryStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try value) {
        if (statementCase_ == 37 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Try) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 37;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Try try_statement = 37;
       */
      public Builder clearTryStatement() {
        if (statementCase_ == 37) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
       */
      public boolean hasEmpty() {
        return statementCase_ == 38;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty getEmpty() {
        if (statementCase_ == 38) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
       */
      public Builder setEmpty(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 38;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
       */
      public Builder setEmpty(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 38;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
       */
      public Builder mergeEmpty(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty value) {
        if (statementCase_ == 38 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Empty) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 38;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Empty empty = 38;
       */
      public Builder clearEmpty() {
        if (statementCase_ == 38) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
       */
      public boolean hasSingleLineComment() {
        return statementCase_ == 39;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment getSingleLineComment() {
        if (statementCase_ == 39) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
       */
      public Builder setSingleLineComment(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 39;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
       */
      public Builder setSingleLineComment(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 39;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
       */
      public Builder mergeSingleLineComment(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment value) {
        if (statementCase_ == 39 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.SingleLineComment) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 39;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.SingleLineComment single_line_comment = 39;
       */
      public Builder clearSingleLineComment() {
        if (statementCase_ == 39) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
       */
      public boolean hasMultiLineComment() {
        return statementCase_ == 40;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment getMultiLineComment() {
        if (statementCase_ == 40) {
          return (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment) statement_;
        }
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment.getDefaultInstance();
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
       */
      public Builder setMultiLineComment(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statement_ = value;

        statementCase_ = 40;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
       */
      public Builder setMultiLineComment(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment.Builder builderForValue) {
        statement_ = builderForValue.build();

        statementCase_ = 40;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
       */
      public Builder mergeMultiLineComment(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment value) {
        if (statementCase_ == 40 &&
            statement_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment.getDefaultInstance()) {
          statement_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment.newBuilder((org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.MultiLineComment) statement_)
              .mergeFrom(value).buildPartial();
        } else {
          statement_ = value;
        }

        statementCase_ = 40;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.MultiLineComment multi_line_comment = 40;
       */
      public Builder clearMultiLineComment() {
        if (statementCase_ == 40) {
          statementCase_ = 0;
          statement_ = null;
          
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Statement)
    }

    static {
      defaultInstance = new Statement(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Statement)
  }

  public interface ReturnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Return)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
     */
    boolean hasValue();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getValue();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Return}
   */
  public static final class Return extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Return)
      ReturnOrBuilder {
    // Use Return.newBuilder() to construct.
    private Return(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Return(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Return defaultInstance;
    public static Return getDefaultInstance() {
      return defaultInstance;
    }

    public Return getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Return(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = value_.toBuilder();
              }
              value_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(value_);
                value_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Return parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Return(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int VALUE_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getValue() {
      return value_;
    }

    private void initFields() {
      value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (hasValue()) {
        if (!getValue().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, value_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, value_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Return}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Return)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ReturnOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return.getDefaultInstance()) return this;
        if (other.hasValue()) {
          mergeValue(other.getValue());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (hasValue()) {
          if (!getValue().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Return) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getValue() {
        return value_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
       */
      public Builder setValue(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        value_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
       */
      public Builder setValue(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        value_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
       */
      public Builder mergeValue(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            value_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          value_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(value_).mergeFrom(value).buildPartial();
        } else {
          value_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression value = 1;
       */
      public Builder clearValue() {
        value_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Return)
    }

    static {
      defaultInstance = new Return(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Return)
  }

  public interface ThrowOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Throw)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
     */
    boolean hasException();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getException();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Throw}
   */
  public static final class Throw extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Throw)
      ThrowOrBuilder {
    // Use Throw.newBuilder() to construct.
    private Throw(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Throw(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Throw defaultInstance;
    public static Throw getDefaultInstance() {
      return defaultInstance;
    }

    public Throw getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Throw(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = exception_.toBuilder();
              }
              exception_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(exception_);
                exception_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Throw parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Throw(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EXCEPTION_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression exception_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
     */
    public boolean hasException() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getException() {
      return exception_;
    }

    private void initFields() {
      exception_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasException()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getException().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, exception_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, exception_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Throw}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Throw)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ThrowOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        exception_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.exception_ = exception_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw.getDefaultInstance()) return this;
        if (other.hasException()) {
          mergeException(other.getException());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasException()) {
          
          return false;
        }
        if (!getException().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Throw) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression exception_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
       */
      public boolean hasException() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getException() {
        return exception_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
       */
      public Builder setException(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        exception_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
       */
      public Builder setException(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        exception_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
       */
      public Builder mergeException(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            exception_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          exception_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(exception_).mergeFrom(value).buildPartial();
        } else {
          exception_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression exception = 1;
       */
      public Builder clearException() {
        exception_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Throw)
    }

    static {
      defaultInstance = new Throw(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Throw)
  }

  public interface BreakOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Break)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * optional int32 label_id = 1;
     */
    boolean hasLabelId();
    /**
     * optional int32 label_id = 1;
     */
    int getLabelId();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Break}
   */
  public static final class Break extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Break)
      BreakOrBuilder {
    // Use Break.newBuilder() to construct.
    private Break(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Break(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Break defaultInstance;
    public static Break getDefaultInstance() {
      return defaultInstance;
    }

    public Break getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Break(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              labelId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Break parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Break(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int LABEL_ID_FIELD_NUMBER = 1;
    private int labelId_;
    /**
     * optional int32 label_id = 1;
     */
    public boolean hasLabelId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 label_id = 1;
     */
    public int getLabelId() {
      return labelId_;
    }

    private void initFields() {
      labelId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, labelId_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, labelId_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Break}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Break)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BreakOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        labelId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.labelId_ = labelId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break.getDefaultInstance()) return this;
        if (other.hasLabelId()) {
          setLabelId(other.getLabelId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Break) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int labelId_ ;
      /**
       * optional int32 label_id = 1;
       */
      public boolean hasLabelId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 label_id = 1;
       */
      public int getLabelId() {
        return labelId_;
      }
      /**
       * optional int32 label_id = 1;
       */
      public Builder setLabelId(int value) {
        bitField0_ |= 0x00000001;
        labelId_ = value;
        
        return this;
      }
      /**
       * optional int32 label_id = 1;
       */
      public Builder clearLabelId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        labelId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Break)
    }

    static {
      defaultInstance = new Break(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Break)
  }

  public interface ContinueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Continue)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * optional int32 label_id = 1;
     */
    boolean hasLabelId();
    /**
     * optional int32 label_id = 1;
     */
    int getLabelId();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Continue}
   */
  public static final class Continue extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Continue)
      ContinueOrBuilder {
    // Use Continue.newBuilder() to construct.
    private Continue(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Continue(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Continue defaultInstance;
    public static Continue getDefaultInstance() {
      return defaultInstance;
    }

    public Continue getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Continue(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              labelId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Continue parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Continue(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int LABEL_ID_FIELD_NUMBER = 1;
    private int labelId_;
    /**
     * optional int32 label_id = 1;
     */
    public boolean hasLabelId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 label_id = 1;
     */
    public int getLabelId() {
      return labelId_;
    }

    private void initFields() {
      labelId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, labelId_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, labelId_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Continue}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Continue)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ContinueOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        labelId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.labelId_ = labelId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue.getDefaultInstance()) return this;
        if (other.hasLabelId()) {
          setLabelId(other.getLabelId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Continue) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int labelId_ ;
      /**
       * optional int32 label_id = 1;
       */
      public boolean hasLabelId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 label_id = 1;
       */
      public int getLabelId() {
        return labelId_;
      }
      /**
       * optional int32 label_id = 1;
       */
      public Builder setLabelId(int value) {
        bitField0_ |= 0x00000001;
        labelId_ = value;
        
        return this;
      }
      /**
       * optional int32 label_id = 1;
       */
      public Builder clearLabelId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        labelId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Continue)
    }

    static {
      defaultInstance = new Continue(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Continue)
  }

  public interface DebuggerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Debugger)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Debugger}
   */
  public static final class Debugger extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Debugger)
      DebuggerOrBuilder {
    // Use Debugger.newBuilder() to construct.
    private Debugger(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Debugger(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Debugger defaultInstance;
    public static Debugger getDefaultInstance() {
      return defaultInstance;
    }

    public Debugger getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Debugger(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Debugger parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Debugger(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Debugger}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Debugger)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.DebuggerOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger(this);
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger.getDefaultInstance()) return this;
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Debugger) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Debugger)
    }

    static {
      defaultInstance = new Debugger(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Debugger)
  }

  public interface ExpressionStatementOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
     */
    boolean hasExpression();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getExpression();

    /**
     * optional int32 exported_tag_id = 2;
     */
    boolean hasExportedTagId();
    /**
     * optional int32 exported_tag_id = 2;
     */
    int getExportedTagId();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement}
   */
  public static final class ExpressionStatement extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement)
      ExpressionStatementOrBuilder {
    // Use ExpressionStatement.newBuilder() to construct.
    private ExpressionStatement(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ExpressionStatement(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final ExpressionStatement defaultInstance;
    public static ExpressionStatement getDefaultInstance() {
      return defaultInstance;
    }

    public ExpressionStatement getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private ExpressionStatement(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = expression_.toBuilder();
              }
              expression_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(expression_);
                expression_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              exportedTagId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public ExpressionStatement parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new ExpressionStatement(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EXPRESSION_FIELD_NUMBER = 1;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression expression_;
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
     */
    public boolean hasExpression() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getExpression() {
      return expression_;
    }

    public static final int EXPORTED_TAG_ID_FIELD_NUMBER = 2;
    private int exportedTagId_;
    /**
     * optional int32 exported_tag_id = 2;
     */
    public boolean hasExportedTagId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 exported_tag_id = 2;
     */
    public int getExportedTagId() {
      return exportedTagId_;
    }

    private void initFields() {
      expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      exportedTagId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasExpression()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getExpression().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, expression_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, exportedTagId_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, expression_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(2, exportedTagId_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatementOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        exportedTagId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.expression_ = expression_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.exportedTagId_ = exportedTagId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement.getDefaultInstance()) return this;
        if (other.hasExpression()) {
          mergeExpression(other.getExpression());
        }
        if (other.hasExportedTagId()) {
          setExportedTagId(other.getExportedTagId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasExpression()) {
          
          return false;
        }
        if (!getExpression().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.ExpressionStatement) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
       */
      public boolean hasExpression() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getExpression() {
        return expression_;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
       */
      public Builder setExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        expression_ = value;

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
       */
      public Builder setExpression(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        expression_ = builderForValue.build();

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
       */
      public Builder mergeExpression(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            expression_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          expression_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(expression_).mergeFrom(value).buildPartial();
        } else {
          expression_ = value;
        }

        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * required .org.jetbrains.kotlin.serialization.js.ast.Expression expression = 1;
       */
      public Builder clearExpression() {
        expression_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      private int exportedTagId_ ;
      /**
       * optional int32 exported_tag_id = 2;
       */
      public boolean hasExportedTagId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 exported_tag_id = 2;
       */
      public int getExportedTagId() {
        return exportedTagId_;
      }
      /**
       * optional int32 exported_tag_id = 2;
       */
      public Builder setExportedTagId(int value) {
        bitField0_ |= 0x00000002;
        exportedTagId_ = value;
        
        return this;
      }
      /**
       * optional int32 exported_tag_id = 2;
       */
      public Builder clearExportedTagId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        exportedTagId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement)
    }

    static {
      defaultInstance = new ExpressionStatement(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.ExpressionStatement)
  }

  public interface VarsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Vars)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    java.util.List 
        getDeclarationList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration getDeclaration(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    int getDeclarationCount();

    /**
     * optional bool multiline = 2 [default = false];
     */
    boolean hasMultiline();
    /**
     * optional bool multiline = 2 [default = false];
     */
    boolean getMultiline();

    /**
     * optional int32 exported_package_id = 3;
     */
    boolean hasExportedPackageId();
    /**
     * optional int32 exported_package_id = 3;
     */
    int getExportedPackageId();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Vars}
   */
  public static final class Vars extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Vars)
      VarsOrBuilder {
    // Use Vars.newBuilder() to construct.
    private Vars(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Vars(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Vars defaultInstance;
    public static Vars getDefaultInstance() {
      return defaultInstance;
    }

    public Vars getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Vars(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                declaration_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              declaration_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              multiline_ = input.readBool();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              exportedPackageId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          declaration_ = java.util.Collections.unmodifiableList(declaration_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Vars parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Vars(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DECLARATION_FIELD_NUMBER = 1;
    private java.util.List declaration_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    public java.util.List getDeclarationList() {
      return declaration_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    public java.util.List 
        getDeclarationOrBuilderList() {
      return declaration_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    public int getDeclarationCount() {
      return declaration_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration getDeclaration(int index) {
      return declaration_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclarationOrBuilder getDeclarationOrBuilder(
        int index) {
      return declaration_.get(index);
    }

    public static final int MULTILINE_FIELD_NUMBER = 2;
    private boolean multiline_;
    /**
     * optional bool multiline = 2 [default = false];
     */
    public boolean hasMultiline() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool multiline = 2 [default = false];
     */
    public boolean getMultiline() {
      return multiline_;
    }

    public static final int EXPORTED_PACKAGE_ID_FIELD_NUMBER = 3;
    private int exportedPackageId_;
    /**
     * optional int32 exported_package_id = 3;
     */
    public boolean hasExportedPackageId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 exported_package_id = 3;
     */
    public int getExportedPackageId() {
      return exportedPackageId_;
    }

    private void initFields() {
      declaration_ = java.util.Collections.emptyList();
      multiline_ = false;
      exportedPackageId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getDeclarationCount(); i++) {
        if (!getDeclaration(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < declaration_.size(); i++) {
        output.writeMessage(1, declaration_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(2, multiline_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(3, exportedPackageId_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < declaration_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, declaration_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeBoolSize(2, multiline_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(3, exportedPackageId_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Vars}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Vars)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarsOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        declaration_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        multiline_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        exportedPackageId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          declaration_ = java.util.Collections.unmodifiableList(declaration_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.declaration_ = declaration_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.multiline_ = multiline_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.exportedPackageId_ = exportedPackageId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars.getDefaultInstance()) return this;
        if (!other.declaration_.isEmpty()) {
          if (declaration_.isEmpty()) {
            declaration_ = other.declaration_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureDeclarationIsMutable();
            declaration_.addAll(other.declaration_);
          }
          
        }
        if (other.hasMultiline()) {
          setMultiline(other.getMultiline());
        }
        if (other.hasExportedPackageId()) {
          setExportedPackageId(other.getExportedPackageId());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getDeclarationCount(); i++) {
          if (!getDeclaration(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Vars) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List declaration_ =
        java.util.Collections.emptyList();
      private void ensureDeclarationIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          declaration_ = new java.util.ArrayList(declaration_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public java.util.List getDeclarationList() {
        return java.util.Collections.unmodifiableList(declaration_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public int getDeclarationCount() {
        return declaration_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration getDeclaration(int index) {
        return declaration_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder setDeclaration(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDeclarationIsMutable();
        declaration_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder setDeclaration(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration.Builder builderForValue) {
        ensureDeclarationIsMutable();
        declaration_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder addDeclaration(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDeclarationIsMutable();
        declaration_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder addDeclaration(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDeclarationIsMutable();
        declaration_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder addDeclaration(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration.Builder builderForValue) {
        ensureDeclarationIsMutable();
        declaration_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder addDeclaration(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration.Builder builderForValue) {
        ensureDeclarationIsMutable();
        declaration_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder addAllDeclaration(
          java.lang.Iterable values) {
        ensureDeclarationIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, declaration_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder clearDeclaration() {
        declaration_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.VarDeclaration declaration = 1;
       */
      public Builder removeDeclaration(int index) {
        ensureDeclarationIsMutable();
        declaration_.remove(index);

        return this;
      }

      private boolean multiline_ ;
      /**
       * optional bool multiline = 2 [default = false];
       */
      public boolean hasMultiline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool multiline = 2 [default = false];
       */
      public boolean getMultiline() {
        return multiline_;
      }
      /**
       * optional bool multiline = 2 [default = false];
       */
      public Builder setMultiline(boolean value) {
        bitField0_ |= 0x00000002;
        multiline_ = value;
        
        return this;
      }
      /**
       * optional bool multiline = 2 [default = false];
       */
      public Builder clearMultiline() {
        bitField0_ = (bitField0_ & ~0x00000002);
        multiline_ = false;
        
        return this;
      }

      private int exportedPackageId_ ;
      /**
       * optional int32 exported_package_id = 3;
       */
      public boolean hasExportedPackageId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 exported_package_id = 3;
       */
      public int getExportedPackageId() {
        return exportedPackageId_;
      }
      /**
       * optional int32 exported_package_id = 3;
       */
      public Builder setExportedPackageId(int value) {
        bitField0_ |= 0x00000004;
        exportedPackageId_ = value;
        
        return this;
      }
      /**
       * optional int32 exported_package_id = 3;
       */
      public Builder clearExportedPackageId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        exportedPackageId_ = 0;
        
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Vars)
    }

    static {
      defaultInstance = new Vars(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Vars)
  }

  public interface VarDeclarationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.VarDeclaration)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 name_id = 1;
     */
    boolean hasNameId();
    /**
     * required int32 name_id = 1;
     */
    int getNameId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
     */
    boolean hasInitialValue();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getInitialValue();

    /**
     * optional int32 fileId = 3;
     */
    boolean hasFileId();
    /**
     * optional int32 fileId = 3;
     */
    int getFileId();

    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
     */
    boolean hasLocation();
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.VarDeclaration}
   */
  public static final class VarDeclaration extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.VarDeclaration)
      VarDeclarationOrBuilder {
    // Use VarDeclaration.newBuilder() to construct.
    private VarDeclaration(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private VarDeclaration(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final VarDeclaration defaultInstance;
    public static VarDeclaration getDefaultInstance() {
      return defaultInstance;
    }

    public VarDeclaration getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private VarDeclaration(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              nameId_ = input.readInt32();
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = initialValue_.toBuilder();
              }
              initialValue_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(initialValue_);
                initialValue_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              fileId_ = input.readInt32();
              break;
            }
            case 34: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public VarDeclaration parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new VarDeclaration(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int NAME_ID_FIELD_NUMBER = 1;
    private int nameId_;
    /**
     * required int32 name_id = 1;
     */
    public boolean hasNameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 name_id = 1;
     */
    public int getNameId() {
      return nameId_;
    }

    public static final int INITIAL_VALUE_FIELD_NUMBER = 2;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression initialValue_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
     */
    public boolean hasInitialValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getInitialValue() {
      return initialValue_;
    }

    public static final int FILEID_FIELD_NUMBER = 3;
    private int fileId_;
    /**
     * optional int32 fileId = 3;
     */
    public boolean hasFileId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 fileId = 3;
     */
    public int getFileId() {
      return fileId_;
    }

    public static final int LOCATION_FIELD_NUMBER = 4;
    private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location location_;
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation() {
      return location_;
    }

    private void initFields() {
      nameId_ = 0;
      initialValue_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      fileId_ = 0;
      location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasNameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasInitialValue()) {
        if (!getInitialValue().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLocation()) {
        if (!getLocation().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, initialValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, fileId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, location_);
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(1, nameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(2, initialValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeInt32Size(3, fileId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(4, location_);
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.VarDeclaration}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.VarDeclaration)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclarationOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        nameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        initialValue_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        fileId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.nameId_ = nameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.initialValue_ = initialValue_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.fileId_ = fileId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.location_ = location_;
        result.bitField0_ = to_bitField0_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration.getDefaultInstance()) return this;
        if (other.hasNameId()) {
          setNameId(other.getNameId());
        }
        if (other.hasInitialValue()) {
          mergeInitialValue(other.getInitialValue());
        }
        if (other.hasFileId()) {
          setFileId(other.getFileId());
        }
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        if (!hasNameId()) {
          
          return false;
        }
        if (hasInitialValue()) {
          if (!getInitialValue().isInitialized()) {
            
            return false;
          }
        }
        if (hasLocation()) {
          if (!getLocation().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.VarDeclaration) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int nameId_ ;
      /**
       * required int32 name_id = 1;
       */
      public boolean hasNameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 name_id = 1;
       */
      public int getNameId() {
        return nameId_;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder setNameId(int value) {
        bitField0_ |= 0x00000001;
        nameId_ = value;
        
        return this;
      }
      /**
       * required int32 name_id = 1;
       */
      public Builder clearNameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        nameId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression initialValue_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
       */
      public boolean hasInitialValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression getInitialValue() {
        return initialValue_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
       */
      public Builder setInitialValue(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (value == null) {
          throw new NullPointerException();
        }
        initialValue_ = value;

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
       */
      public Builder setInitialValue(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.Builder builderForValue) {
        initialValue_ = builderForValue.build();

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
       */
      public Builder mergeInitialValue(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            initialValue_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance()) {
          initialValue_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.newBuilder(initialValue_).mergeFrom(value).buildPartial();
        } else {
          initialValue_ = value;
        }

        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Expression initial_value = 2;
       */
      public Builder clearInitialValue() {
        initialValue_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Expression.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      private int fileId_ ;
      /**
       * optional int32 fileId = 3;
       */
      public boolean hasFileId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 fileId = 3;
       */
      public int getFileId() {
        return fileId_;
      }
      /**
       * optional int32 fileId = 3;
       */
      public Builder setFileId(int value) {
        bitField0_ |= 0x00000004;
        fileId_ = value;
        
        return this;
      }
      /**
       * optional int32 fileId = 3;
       */
      public Builder clearFileId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fileId_ = 0;
        
        return this;
      }

      private org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location getLocation() {
        return location_;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
       */
      public Builder setLocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location value) {
        if (value == null) {
          throw new NullPointerException();
        }
        location_ = value;

        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
       */
      public Builder setLocation(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.Builder builderForValue) {
        location_ = builderForValue.build();

        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
       */
      public Builder mergeLocation(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location value) {
        if (((bitField0_ & 0x00000008) == 0x00000008) &&
            location_ != org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance()) {
          location_ =
            org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.newBuilder(location_).mergeFrom(value).buildPartial();
        } else {
          location_ = value;
        }

        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .org.jetbrains.kotlin.serialization.js.ast.Location location = 4;
       */
      public Builder clearLocation() {
        location_ = org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Location.getDefaultInstance();

        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.VarDeclaration)
    }

    static {
      defaultInstance = new VarDeclaration(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.VarDeclaration)
  }

  public interface BlockOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Block)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    java.util.List 
        getStatementList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getStatement(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    int getStatementCount();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Block}
   */
  public static final class Block extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Block)
      BlockOrBuilder {
    // Use Block.newBuilder() to construct.
    private Block(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Block(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Block defaultInstance;
    public static Block getDefaultInstance() {
      return defaultInstance;
    }

    public Block getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Block(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                statement_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              statement_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          statement_ = java.util.Collections.unmodifiableList(statement_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public Block parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new Block(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int STATEMENT_FIELD_NUMBER = 1;
    private java.util.List statement_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public java.util.List getStatementList() {
      return statement_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public java.util.List 
        getStatementOrBuilderList() {
      return statement_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public int getStatementCount() {
      return statement_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getStatement(int index) {
      return statement_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.StatementOrBuilder getStatementOrBuilder(
        int index) {
      return statement_.get(index);
    }

    private void initFields() {
      statement_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getStatementCount(); i++) {
        if (!getStatement(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < statement_.size(); i++) {
        output.writeMessage(1, statement_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < statement_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, statement_.get(i));
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Block}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.Block)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.BlockOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        statement_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          statement_ = java.util.Collections.unmodifiableList(statement_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.statement_ = statement_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block.getDefaultInstance()) return this;
        if (!other.statement_.isEmpty()) {
          if (statement_.isEmpty()) {
            statement_ = other.statement_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureStatementIsMutable();
            statement_.addAll(other.statement_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getStatementCount(); i++) {
          if (!getStatement(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Block) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List statement_ =
        java.util.Collections.emptyList();
      private void ensureStatementIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          statement_ = new java.util.ArrayList(statement_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public java.util.List getStatementList() {
        return java.util.Collections.unmodifiableList(statement_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public int getStatementCount() {
        return statement_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getStatement(int index) {
        return statement_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder setStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatementIsMutable();
        statement_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder setStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder builderForValue) {
        ensureStatementIsMutable();
        statement_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatementIsMutable();
        statement_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatementIsMutable();
        statement_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder builderForValue) {
        ensureStatementIsMutable();
        statement_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder builderForValue) {
        ensureStatementIsMutable();
        statement_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addAllStatement(
          java.lang.Iterable values) {
        ensureStatementIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, statement_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder clearStatement() {
        statement_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder removeStatement(int index) {
        ensureStatementIsMutable();
        statement_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.Block)
    }

    static {
      defaultInstance = new Block(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.Block)
  }

  public interface CompositeBlockOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.CompositeBlock)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    java.util.List 
        getStatementList();
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getStatement(int index);
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    int getStatementCount();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.CompositeBlock}
   */
  public static final class CompositeBlock extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.CompositeBlock)
      CompositeBlockOrBuilder {
    // Use CompositeBlock.newBuilder() to construct.
    private CompositeBlock(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CompositeBlock(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final CompositeBlock defaultInstance;
    public static CompositeBlock getDefaultInstance() {
      return defaultInstance;
    }

    public CompositeBlock getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private CompositeBlock(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                statement_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              statement_.add(input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          statement_ = java.util.Collections.unmodifiableList(statement_);
        }
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser PARSER =
        new org.jetbrains.kotlin.protobuf.AbstractParser() {
      public CompositeBlock parsePartialFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
        return new CompositeBlock(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public org.jetbrains.kotlin.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int STATEMENT_FIELD_NUMBER = 1;
    private java.util.List statement_;
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public java.util.List getStatementList() {
      return statement_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public java.util.List 
        getStatementOrBuilderList() {
      return statement_;
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public int getStatementCount() {
      return statement_.size();
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getStatement(int index) {
      return statement_.get(index);
    }
    /**
     * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
     */
    public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.StatementOrBuilder getStatementOrBuilder(
        int index) {
      return statement_.get(index);
    }

    private void initFields() {
      statement_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getStatementCount(); i++) {
        if (!getStatement(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < statement_.size(); i++) {
        output.writeMessage(1, statement_.get(i));
      }
      output.writeRawBytes(unknownFields);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < statement_.size(); i++) {
        size += org.jetbrains.kotlin.protobuf.CodedOutputStream
          .computeMessageSize(1, statement_.get(i));
      }
      size += unknownFields.size();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(
        org.jetbrains.kotlin.protobuf.ByteString data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(byte[] data)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(
        byte[] data,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseDelimitedFrom(
        java.io.InputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parseFrom(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    /**
     * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.CompositeBlock}
     */
    public static final class Builder extends
        org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder<
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock, Builder>
        implements
        // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.serialization.js.ast.CompositeBlock)
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlockOrBuilder {
      // Construct using org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        statement_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock getDefaultInstanceForType() {
        return org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.getDefaultInstance();
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock build() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock buildPartial() {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock result = new org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          statement_ = java.util.Collections.unmodifiableList(statement_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.statement_ = statement_;
        return result;
      }

      public Builder mergeFrom(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock other) {
        if (other == org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock.getDefaultInstance()) return this;
        if (!other.statement_.isEmpty()) {
          if (statement_.isEmpty()) {
            statement_ = other.statement_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureStatementIsMutable();
            statement_.addAll(other.statement_);
          }
          
        }
        setUnknownFields(
            getUnknownFields().concat(other.unknownFields));
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getStatementCount(); i++) {
          if (!getStatement(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          org.jetbrains.kotlin.protobuf.CodedInputStream input,
          org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.CompositeBlock) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List statement_ =
        java.util.Collections.emptyList();
      private void ensureStatementIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          statement_ = new java.util.ArrayList(statement_);
          bitField0_ |= 0x00000001;
         }
      }

      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public java.util.List getStatementList() {
        return java.util.Collections.unmodifiableList(statement_);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public int getStatementCount() {
        return statement_.size();
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getStatement(int index) {
        return statement_.get(index);
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder setStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatementIsMutable();
        statement_.set(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder setStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder builderForValue) {
        ensureStatementIsMutable();
        statement_.set(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatementIsMutable();
        statement_.add(value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatementIsMutable();
        statement_.add(index, value);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(
          org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder builderForValue) {
        ensureStatementIsMutable();
        statement_.add(builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addStatement(
          int index, org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder builderForValue) {
        ensureStatementIsMutable();
        statement_.add(index, builderForValue.build());

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder addAllStatement(
          java.lang.Iterable values) {
        ensureStatementIsMutable();
        org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll(
            values, statement_);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder clearStatement() {
        statement_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);

        return this;
      }
      /**
       * repeated .org.jetbrains.kotlin.serialization.js.ast.Statement statement = 1;
       */
      public Builder removeStatement(int index) {
        ensureStatementIsMutable();
        statement_.remove(index);

        return this;
      }

      // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.serialization.js.ast.CompositeBlock)
    }

    static {
      defaultInstance = new CompositeBlock(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.serialization.js.ast.CompositeBlock)
  }

  public interface LabelOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.serialization.js.ast.Label)
      org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder {

    /**
     * required int32 nameId = 1;
     */
    boolean hasNameId();
    /**
     * required int32 nameId = 1;
     */
    int getNameId();

    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Statement inner_statement = 2;
     */
    boolean hasInnerStatement();
    /**
     * required .org.jetbrains.kotlin.serialization.js.ast.Statement inner_statement = 2;
     */
    org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement getInnerStatement();
  }
  /**
   * Protobuf type {@code org.jetbrains.kotlin.serialization.js.ast.Label}
   */
  public static final class Label extends
      org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements
      // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.serialization.js.ast.Label)
      LabelOrBuilder {
    // Use Label.newBuilder() to construct.
    private Label(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Label(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;}

    private static final Label defaultInstance;
    public static Label getDefaultInstance() {
      return defaultInstance;
    }

    public Label getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final org.jetbrains.kotlin.protobuf.ByteString unknownFields;
    private Label(
        org.jetbrains.kotlin.protobuf.CodedInputStream input,
        org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry)
        throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput =
          org.jetbrains.kotlin.protobuf.ByteString.newOutput();
      org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput =
          org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance(
              unknownFieldsOutput, 1);
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFieldsCodedOutput,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              nameId_ = input.readInt32();
              break;
            }
            case 18: {
              org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = innerStatement_.toBuilder();
              }
              innerStatement_ = input.readMessage(org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.Statement.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(innerStatement_);
                innerStatement_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        try {
          unknownFieldsCodedOutput.flush();
        } catch (java.io.IOException e) {
        // Should not happen
        } finally {
          unknownFields = unknownFieldsOutput.toByteString();
        }
        makeExtensionsImmutable();
      }
    }
    public static org.jetbrains.kotlin.protobuf.Parser




© 2015 - 2024 Weber Informatics LLC | Privacy Policy