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

// Protobuf Java Version: 3.25.1
public final class CommentOuterClass {
  private CommentOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface CommentOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Comment)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string date = 1;</code>
     * @return The date.
     */
    java.lang.String getDate();
    /**
     * <code>string date = 1;</code>
     * @return The bytes for date.
     */
    com.google.protobuf.ByteString
        getDateBytes();

    /**
     * <code>int32 highestJudgment = 2;</code>
     * @return The highestJudgment.
     */
    int getHighestJudgment();

    /**
     * <code>int32 higherJudgment = 3;</code>
     * @return The higherJudgment.
     */
    int getHigherJudgment();

    /**
     * <code>int32 highJudgment = 4;</code>
     * @return The highJudgment.
     */
    int getHighJudgment();

    /**
     * <code>int32 lowJudgment = 5;</code>
     * @return The lowJudgment.
     */
    int getLowJudgment();

    /**
     * <code>int32 lowerJudgment = 6;</code>
     * @return The lowerJudgment.
     */
    int getLowerJudgment();

    /**
     * <code>int32 lowestJudgment = 7;</code>
     * @return The lowestJudgment.
     */
    int getLowestJudgment();

    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    java.util.List<CommentOuterClass.InputEvent> 
        getInputsList();
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    CommentOuterClass.InputEvent getInputs(int index);
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    int getInputsCount();
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    java.util.List<? extends CommentOuterClass.InputEventOrBuilder> 
        getInputsOrBuilderList();
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    CommentOuterClass.InputEventOrBuilder getInputsOrBuilder(
        int index);

    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    java.util.List<CommentOuterClass.MultiplierEvent> 
        getMultipliersList();
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    CommentOuterClass.MultiplierEvent getMultipliers(int index);
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    int getMultipliersCount();
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    java.util.List<? extends CommentOuterClass.MultiplierEventOrBuilder> 
        getMultipliersOrBuilderList();
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    CommentOuterClass.MultiplierEventOrBuilder getMultipliersOrBuilder(
        int index);

    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    java.util.List<CommentOuterClass.PaintEvent> 
        getPaintsList();
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    CommentOuterClass.PaintEvent getPaints(int index);
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    int getPaintsCount();
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    java.util.List<? extends CommentOuterClass.PaintEventOrBuilder> 
        getPaintsOrBuilderList();
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    CommentOuterClass.PaintEventOrBuilder getPaintsOrBuilder(
        int index);

    /**
     * <code>int32 loopUnit = 11;</code>
     * @return The loopUnit.
     */
    int getLoopUnit();

    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    java.util.List<CommentOuterClass.JudgmentMeterEvent> 
        getJudgmentMetersList();
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    CommentOuterClass.JudgmentMeterEvent getJudgmentMeters(int index);
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    int getJudgmentMetersCount();
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    java.util.List<? extends CommentOuterClass.JudgmentMeterEventOrBuilder> 
        getJudgmentMetersOrBuilderList();
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    CommentOuterClass.JudgmentMeterEventOrBuilder getJudgmentMetersOrBuilder(
        int index);

    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    java.util.List<CommentOuterClass.AudioMultiplierEvent> 
        getAudioMultipliersList();
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    CommentOuterClass.AudioMultiplierEvent getAudioMultipliers(int index);
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    int getAudioMultipliersCount();
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    java.util.List<? extends CommentOuterClass.AudioMultiplierEventOrBuilder> 
        getAudioMultipliersOrBuilderList();
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    CommentOuterClass.AudioMultiplierEventOrBuilder getAudioMultipliersOrBuilder(
        int index);

    /**
     * <code>double levyingMultiplier = 14;</code>
     * @return The levyingMultiplier.
     */
    double getLevyingMultiplier();

    /**
     * <code>double levyingAudioMultiplier = 15;</code>
     * @return The levyingAudioMultiplier.
     */
    double getLevyingAudioMultiplier();
  }
  /**
   * Protobuf type {@code Comment}
   */
  public static final class Comment extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Comment)
      CommentOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Comment.newBuilder() to construct.
    private Comment(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Comment() {
      date_ = "";
      inputs_ = java.util.Collections.emptyList();
      multipliers_ = java.util.Collections.emptyList();
      paints_ = java.util.Collections.emptyList();
      judgmentMeters_ = java.util.Collections.emptyList();
      audioMultipliers_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Comment();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return CommentOuterClass.internal_static_Comment_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return CommentOuterClass.internal_static_Comment_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              CommentOuterClass.Comment.class, CommentOuterClass.Comment.Builder.class);
    }

    public static final int DATE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object date_ = "";
    /**
     * <code>string date = 1;</code>
     * @return The date.
     */
    @java.lang.Override
    public java.lang.String getDate() {
      java.lang.Object ref = date_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        date_ = s;
        return s;
      }
    }
    /**
     * <code>string date = 1;</code>
     * @return The bytes for date.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDateBytes() {
      java.lang.Object ref = date_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        date_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HIGHESTJUDGMENT_FIELD_NUMBER = 2;
    private int highestJudgment_ = 0;
    /**
     * <code>int32 highestJudgment = 2;</code>
     * @return The highestJudgment.
     */
    @java.lang.Override
    public int getHighestJudgment() {
      return highestJudgment_;
    }

    public static final int HIGHERJUDGMENT_FIELD_NUMBER = 3;
    private int higherJudgment_ = 0;
    /**
     * <code>int32 higherJudgment = 3;</code>
     * @return The higherJudgment.
     */
    @java.lang.Override
    public int getHigherJudgment() {
      return higherJudgment_;
    }

    public static final int HIGHJUDGMENT_FIELD_NUMBER = 4;
    private int highJudgment_ = 0;
    /**
     * <code>int32 highJudgment = 4;</code>
     * @return The highJudgment.
     */
    @java.lang.Override
    public int getHighJudgment() {
      return highJudgment_;
    }

    public static final int LOWJUDGMENT_FIELD_NUMBER = 5;
    private int lowJudgment_ = 0;
    /**
     * <code>int32 lowJudgment = 5;</code>
     * @return The lowJudgment.
     */
    @java.lang.Override
    public int getLowJudgment() {
      return lowJudgment_;
    }

    public static final int LOWERJUDGMENT_FIELD_NUMBER = 6;
    private int lowerJudgment_ = 0;
    /**
     * <code>int32 lowerJudgment = 6;</code>
     * @return The lowerJudgment.
     */
    @java.lang.Override
    public int getLowerJudgment() {
      return lowerJudgment_;
    }

    public static final int LOWESTJUDGMENT_FIELD_NUMBER = 7;
    private int lowestJudgment_ = 0;
    /**
     * <code>int32 lowestJudgment = 7;</code>
     * @return The lowestJudgment.
     */
    @java.lang.Override
    public int getLowestJudgment() {
      return lowestJudgment_;
    }

    public static final int INPUTS_FIELD_NUMBER = 8;
    @SuppressWarnings("serial")
    private java.util.List<CommentOuterClass.InputEvent> inputs_;
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    @java.lang.Override
    public java.util.List<CommentOuterClass.InputEvent> getInputsList() {
      return inputs_;
    }
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    @java.lang.Override
    public java.util.List<? extends CommentOuterClass.InputEventOrBuilder> 
        getInputsOrBuilderList() {
      return inputs_;
    }
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    @java.lang.Override
    public int getInputsCount() {
      return inputs_.size();
    }
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    @java.lang.Override
    public CommentOuterClass.InputEvent getInputs(int index) {
      return inputs_.get(index);
    }
    /**
     * <code>repeated .InputEvent inputs = 8;</code>
     */
    @java.lang.Override
    public CommentOuterClass.InputEventOrBuilder getInputsOrBuilder(
        int index) {
      return inputs_.get(index);
    }

    public static final int MULTIPLIERS_FIELD_NUMBER = 9;
    @SuppressWarnings("serial")
    private java.util.List<CommentOuterClass.MultiplierEvent> multipliers_;
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    @java.lang.Override
    public java.util.List<CommentOuterClass.MultiplierEvent> getMultipliersList() {
      return multipliers_;
    }
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    @java.lang.Override
    public java.util.List<? extends CommentOuterClass.MultiplierEventOrBuilder> 
        getMultipliersOrBuilderList() {
      return multipliers_;
    }
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    @java.lang.Override
    public int getMultipliersCount() {
      return multipliers_.size();
    }
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    @java.lang.Override
    public CommentOuterClass.MultiplierEvent getMultipliers(int index) {
      return multipliers_.get(index);
    }
    /**
     * <code>repeated .MultiplierEvent multipliers = 9;</code>
     */
    @java.lang.Override
    public CommentOuterClass.MultiplierEventOrBuilder getMultipliersOrBuilder(
        int index) {
      return multipliers_.get(index);
    }

    public static final int PAINTS_FIELD_NUMBER = 10;
    @SuppressWarnings("serial")
    private java.util.List<CommentOuterClass.PaintEvent> paints_;
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    @java.lang.Override
    public java.util.List<CommentOuterClass.PaintEvent> getPaintsList() {
      return paints_;
    }
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    @java.lang.Override
    public java.util.List<? extends CommentOuterClass.PaintEventOrBuilder> 
        getPaintsOrBuilderList() {
      return paints_;
    }
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    @java.lang.Override
    public int getPaintsCount() {
      return paints_.size();
    }
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    @java.lang.Override
    public CommentOuterClass.PaintEvent getPaints(int index) {
      return paints_.get(index);
    }
    /**
     * <code>repeated .PaintEvent paints = 10;</code>
     */
    @java.lang.Override
    public CommentOuterClass.PaintEventOrBuilder getPaintsOrBuilder(
        int index) {
      return paints_.get(index);
    }

    public static final int LOOPUNIT_FIELD_NUMBER = 11;
    private int loopUnit_ = 0;
    /**
     * <code>int32 loopUnit = 11;</code>
     * @return The loopUnit.
     */
    @java.lang.Override
    public int getLoopUnit() {
      return loopUnit_;
    }

    public static final int JUDGMENTMETERS_FIELD_NUMBER = 12;
    @SuppressWarnings("serial")
    private java.util.List<CommentOuterClass.JudgmentMeterEvent> judgmentMeters_;
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    @java.lang.Override
    public java.util.List<CommentOuterClass.JudgmentMeterEvent> getJudgmentMetersList() {
      return judgmentMeters_;
    }
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    @java.lang.Override
    public java.util.List<? extends CommentOuterClass.JudgmentMeterEventOrBuilder> 
        getJudgmentMetersOrBuilderList() {
      return judgmentMeters_;
    }
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    @java.lang.Override
    public int getJudgmentMetersCount() {
      return judgmentMeters_.size();
    }
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    @java.lang.Override
    public CommentOuterClass.JudgmentMeterEvent getJudgmentMeters(int index) {
      return judgmentMeters_.get(index);
    }
    /**
     * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
     */
    @java.lang.Override
    public CommentOuterClass.JudgmentMeterEventOrBuilder getJudgmentMetersOrBuilder(
        int index) {
      return judgmentMeters_.get(index);
    }

    public static final int AUDIOMULTIPLIERS_FIELD_NUMBER = 13;
    @SuppressWarnings("serial")
    private java.util.List<CommentOuterClass.AudioMultiplierEvent> audioMultipliers_;
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    @java.lang.Override
    public java.util.List<CommentOuterClass.AudioMultiplierEvent> getAudioMultipliersList() {
      return audioMultipliers_;
    }
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    @java.lang.Override
    public java.util.List<? extends CommentOuterClass.AudioMultiplierEventOrBuilder> 
        getAudioMultipliersOrBuilderList() {
      return audioMultipliers_;
    }
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    @java.lang.Override
    public int getAudioMultipliersCount() {
      return audioMultipliers_.size();
    }
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    @java.lang.Override
    public CommentOuterClass.AudioMultiplierEvent getAudioMultipliers(int index) {
      return audioMultipliers_.get(index);
    }
    /**
     * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
     */
    @java.lang.Override
    public CommentOuterClass.AudioMultiplierEventOrBuilder getAudioMultipliersOrBuilder(
        int index) {
      return audioMultipliers_.get(index);
    }

    public static final int LEVYINGMULTIPLIER_FIELD_NUMBER = 14;
    private double levyingMultiplier_ = 0D;
    /**
     * <code>double levyingMultiplier = 14;</code>
     * @return The levyingMultiplier.
     */
    @java.lang.Override
    public double getLevyingMultiplier() {
      return levyingMultiplier_;
    }

    public static final int LEVYINGAUDIOMULTIPLIER_FIELD_NUMBER = 15;
    private double levyingAudioMultiplier_ = 0D;
    /**
     * <code>double levyingAudioMultiplier = 15;</code>
     * @return The levyingAudioMultiplier.
     */
    @java.lang.Override
    public double getLevyingAudioMultiplier() {
      return levyingAudioMultiplier_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(date_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, date_);
      }
      if (highestJudgment_ != 0) {
        output.writeInt32(2, highestJudgment_);
      }
      if (higherJudgment_ != 0) {
        output.writeInt32(3, higherJudgment_);
      }
      if (highJudgment_ != 0) {
        output.writeInt32(4, highJudgment_);
      }
      if (lowJudgment_ != 0) {
        output.writeInt32(5, lowJudgment_);
      }
      if (lowerJudgment_ != 0) {
        output.writeInt32(6, lowerJudgment_);
      }
      if (lowestJudgment_ != 0) {
        output.writeInt32(7, lowestJudgment_);
      }
      for (int i = 0; i < inputs_.size(); i++) {
        output.writeMessage(8, inputs_.get(i));
      }
      for (int i = 0; i < multipliers_.size(); i++) {
        output.writeMessage(9, multipliers_.get(i));
      }
      for (int i = 0; i < paints_.size(); i++) {
        output.writeMessage(10, paints_.get(i));
      }
      if (loopUnit_ != 0) {
        output.writeInt32(11, loopUnit_);
      }
      for (int i = 0; i < judgmentMeters_.size(); i++) {
        output.writeMessage(12, judgmentMeters_.get(i));
      }
      for (int i = 0; i < audioMultipliers_.size(); i++) {
        output.writeMessage(13, audioMultipliers_.get(i));
      }
      if (java.lang.Double.doubleToRawLongBits(levyingMultiplier_) != 0) {
        output.writeDouble(14, levyingMultiplier_);
      }
      if (java.lang.Double.doubleToRawLongBits(levyingAudioMultiplier_) != 0) {
        output.writeDouble(15, levyingAudioMultiplier_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(date_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, date_);
      }
      if (highestJudgment_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, highestJudgment_);
      }
      if (higherJudgment_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, higherJudgment_);
      }
      if (highJudgment_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, highJudgment_);
      }
      if (lowJudgment_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, lowJudgment_);
      }
      if (lowerJudgment_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, lowerJudgment_);
      }
      if (lowestJudgment_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, lowestJudgment_);
      }
      for (int i = 0; i < inputs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, inputs_.get(i));
      }
      for (int i = 0; i < multipliers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, multipliers_.get(i));
      }
      for (int i = 0; i < paints_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, paints_.get(i));
      }
      if (loopUnit_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(11, loopUnit_);
      }
      for (int i = 0; i < judgmentMeters_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, judgmentMeters_.get(i));
      }
      for (int i = 0; i < audioMultipliers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, audioMultipliers_.get(i));
      }
      if (java.lang.Double.doubleToRawLongBits(levyingMultiplier_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(14, levyingMultiplier_);
      }
      if (java.lang.Double.doubleToRawLongBits(levyingAudioMultiplier_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(15, levyingAudioMultiplier_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof CommentOuterClass.Comment)) {
        return super.equals(obj);
      }
      CommentOuterClass.Comment other = (CommentOuterClass.Comment) obj;

      if (!getDate()
          .equals(other.getDate())) return false;
      if (getHighestJudgment()
          != other.getHighestJudgment()) return false;
      if (getHigherJudgment()
          != other.getHigherJudgment()) return false;
      if (getHighJudgment()
          != other.getHighJudgment()) return false;
      if (getLowJudgment()
          != other.getLowJudgment()) return false;
      if (getLowerJudgment()
          != other.getLowerJudgment()) return false;
      if (getLowestJudgment()
          != other.getLowestJudgment()) return false;
      if (!getInputsList()
          .equals(other.getInputsList())) return false;
      if (!getMultipliersList()
          .equals(other.getMultipliersList())) return false;
      if (!getPaintsList()
          .equals(other.getPaintsList())) return false;
      if (getLoopUnit()
          != other.getLoopUnit()) return false;
      if (!getJudgmentMetersList()
          .equals(other.getJudgmentMetersList())) return false;
      if (!getAudioMultipliersList()
          .equals(other.getAudioMultipliersList())) return false;
      if (java.lang.Double.doubleToLongBits(getLevyingMultiplier())
          != java.lang.Double.doubleToLongBits(
              other.getLevyingMultiplier())) return false;
      if (java.lang.Double.doubleToLongBits(getLevyingAudioMultiplier())
          != java.lang.Double.doubleToLongBits(
              other.getLevyingAudioMultiplier())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + DATE_FIELD_NUMBER;
      hash = (53 * hash) + getDate().hashCode();
      hash = (37 * hash) + HIGHESTJUDGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getHighestJudgment();
      hash = (37 * hash) + HIGHERJUDGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getHigherJudgment();
      hash = (37 * hash) + HIGHJUDGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getHighJudgment();
      hash = (37 * hash) + LOWJUDGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getLowJudgment();
      hash = (37 * hash) + LOWERJUDGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getLowerJudgment();
      hash = (37 * hash) + LOWESTJUDGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getLowestJudgment();
      if (getInputsCount() > 0) {
        hash = (37 * hash) + INPUTS_FIELD_NUMBER;
        hash = (53 * hash) + getInputsList().hashCode();
      }
      if (getMultipliersCount() > 0) {
        hash = (37 * hash) + MULTIPLIERS_FIELD_NUMBER;
        hash = (53 * hash) + getMultipliersList().hashCode();
      }
      if (getPaintsCount() > 0) {
        hash = (37 * hash) + PAINTS_FIELD_NUMBER;
        hash = (53 * hash) + getPaintsList().hashCode();
      }
      hash = (37 * hash) + LOOPUNIT_FIELD_NUMBER;
      hash = (53 * hash) + getLoopUnit();
      if (getJudgmentMetersCount() > 0) {
        hash = (37 * hash) + JUDGMENTMETERS_FIELD_NUMBER;
        hash = (53 * hash) + getJudgmentMetersList().hashCode();
      }
      if (getAudioMultipliersCount() > 0) {
        hash = (37 * hash) + AUDIOMULTIPLIERS_FIELD_NUMBER;
        hash = (53 * hash) + getAudioMultipliersList().hashCode();
      }
      hash = (37 * hash) + LEVYINGMULTIPLIER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getLevyingMultiplier()));
      hash = (37 * hash) + LEVYINGAUDIOMULTIPLIER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getLevyingAudioMultiplier()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static CommentOuterClass.Comment parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.Comment parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.Comment parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.Comment parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.Comment parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.Comment parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.Comment parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.Comment parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static CommentOuterClass.Comment parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static CommentOuterClass.Comment parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static CommentOuterClass.Comment parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.Comment parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(CommentOuterClass.Comment prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Comment}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:Comment)
        CommentOuterClass.CommentOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return CommentOuterClass.internal_static_Comment_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return CommentOuterClass.internal_static_Comment_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                CommentOuterClass.Comment.class, CommentOuterClass.Comment.Builder.class);
      }

      // Construct using CommentOuterClass.Comment.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        date_ = "";
        highestJudgment_ = 0;
        higherJudgment_ = 0;
        highJudgment_ = 0;
        lowJudgment_ = 0;
        lowerJudgment_ = 0;
        lowestJudgment_ = 0;
        if (inputsBuilder_ == null) {
          inputs_ = java.util.Collections.emptyList();
        } else {
          inputs_ = null;
          inputsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (multipliersBuilder_ == null) {
          multipliers_ = java.util.Collections.emptyList();
        } else {
          multipliers_ = null;
          multipliersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (paintsBuilder_ == null) {
          paints_ = java.util.Collections.emptyList();
        } else {
          paints_ = null;
          paintsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        loopUnit_ = 0;
        if (judgmentMetersBuilder_ == null) {
          judgmentMeters_ = java.util.Collections.emptyList();
        } else {
          judgmentMeters_ = null;
          judgmentMetersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (audioMultipliersBuilder_ == null) {
          audioMultipliers_ = java.util.Collections.emptyList();
        } else {
          audioMultipliers_ = null;
          audioMultipliersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        levyingMultiplier_ = 0D;
        levyingAudioMultiplier_ = 0D;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return CommentOuterClass.internal_static_Comment_descriptor;
      }

      @java.lang.Override
      public CommentOuterClass.Comment getDefaultInstanceForType() {
        return CommentOuterClass.Comment.getDefaultInstance();
      }

      @java.lang.Override
      public CommentOuterClass.Comment build() {
        CommentOuterClass.Comment result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public CommentOuterClass.Comment buildPartial() {
        CommentOuterClass.Comment result = new CommentOuterClass.Comment(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(CommentOuterClass.Comment result) {
        if (inputsBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0)) {
            inputs_ = java.util.Collections.unmodifiableList(inputs_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.inputs_ = inputs_;
        } else {
          result.inputs_ = inputsBuilder_.build();
        }
        if (multipliersBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0)) {
            multipliers_ = java.util.Collections.unmodifiableList(multipliers_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.multipliers_ = multipliers_;
        } else {
          result.multipliers_ = multipliersBuilder_.build();
        }
        if (paintsBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0)) {
            paints_ = java.util.Collections.unmodifiableList(paints_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.paints_ = paints_;
        } else {
          result.paints_ = paintsBuilder_.build();
        }
        if (judgmentMetersBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0)) {
            judgmentMeters_ = java.util.Collections.unmodifiableList(judgmentMeters_);
            bitField0_ = (bitField0_ & ~0x00000800);
          }
          result.judgmentMeters_ = judgmentMeters_;
        } else {
          result.judgmentMeters_ = judgmentMetersBuilder_.build();
        }
        if (audioMultipliersBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0)) {
            audioMultipliers_ = java.util.Collections.unmodifiableList(audioMultipliers_);
            bitField0_ = (bitField0_ & ~0x00001000);
          }
          result.audioMultipliers_ = audioMultipliers_;
        } else {
          result.audioMultipliers_ = audioMultipliersBuilder_.build();
        }
      }

      private void buildPartial0(CommentOuterClass.Comment result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.date_ = date_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.highestJudgment_ = highestJudgment_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.higherJudgment_ = higherJudgment_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.highJudgment_ = highJudgment_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.lowJudgment_ = lowJudgment_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.lowerJudgment_ = lowerJudgment_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.lowestJudgment_ = lowestJudgment_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.loopUnit_ = loopUnit_;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.levyingMultiplier_ = levyingMultiplier_;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.levyingAudioMultiplier_ = levyingAudioMultiplier_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof CommentOuterClass.Comment) {
          return mergeFrom((CommentOuterClass.Comment)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(CommentOuterClass.Comment other) {
        if (other == CommentOuterClass.Comment.getDefaultInstance()) return this;
        if (!other.getDate().isEmpty()) {
          date_ = other.date_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.getHighestJudgment() != 0) {
          setHighestJudgment(other.getHighestJudgment());
        }
        if (other.getHigherJudgment() != 0) {
          setHigherJudgment(other.getHigherJudgment());
        }
        if (other.getHighJudgment() != 0) {
          setHighJudgment(other.getHighJudgment());
        }
        if (other.getLowJudgment() != 0) {
          setLowJudgment(other.getLowJudgment());
        }
        if (other.getLowerJudgment() != 0) {
          setLowerJudgment(other.getLowerJudgment());
        }
        if (other.getLowestJudgment() != 0) {
          setLowestJudgment(other.getLowestJudgment());
        }
        if (inputsBuilder_ == null) {
          if (!other.inputs_.isEmpty()) {
            if (inputs_.isEmpty()) {
              inputs_ = other.inputs_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureInputsIsMutable();
              inputs_.addAll(other.inputs_);
            }
            onChanged();
          }
        } else {
          if (!other.inputs_.isEmpty()) {
            if (inputsBuilder_.isEmpty()) {
              inputsBuilder_.dispose();
              inputsBuilder_ = null;
              inputs_ = other.inputs_;
              bitField0_ = (bitField0_ & ~0x00000080);
              inputsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getInputsFieldBuilder() : null;
            } else {
              inputsBuilder_.addAllMessages(other.inputs_);
            }
          }
        }
        if (multipliersBuilder_ == null) {
          if (!other.multipliers_.isEmpty()) {
            if (multipliers_.isEmpty()) {
              multipliers_ = other.multipliers_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureMultipliersIsMutable();
              multipliers_.addAll(other.multipliers_);
            }
            onChanged();
          }
        } else {
          if (!other.multipliers_.isEmpty()) {
            if (multipliersBuilder_.isEmpty()) {
              multipliersBuilder_.dispose();
              multipliersBuilder_ = null;
              multipliers_ = other.multipliers_;
              bitField0_ = (bitField0_ & ~0x00000100);
              multipliersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getMultipliersFieldBuilder() : null;
            } else {
              multipliersBuilder_.addAllMessages(other.multipliers_);
            }
          }
        }
        if (paintsBuilder_ == null) {
          if (!other.paints_.isEmpty()) {
            if (paints_.isEmpty()) {
              paints_ = other.paints_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensurePaintsIsMutable();
              paints_.addAll(other.paints_);
            }
            onChanged();
          }
        } else {
          if (!other.paints_.isEmpty()) {
            if (paintsBuilder_.isEmpty()) {
              paintsBuilder_.dispose();
              paintsBuilder_ = null;
              paints_ = other.paints_;
              bitField0_ = (bitField0_ & ~0x00000200);
              paintsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPaintsFieldBuilder() : null;
            } else {
              paintsBuilder_.addAllMessages(other.paints_);
            }
          }
        }
        if (other.getLoopUnit() != 0) {
          setLoopUnit(other.getLoopUnit());
        }
        if (judgmentMetersBuilder_ == null) {
          if (!other.judgmentMeters_.isEmpty()) {
            if (judgmentMeters_.isEmpty()) {
              judgmentMeters_ = other.judgmentMeters_;
              bitField0_ = (bitField0_ & ~0x00000800);
            } else {
              ensureJudgmentMetersIsMutable();
              judgmentMeters_.addAll(other.judgmentMeters_);
            }
            onChanged();
          }
        } else {
          if (!other.judgmentMeters_.isEmpty()) {
            if (judgmentMetersBuilder_.isEmpty()) {
              judgmentMetersBuilder_.dispose();
              judgmentMetersBuilder_ = null;
              judgmentMeters_ = other.judgmentMeters_;
              bitField0_ = (bitField0_ & ~0x00000800);
              judgmentMetersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getJudgmentMetersFieldBuilder() : null;
            } else {
              judgmentMetersBuilder_.addAllMessages(other.judgmentMeters_);
            }
          }
        }
        if (audioMultipliersBuilder_ == null) {
          if (!other.audioMultipliers_.isEmpty()) {
            if (audioMultipliers_.isEmpty()) {
              audioMultipliers_ = other.audioMultipliers_;
              bitField0_ = (bitField0_ & ~0x00001000);
            } else {
              ensureAudioMultipliersIsMutable();
              audioMultipliers_.addAll(other.audioMultipliers_);
            }
            onChanged();
          }
        } else {
          if (!other.audioMultipliers_.isEmpty()) {
            if (audioMultipliersBuilder_.isEmpty()) {
              audioMultipliersBuilder_.dispose();
              audioMultipliersBuilder_ = null;
              audioMultipliers_ = other.audioMultipliers_;
              bitField0_ = (bitField0_ & ~0x00001000);
              audioMultipliersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAudioMultipliersFieldBuilder() : null;
            } else {
              audioMultipliersBuilder_.addAllMessages(other.audioMultipliers_);
            }
          }
        }
        if (other.getLevyingMultiplier() != 0D) {
          setLevyingMultiplier(other.getLevyingMultiplier());
        }
        if (other.getLevyingAudioMultiplier() != 0D) {
          setLevyingAudioMultiplier(other.getLevyingAudioMultiplier());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                date_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                highestJudgment_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                higherJudgment_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                highJudgment_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                lowJudgment_ = input.readInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                lowerJudgment_ = input.readInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                lowestJudgment_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 66: {
                CommentOuterClass.InputEvent m =
                    input.readMessage(
                        CommentOuterClass.InputEvent.parser(),
                        extensionRegistry);
                if (inputsBuilder_ == null) {
                  ensureInputsIsMutable();
                  inputs_.add(m);
                } else {
                  inputsBuilder_.addMessage(m);
                }
                break;
              } // case 66
              case 74: {
                CommentOuterClass.MultiplierEvent m =
                    input.readMessage(
                        CommentOuterClass.MultiplierEvent.parser(),
                        extensionRegistry);
                if (multipliersBuilder_ == null) {
                  ensureMultipliersIsMutable();
                  multipliers_.add(m);
                } else {
                  multipliersBuilder_.addMessage(m);
                }
                break;
              } // case 74
              case 82: {
                CommentOuterClass.PaintEvent m =
                    input.readMessage(
                        CommentOuterClass.PaintEvent.parser(),
                        extensionRegistry);
                if (paintsBuilder_ == null) {
                  ensurePaintsIsMutable();
                  paints_.add(m);
                } else {
                  paintsBuilder_.addMessage(m);
                }
                break;
              } // case 82
              case 88: {
                loopUnit_ = input.readInt32();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 98: {
                CommentOuterClass.JudgmentMeterEvent m =
                    input.readMessage(
                        CommentOuterClass.JudgmentMeterEvent.parser(),
                        extensionRegistry);
                if (judgmentMetersBuilder_ == null) {
                  ensureJudgmentMetersIsMutable();
                  judgmentMeters_.add(m);
                } else {
                  judgmentMetersBuilder_.addMessage(m);
                }
                break;
              } // case 98
              case 106: {
                CommentOuterClass.AudioMultiplierEvent m =
                    input.readMessage(
                        CommentOuterClass.AudioMultiplierEvent.parser(),
                        extensionRegistry);
                if (audioMultipliersBuilder_ == null) {
                  ensureAudioMultipliersIsMutable();
                  audioMultipliers_.add(m);
                } else {
                  audioMultipliersBuilder_.addMessage(m);
                }
                break;
              } // case 106
              case 113: {
                levyingMultiplier_ = input.readDouble();
                bitField0_ |= 0x00002000;
                break;
              } // case 113
              case 121: {
                levyingAudioMultiplier_ = input.readDouble();
                bitField0_ |= 0x00004000;
                break;
              } // case 121
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object date_ = "";
      /**
       * <code>string date = 1;</code>
       * @return The date.
       */
      public java.lang.String getDate() {
        java.lang.Object ref = date_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          date_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string date = 1;</code>
       * @return The bytes for date.
       */
      public com.google.protobuf.ByteString
          getDateBytes() {
        java.lang.Object ref = date_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          date_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string date = 1;</code>
       * @param value The date to set.
       * @return This builder for chaining.
       */
      public Builder setDate(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        date_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string date = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDate() {
        date_ = getDefaultInstance().getDate();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string date = 1;</code>
       * @param value The bytes for date to set.
       * @return This builder for chaining.
       */
      public Builder setDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        date_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int highestJudgment_ ;
      /**
       * <code>int32 highestJudgment = 2;</code>
       * @return The highestJudgment.
       */
      @java.lang.Override
      public int getHighestJudgment() {
        return highestJudgment_;
      }
      /**
       * <code>int32 highestJudgment = 2;</code>
       * @param value The highestJudgment to set.
       * @return This builder for chaining.
       */
      public Builder setHighestJudgment(int value) {

        highestJudgment_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 highestJudgment = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearHighestJudgment() {
        bitField0_ = (bitField0_ & ~0x00000002);
        highestJudgment_ = 0;
        onChanged();
        return this;
      }

      private int higherJudgment_ ;
      /**
       * <code>int32 higherJudgment = 3;</code>
       * @return The higherJudgment.
       */
      @java.lang.Override
      public int getHigherJudgment() {
        return higherJudgment_;
      }
      /**
       * <code>int32 higherJudgment = 3;</code>
       * @param value The higherJudgment to set.
       * @return This builder for chaining.
       */
      public Builder setHigherJudgment(int value) {

        higherJudgment_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 higherJudgment = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearHigherJudgment() {
        bitField0_ = (bitField0_ & ~0x00000004);
        higherJudgment_ = 0;
        onChanged();
        return this;
      }

      private int highJudgment_ ;
      /**
       * <code>int32 highJudgment = 4;</code>
       * @return The highJudgment.
       */
      @java.lang.Override
      public int getHighJudgment() {
        return highJudgment_;
      }
      /**
       * <code>int32 highJudgment = 4;</code>
       * @param value The highJudgment to set.
       * @return This builder for chaining.
       */
      public Builder setHighJudgment(int value) {

        highJudgment_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 highJudgment = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHighJudgment() {
        bitField0_ = (bitField0_ & ~0x00000008);
        highJudgment_ = 0;
        onChanged();
        return this;
      }

      private int lowJudgment_ ;
      /**
       * <code>int32 lowJudgment = 5;</code>
       * @return The lowJudgment.
       */
      @java.lang.Override
      public int getLowJudgment() {
        return lowJudgment_;
      }
      /**
       * <code>int32 lowJudgment = 5;</code>
       * @param value The lowJudgment to set.
       * @return This builder for chaining.
       */
      public Builder setLowJudgment(int value) {

        lowJudgment_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>int32 lowJudgment = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLowJudgment() {
        bitField0_ = (bitField0_ & ~0x00000010);
        lowJudgment_ = 0;
        onChanged();
        return this;
      }

      private int lowerJudgment_ ;
      /**
       * <code>int32 lowerJudgment = 6;</code>
       * @return The lowerJudgment.
       */
      @java.lang.Override
      public int getLowerJudgment() {
        return lowerJudgment_;
      }
      /**
       * <code>int32 lowerJudgment = 6;</code>
       * @param value The lowerJudgment to set.
       * @return This builder for chaining.
       */
      public Builder setLowerJudgment(int value) {

        lowerJudgment_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>int32 lowerJudgment = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearLowerJudgment() {
        bitField0_ = (bitField0_ & ~0x00000020);
        lowerJudgment_ = 0;
        onChanged();
        return this;
      }

      private int lowestJudgment_ ;
      /**
       * <code>int32 lowestJudgment = 7;</code>
       * @return The lowestJudgment.
       */
      @java.lang.Override
      public int getLowestJudgment() {
        return lowestJudgment_;
      }
      /**
       * <code>int32 lowestJudgment = 7;</code>
       * @param value The lowestJudgment to set.
       * @return This builder for chaining.
       */
      public Builder setLowestJudgment(int value) {

        lowestJudgment_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>int32 lowestJudgment = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearLowestJudgment() {
        bitField0_ = (bitField0_ & ~0x00000040);
        lowestJudgment_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<CommentOuterClass.InputEvent> inputs_ =
        java.util.Collections.emptyList();
      private void ensureInputsIsMutable() {
        if (!((bitField0_ & 0x00000080) != 0)) {
          inputs_ = new java.util.ArrayList<CommentOuterClass.InputEvent>(inputs_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.InputEvent, CommentOuterClass.InputEvent.Builder, CommentOuterClass.InputEventOrBuilder> inputsBuilder_;

      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public java.util.List<CommentOuterClass.InputEvent> getInputsList() {
        if (inputsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(inputs_);
        } else {
          return inputsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public int getInputsCount() {
        if (inputsBuilder_ == null) {
          return inputs_.size();
        } else {
          return inputsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public CommentOuterClass.InputEvent getInputs(int index) {
        if (inputsBuilder_ == null) {
          return inputs_.get(index);
        } else {
          return inputsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder setInputs(
          int index, CommentOuterClass.InputEvent value) {
        if (inputsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInputsIsMutable();
          inputs_.set(index, value);
          onChanged();
        } else {
          inputsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder setInputs(
          int index, CommentOuterClass.InputEvent.Builder builderForValue) {
        if (inputsBuilder_ == null) {
          ensureInputsIsMutable();
          inputs_.set(index, builderForValue.build());
          onChanged();
        } else {
          inputsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder addInputs(CommentOuterClass.InputEvent value) {
        if (inputsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInputsIsMutable();
          inputs_.add(value);
          onChanged();
        } else {
          inputsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder addInputs(
          int index, CommentOuterClass.InputEvent value) {
        if (inputsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInputsIsMutable();
          inputs_.add(index, value);
          onChanged();
        } else {
          inputsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder addInputs(
          CommentOuterClass.InputEvent.Builder builderForValue) {
        if (inputsBuilder_ == null) {
          ensureInputsIsMutable();
          inputs_.add(builderForValue.build());
          onChanged();
        } else {
          inputsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder addInputs(
          int index, CommentOuterClass.InputEvent.Builder builderForValue) {
        if (inputsBuilder_ == null) {
          ensureInputsIsMutable();
          inputs_.add(index, builderForValue.build());
          onChanged();
        } else {
          inputsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder addAllInputs(
          java.lang.Iterable<? extends CommentOuterClass.InputEvent> values) {
        if (inputsBuilder_ == null) {
          ensureInputsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, inputs_);
          onChanged();
        } else {
          inputsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder clearInputs() {
        if (inputsBuilder_ == null) {
          inputs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          inputsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public Builder removeInputs(int index) {
        if (inputsBuilder_ == null) {
          ensureInputsIsMutable();
          inputs_.remove(index);
          onChanged();
        } else {
          inputsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public CommentOuterClass.InputEvent.Builder getInputsBuilder(
          int index) {
        return getInputsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public CommentOuterClass.InputEventOrBuilder getInputsOrBuilder(
          int index) {
        if (inputsBuilder_ == null) {
          return inputs_.get(index);  } else {
          return inputsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public java.util.List<? extends CommentOuterClass.InputEventOrBuilder> 
           getInputsOrBuilderList() {
        if (inputsBuilder_ != null) {
          return inputsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(inputs_);
        }
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public CommentOuterClass.InputEvent.Builder addInputsBuilder() {
        return getInputsFieldBuilder().addBuilder(
            CommentOuterClass.InputEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public CommentOuterClass.InputEvent.Builder addInputsBuilder(
          int index) {
        return getInputsFieldBuilder().addBuilder(
            index, CommentOuterClass.InputEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .InputEvent inputs = 8;</code>
       */
      public java.util.List<CommentOuterClass.InputEvent.Builder> 
           getInputsBuilderList() {
        return getInputsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.InputEvent, CommentOuterClass.InputEvent.Builder, CommentOuterClass.InputEventOrBuilder> 
          getInputsFieldBuilder() {
        if (inputsBuilder_ == null) {
          inputsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              CommentOuterClass.InputEvent, CommentOuterClass.InputEvent.Builder, CommentOuterClass.InputEventOrBuilder>(
                  inputs_,
                  ((bitField0_ & 0x00000080) != 0),
                  getParentForChildren(),
                  isClean());
          inputs_ = null;
        }
        return inputsBuilder_;
      }

      private java.util.List<CommentOuterClass.MultiplierEvent> multipliers_ =
        java.util.Collections.emptyList();
      private void ensureMultipliersIsMutable() {
        if (!((bitField0_ & 0x00000100) != 0)) {
          multipliers_ = new java.util.ArrayList<CommentOuterClass.MultiplierEvent>(multipliers_);
          bitField0_ |= 0x00000100;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.MultiplierEvent, CommentOuterClass.MultiplierEvent.Builder, CommentOuterClass.MultiplierEventOrBuilder> multipliersBuilder_;

      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public java.util.List<CommentOuterClass.MultiplierEvent> getMultipliersList() {
        if (multipliersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(multipliers_);
        } else {
          return multipliersBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public int getMultipliersCount() {
        if (multipliersBuilder_ == null) {
          return multipliers_.size();
        } else {
          return multipliersBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public CommentOuterClass.MultiplierEvent getMultipliers(int index) {
        if (multipliersBuilder_ == null) {
          return multipliers_.get(index);
        } else {
          return multipliersBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder setMultipliers(
          int index, CommentOuterClass.MultiplierEvent value) {
        if (multipliersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMultipliersIsMutable();
          multipliers_.set(index, value);
          onChanged();
        } else {
          multipliersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder setMultipliers(
          int index, CommentOuterClass.MultiplierEvent.Builder builderForValue) {
        if (multipliersBuilder_ == null) {
          ensureMultipliersIsMutable();
          multipliers_.set(index, builderForValue.build());
          onChanged();
        } else {
          multipliersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder addMultipliers(CommentOuterClass.MultiplierEvent value) {
        if (multipliersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMultipliersIsMutable();
          multipliers_.add(value);
          onChanged();
        } else {
          multipliersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder addMultipliers(
          int index, CommentOuterClass.MultiplierEvent value) {
        if (multipliersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMultipliersIsMutable();
          multipliers_.add(index, value);
          onChanged();
        } else {
          multipliersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder addMultipliers(
          CommentOuterClass.MultiplierEvent.Builder builderForValue) {
        if (multipliersBuilder_ == null) {
          ensureMultipliersIsMutable();
          multipliers_.add(builderForValue.build());
          onChanged();
        } else {
          multipliersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder addMultipliers(
          int index, CommentOuterClass.MultiplierEvent.Builder builderForValue) {
        if (multipliersBuilder_ == null) {
          ensureMultipliersIsMutable();
          multipliers_.add(index, builderForValue.build());
          onChanged();
        } else {
          multipliersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder addAllMultipliers(
          java.lang.Iterable<? extends CommentOuterClass.MultiplierEvent> values) {
        if (multipliersBuilder_ == null) {
          ensureMultipliersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, multipliers_);
          onChanged();
        } else {
          multipliersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder clearMultipliers() {
        if (multipliersBuilder_ == null) {
          multipliers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          multipliersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public Builder removeMultipliers(int index) {
        if (multipliersBuilder_ == null) {
          ensureMultipliersIsMutable();
          multipliers_.remove(index);
          onChanged();
        } else {
          multipliersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public CommentOuterClass.MultiplierEvent.Builder getMultipliersBuilder(
          int index) {
        return getMultipliersFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public CommentOuterClass.MultiplierEventOrBuilder getMultipliersOrBuilder(
          int index) {
        if (multipliersBuilder_ == null) {
          return multipliers_.get(index);  } else {
          return multipliersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public java.util.List<? extends CommentOuterClass.MultiplierEventOrBuilder> 
           getMultipliersOrBuilderList() {
        if (multipliersBuilder_ != null) {
          return multipliersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(multipliers_);
        }
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public CommentOuterClass.MultiplierEvent.Builder addMultipliersBuilder() {
        return getMultipliersFieldBuilder().addBuilder(
            CommentOuterClass.MultiplierEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public CommentOuterClass.MultiplierEvent.Builder addMultipliersBuilder(
          int index) {
        return getMultipliersFieldBuilder().addBuilder(
            index, CommentOuterClass.MultiplierEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .MultiplierEvent multipliers = 9;</code>
       */
      public java.util.List<CommentOuterClass.MultiplierEvent.Builder> 
           getMultipliersBuilderList() {
        return getMultipliersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.MultiplierEvent, CommentOuterClass.MultiplierEvent.Builder, CommentOuterClass.MultiplierEventOrBuilder> 
          getMultipliersFieldBuilder() {
        if (multipliersBuilder_ == null) {
          multipliersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              CommentOuterClass.MultiplierEvent, CommentOuterClass.MultiplierEvent.Builder, CommentOuterClass.MultiplierEventOrBuilder>(
                  multipliers_,
                  ((bitField0_ & 0x00000100) != 0),
                  getParentForChildren(),
                  isClean());
          multipliers_ = null;
        }
        return multipliersBuilder_;
      }

      private java.util.List<CommentOuterClass.PaintEvent> paints_ =
        java.util.Collections.emptyList();
      private void ensurePaintsIsMutable() {
        if (!((bitField0_ & 0x00000200) != 0)) {
          paints_ = new java.util.ArrayList<CommentOuterClass.PaintEvent>(paints_);
          bitField0_ |= 0x00000200;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.PaintEvent, CommentOuterClass.PaintEvent.Builder, CommentOuterClass.PaintEventOrBuilder> paintsBuilder_;

      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public java.util.List<CommentOuterClass.PaintEvent> getPaintsList() {
        if (paintsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(paints_);
        } else {
          return paintsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public int getPaintsCount() {
        if (paintsBuilder_ == null) {
          return paints_.size();
        } else {
          return paintsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public CommentOuterClass.PaintEvent getPaints(int index) {
        if (paintsBuilder_ == null) {
          return paints_.get(index);
        } else {
          return paintsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder setPaints(
          int index, CommentOuterClass.PaintEvent value) {
        if (paintsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePaintsIsMutable();
          paints_.set(index, value);
          onChanged();
        } else {
          paintsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder setPaints(
          int index, CommentOuterClass.PaintEvent.Builder builderForValue) {
        if (paintsBuilder_ == null) {
          ensurePaintsIsMutable();
          paints_.set(index, builderForValue.build());
          onChanged();
        } else {
          paintsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder addPaints(CommentOuterClass.PaintEvent value) {
        if (paintsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePaintsIsMutable();
          paints_.add(value);
          onChanged();
        } else {
          paintsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder addPaints(
          int index, CommentOuterClass.PaintEvent value) {
        if (paintsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePaintsIsMutable();
          paints_.add(index, value);
          onChanged();
        } else {
          paintsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder addPaints(
          CommentOuterClass.PaintEvent.Builder builderForValue) {
        if (paintsBuilder_ == null) {
          ensurePaintsIsMutable();
          paints_.add(builderForValue.build());
          onChanged();
        } else {
          paintsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder addPaints(
          int index, CommentOuterClass.PaintEvent.Builder builderForValue) {
        if (paintsBuilder_ == null) {
          ensurePaintsIsMutable();
          paints_.add(index, builderForValue.build());
          onChanged();
        } else {
          paintsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder addAllPaints(
          java.lang.Iterable<? extends CommentOuterClass.PaintEvent> values) {
        if (paintsBuilder_ == null) {
          ensurePaintsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, paints_);
          onChanged();
        } else {
          paintsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder clearPaints() {
        if (paintsBuilder_ == null) {
          paints_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          paintsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public Builder removePaints(int index) {
        if (paintsBuilder_ == null) {
          ensurePaintsIsMutable();
          paints_.remove(index);
          onChanged();
        } else {
          paintsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public CommentOuterClass.PaintEvent.Builder getPaintsBuilder(
          int index) {
        return getPaintsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public CommentOuterClass.PaintEventOrBuilder getPaintsOrBuilder(
          int index) {
        if (paintsBuilder_ == null) {
          return paints_.get(index);  } else {
          return paintsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public java.util.List<? extends CommentOuterClass.PaintEventOrBuilder> 
           getPaintsOrBuilderList() {
        if (paintsBuilder_ != null) {
          return paintsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(paints_);
        }
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public CommentOuterClass.PaintEvent.Builder addPaintsBuilder() {
        return getPaintsFieldBuilder().addBuilder(
            CommentOuterClass.PaintEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public CommentOuterClass.PaintEvent.Builder addPaintsBuilder(
          int index) {
        return getPaintsFieldBuilder().addBuilder(
            index, CommentOuterClass.PaintEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .PaintEvent paints = 10;</code>
       */
      public java.util.List<CommentOuterClass.PaintEvent.Builder> 
           getPaintsBuilderList() {
        return getPaintsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.PaintEvent, CommentOuterClass.PaintEvent.Builder, CommentOuterClass.PaintEventOrBuilder> 
          getPaintsFieldBuilder() {
        if (paintsBuilder_ == null) {
          paintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              CommentOuterClass.PaintEvent, CommentOuterClass.PaintEvent.Builder, CommentOuterClass.PaintEventOrBuilder>(
                  paints_,
                  ((bitField0_ & 0x00000200) != 0),
                  getParentForChildren(),
                  isClean());
          paints_ = null;
        }
        return paintsBuilder_;
      }

      private int loopUnit_ ;
      /**
       * <code>int32 loopUnit = 11;</code>
       * @return The loopUnit.
       */
      @java.lang.Override
      public int getLoopUnit() {
        return loopUnit_;
      }
      /**
       * <code>int32 loopUnit = 11;</code>
       * @param value The loopUnit to set.
       * @return This builder for chaining.
       */
      public Builder setLoopUnit(int value) {

        loopUnit_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>int32 loopUnit = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoopUnit() {
        bitField0_ = (bitField0_ & ~0x00000400);
        loopUnit_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<CommentOuterClass.JudgmentMeterEvent> judgmentMeters_ =
        java.util.Collections.emptyList();
      private void ensureJudgmentMetersIsMutable() {
        if (!((bitField0_ & 0x00000800) != 0)) {
          judgmentMeters_ = new java.util.ArrayList<CommentOuterClass.JudgmentMeterEvent>(judgmentMeters_);
          bitField0_ |= 0x00000800;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.JudgmentMeterEvent, CommentOuterClass.JudgmentMeterEvent.Builder, CommentOuterClass.JudgmentMeterEventOrBuilder> judgmentMetersBuilder_;

      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public java.util.List<CommentOuterClass.JudgmentMeterEvent> getJudgmentMetersList() {
        if (judgmentMetersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(judgmentMeters_);
        } else {
          return judgmentMetersBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public int getJudgmentMetersCount() {
        if (judgmentMetersBuilder_ == null) {
          return judgmentMeters_.size();
        } else {
          return judgmentMetersBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public CommentOuterClass.JudgmentMeterEvent getJudgmentMeters(int index) {
        if (judgmentMetersBuilder_ == null) {
          return judgmentMeters_.get(index);
        } else {
          return judgmentMetersBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder setJudgmentMeters(
          int index, CommentOuterClass.JudgmentMeterEvent value) {
        if (judgmentMetersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJudgmentMetersIsMutable();
          judgmentMeters_.set(index, value);
          onChanged();
        } else {
          judgmentMetersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder setJudgmentMeters(
          int index, CommentOuterClass.JudgmentMeterEvent.Builder builderForValue) {
        if (judgmentMetersBuilder_ == null) {
          ensureJudgmentMetersIsMutable();
          judgmentMeters_.set(index, builderForValue.build());
          onChanged();
        } else {
          judgmentMetersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder addJudgmentMeters(CommentOuterClass.JudgmentMeterEvent value) {
        if (judgmentMetersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJudgmentMetersIsMutable();
          judgmentMeters_.add(value);
          onChanged();
        } else {
          judgmentMetersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder addJudgmentMeters(
          int index, CommentOuterClass.JudgmentMeterEvent value) {
        if (judgmentMetersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJudgmentMetersIsMutable();
          judgmentMeters_.add(index, value);
          onChanged();
        } else {
          judgmentMetersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder addJudgmentMeters(
          CommentOuterClass.JudgmentMeterEvent.Builder builderForValue) {
        if (judgmentMetersBuilder_ == null) {
          ensureJudgmentMetersIsMutable();
          judgmentMeters_.add(builderForValue.build());
          onChanged();
        } else {
          judgmentMetersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder addJudgmentMeters(
          int index, CommentOuterClass.JudgmentMeterEvent.Builder builderForValue) {
        if (judgmentMetersBuilder_ == null) {
          ensureJudgmentMetersIsMutable();
          judgmentMeters_.add(index, builderForValue.build());
          onChanged();
        } else {
          judgmentMetersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder addAllJudgmentMeters(
          java.lang.Iterable<? extends CommentOuterClass.JudgmentMeterEvent> values) {
        if (judgmentMetersBuilder_ == null) {
          ensureJudgmentMetersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, judgmentMeters_);
          onChanged();
        } else {
          judgmentMetersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder clearJudgmentMeters() {
        if (judgmentMetersBuilder_ == null) {
          judgmentMeters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000800);
          onChanged();
        } else {
          judgmentMetersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public Builder removeJudgmentMeters(int index) {
        if (judgmentMetersBuilder_ == null) {
          ensureJudgmentMetersIsMutable();
          judgmentMeters_.remove(index);
          onChanged();
        } else {
          judgmentMetersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public CommentOuterClass.JudgmentMeterEvent.Builder getJudgmentMetersBuilder(
          int index) {
        return getJudgmentMetersFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public CommentOuterClass.JudgmentMeterEventOrBuilder getJudgmentMetersOrBuilder(
          int index) {
        if (judgmentMetersBuilder_ == null) {
          return judgmentMeters_.get(index);  } else {
          return judgmentMetersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public java.util.List<? extends CommentOuterClass.JudgmentMeterEventOrBuilder> 
           getJudgmentMetersOrBuilderList() {
        if (judgmentMetersBuilder_ != null) {
          return judgmentMetersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(judgmentMeters_);
        }
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public CommentOuterClass.JudgmentMeterEvent.Builder addJudgmentMetersBuilder() {
        return getJudgmentMetersFieldBuilder().addBuilder(
            CommentOuterClass.JudgmentMeterEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public CommentOuterClass.JudgmentMeterEvent.Builder addJudgmentMetersBuilder(
          int index) {
        return getJudgmentMetersFieldBuilder().addBuilder(
            index, CommentOuterClass.JudgmentMeterEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .JudgmentMeterEvent judgmentMeters = 12;</code>
       */
      public java.util.List<CommentOuterClass.JudgmentMeterEvent.Builder> 
           getJudgmentMetersBuilderList() {
        return getJudgmentMetersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.JudgmentMeterEvent, CommentOuterClass.JudgmentMeterEvent.Builder, CommentOuterClass.JudgmentMeterEventOrBuilder> 
          getJudgmentMetersFieldBuilder() {
        if (judgmentMetersBuilder_ == null) {
          judgmentMetersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              CommentOuterClass.JudgmentMeterEvent, CommentOuterClass.JudgmentMeterEvent.Builder, CommentOuterClass.JudgmentMeterEventOrBuilder>(
                  judgmentMeters_,
                  ((bitField0_ & 0x00000800) != 0),
                  getParentForChildren(),
                  isClean());
          judgmentMeters_ = null;
        }
        return judgmentMetersBuilder_;
      }

      private java.util.List<CommentOuterClass.AudioMultiplierEvent> audioMultipliers_ =
        java.util.Collections.emptyList();
      private void ensureAudioMultipliersIsMutable() {
        if (!((bitField0_ & 0x00001000) != 0)) {
          audioMultipliers_ = new java.util.ArrayList<CommentOuterClass.AudioMultiplierEvent>(audioMultipliers_);
          bitField0_ |= 0x00001000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.AudioMultiplierEvent, CommentOuterClass.AudioMultiplierEvent.Builder, CommentOuterClass.AudioMultiplierEventOrBuilder> audioMultipliersBuilder_;

      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public java.util.List<CommentOuterClass.AudioMultiplierEvent> getAudioMultipliersList() {
        if (audioMultipliersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(audioMultipliers_);
        } else {
          return audioMultipliersBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public int getAudioMultipliersCount() {
        if (audioMultipliersBuilder_ == null) {
          return audioMultipliers_.size();
        } else {
          return audioMultipliersBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public CommentOuterClass.AudioMultiplierEvent getAudioMultipliers(int index) {
        if (audioMultipliersBuilder_ == null) {
          return audioMultipliers_.get(index);
        } else {
          return audioMultipliersBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder setAudioMultipliers(
          int index, CommentOuterClass.AudioMultiplierEvent value) {
        if (audioMultipliersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAudioMultipliersIsMutable();
          audioMultipliers_.set(index, value);
          onChanged();
        } else {
          audioMultipliersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder setAudioMultipliers(
          int index, CommentOuterClass.AudioMultiplierEvent.Builder builderForValue) {
        if (audioMultipliersBuilder_ == null) {
          ensureAudioMultipliersIsMutable();
          audioMultipliers_.set(index, builderForValue.build());
          onChanged();
        } else {
          audioMultipliersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder addAudioMultipliers(CommentOuterClass.AudioMultiplierEvent value) {
        if (audioMultipliersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAudioMultipliersIsMutable();
          audioMultipliers_.add(value);
          onChanged();
        } else {
          audioMultipliersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder addAudioMultipliers(
          int index, CommentOuterClass.AudioMultiplierEvent value) {
        if (audioMultipliersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAudioMultipliersIsMutable();
          audioMultipliers_.add(index, value);
          onChanged();
        } else {
          audioMultipliersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder addAudioMultipliers(
          CommentOuterClass.AudioMultiplierEvent.Builder builderForValue) {
        if (audioMultipliersBuilder_ == null) {
          ensureAudioMultipliersIsMutable();
          audioMultipliers_.add(builderForValue.build());
          onChanged();
        } else {
          audioMultipliersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder addAudioMultipliers(
          int index, CommentOuterClass.AudioMultiplierEvent.Builder builderForValue) {
        if (audioMultipliersBuilder_ == null) {
          ensureAudioMultipliersIsMutable();
          audioMultipliers_.add(index, builderForValue.build());
          onChanged();
        } else {
          audioMultipliersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder addAllAudioMultipliers(
          java.lang.Iterable<? extends CommentOuterClass.AudioMultiplierEvent> values) {
        if (audioMultipliersBuilder_ == null) {
          ensureAudioMultipliersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, audioMultipliers_);
          onChanged();
        } else {
          audioMultipliersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder clearAudioMultipliers() {
        if (audioMultipliersBuilder_ == null) {
          audioMultipliers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00001000);
          onChanged();
        } else {
          audioMultipliersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public Builder removeAudioMultipliers(int index) {
        if (audioMultipliersBuilder_ == null) {
          ensureAudioMultipliersIsMutable();
          audioMultipliers_.remove(index);
          onChanged();
        } else {
          audioMultipliersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public CommentOuterClass.AudioMultiplierEvent.Builder getAudioMultipliersBuilder(
          int index) {
        return getAudioMultipliersFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public CommentOuterClass.AudioMultiplierEventOrBuilder getAudioMultipliersOrBuilder(
          int index) {
        if (audioMultipliersBuilder_ == null) {
          return audioMultipliers_.get(index);  } else {
          return audioMultipliersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public java.util.List<? extends CommentOuterClass.AudioMultiplierEventOrBuilder> 
           getAudioMultipliersOrBuilderList() {
        if (audioMultipliersBuilder_ != null) {
          return audioMultipliersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(audioMultipliers_);
        }
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public CommentOuterClass.AudioMultiplierEvent.Builder addAudioMultipliersBuilder() {
        return getAudioMultipliersFieldBuilder().addBuilder(
            CommentOuterClass.AudioMultiplierEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public CommentOuterClass.AudioMultiplierEvent.Builder addAudioMultipliersBuilder(
          int index) {
        return getAudioMultipliersFieldBuilder().addBuilder(
            index, CommentOuterClass.AudioMultiplierEvent.getDefaultInstance());
      }
      /**
       * <code>repeated .AudioMultiplierEvent audioMultipliers = 13;</code>
       */
      public java.util.List<CommentOuterClass.AudioMultiplierEvent.Builder> 
           getAudioMultipliersBuilderList() {
        return getAudioMultipliersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          CommentOuterClass.AudioMultiplierEvent, CommentOuterClass.AudioMultiplierEvent.Builder, CommentOuterClass.AudioMultiplierEventOrBuilder> 
          getAudioMultipliersFieldBuilder() {
        if (audioMultipliersBuilder_ == null) {
          audioMultipliersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              CommentOuterClass.AudioMultiplierEvent, CommentOuterClass.AudioMultiplierEvent.Builder, CommentOuterClass.AudioMultiplierEventOrBuilder>(
                  audioMultipliers_,
                  ((bitField0_ & 0x00001000) != 0),
                  getParentForChildren(),
                  isClean());
          audioMultipliers_ = null;
        }
        return audioMultipliersBuilder_;
      }

      private double levyingMultiplier_ ;
      /**
       * <code>double levyingMultiplier = 14;</code>
       * @return The levyingMultiplier.
       */
      @java.lang.Override
      public double getLevyingMultiplier() {
        return levyingMultiplier_;
      }
      /**
       * <code>double levyingMultiplier = 14;</code>
       * @param value The levyingMultiplier to set.
       * @return This builder for chaining.
       */
      public Builder setLevyingMultiplier(double value) {

        levyingMultiplier_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>double levyingMultiplier = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevyingMultiplier() {
        bitField0_ = (bitField0_ & ~0x00002000);
        levyingMultiplier_ = 0D;
        onChanged();
        return this;
      }

      private double levyingAudioMultiplier_ ;
      /**
       * <code>double levyingAudioMultiplier = 15;</code>
       * @return The levyingAudioMultiplier.
       */
      @java.lang.Override
      public double getLevyingAudioMultiplier() {
        return levyingAudioMultiplier_;
      }
      /**
       * <code>double levyingAudioMultiplier = 15;</code>
       * @param value The levyingAudioMultiplier to set.
       * @return This builder for chaining.
       */
      public Builder setLevyingAudioMultiplier(double value) {

        levyingAudioMultiplier_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>double levyingAudioMultiplier = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearLevyingAudioMultiplier() {
        bitField0_ = (bitField0_ & ~0x00004000);
        levyingAudioMultiplier_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Comment)
    }

    // @@protoc_insertion_point(class_scope:Comment)
    private static final CommentOuterClass.Comment DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new CommentOuterClass.Comment();
    }

    public static CommentOuterClass.Comment getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Comment>
        PARSER = new com.google.protobuf.AbstractParser<Comment>() {
      @java.lang.Override
      public Comment parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<Comment> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Comment> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public CommentOuterClass.Comment getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface InputEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:InputEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 input = 1;</code>
     * @return The input.
     */
    int getInput();

    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    double getWait();

    /**
     * <code>int32 noteID = 3;</code>
     * @return The noteID.
     */
    int getNoteID();

    /**
     * <code>int32 judged = 4;</code>
     * @return The judged.
     */
    int getJudged();
  }
  /**
   * Protobuf type {@code InputEvent}
   */
  public static final class InputEvent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:InputEvent)
      InputEventOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InputEvent.newBuilder() to construct.
    private InputEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InputEvent() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new InputEvent();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return CommentOuterClass.internal_static_InputEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return CommentOuterClass.internal_static_InputEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              CommentOuterClass.InputEvent.class, CommentOuterClass.InputEvent.Builder.class);
    }

    public static final int INPUT_FIELD_NUMBER = 1;
    private int input_ = 0;
    /**
     * <code>int32 input = 1;</code>
     * @return The input.
     */
    @java.lang.Override
    public int getInput() {
      return input_;
    }

    public static final int WAIT_FIELD_NUMBER = 2;
    private double wait_ = 0D;
    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    @java.lang.Override
    public double getWait() {
      return wait_;
    }

    public static final int NOTEID_FIELD_NUMBER = 3;
    private int noteID_ = 0;
    /**
     * <code>int32 noteID = 3;</code>
     * @return The noteID.
     */
    @java.lang.Override
    public int getNoteID() {
      return noteID_;
    }

    public static final int JUDGED_FIELD_NUMBER = 4;
    private int judged_ = 0;
    /**
     * <code>int32 judged = 4;</code>
     * @return The judged.
     */
    @java.lang.Override
    public int getJudged() {
      return judged_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (input_ != 0) {
        output.writeInt32(1, input_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        output.writeDouble(2, wait_);
      }
      if (noteID_ != 0) {
        output.writeInt32(3, noteID_);
      }
      if (judged_ != 0) {
        output.writeInt32(4, judged_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (input_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, input_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, wait_);
      }
      if (noteID_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, noteID_);
      }
      if (judged_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, judged_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof CommentOuterClass.InputEvent)) {
        return super.equals(obj);
      }
      CommentOuterClass.InputEvent other = (CommentOuterClass.InputEvent) obj;

      if (getInput()
          != other.getInput()) return false;
      if (java.lang.Double.doubleToLongBits(getWait())
          != java.lang.Double.doubleToLongBits(
              other.getWait())) return false;
      if (getNoteID()
          != other.getNoteID()) return false;
      if (getJudged()
          != other.getJudged()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INPUT_FIELD_NUMBER;
      hash = (53 * hash) + getInput();
      hash = (37 * hash) + WAIT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWait()));
      hash = (37 * hash) + NOTEID_FIELD_NUMBER;
      hash = (53 * hash) + getNoteID();
      hash = (37 * hash) + JUDGED_FIELD_NUMBER;
      hash = (53 * hash) + getJudged();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static CommentOuterClass.InputEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.InputEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.InputEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.InputEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.InputEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.InputEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.InputEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.InputEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static CommentOuterClass.InputEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static CommentOuterClass.InputEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static CommentOuterClass.InputEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.InputEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(CommentOuterClass.InputEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code InputEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:InputEvent)
        CommentOuterClass.InputEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return CommentOuterClass.internal_static_InputEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return CommentOuterClass.internal_static_InputEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                CommentOuterClass.InputEvent.class, CommentOuterClass.InputEvent.Builder.class);
      }

      // Construct using CommentOuterClass.InputEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        input_ = 0;
        wait_ = 0D;
        noteID_ = 0;
        judged_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return CommentOuterClass.internal_static_InputEvent_descriptor;
      }

      @java.lang.Override
      public CommentOuterClass.InputEvent getDefaultInstanceForType() {
        return CommentOuterClass.InputEvent.getDefaultInstance();
      }

      @java.lang.Override
      public CommentOuterClass.InputEvent build() {
        CommentOuterClass.InputEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public CommentOuterClass.InputEvent buildPartial() {
        CommentOuterClass.InputEvent result = new CommentOuterClass.InputEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(CommentOuterClass.InputEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.input_ = input_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.wait_ = wait_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.noteID_ = noteID_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.judged_ = judged_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof CommentOuterClass.InputEvent) {
          return mergeFrom((CommentOuterClass.InputEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(CommentOuterClass.InputEvent other) {
        if (other == CommentOuterClass.InputEvent.getDefaultInstance()) return this;
        if (other.getInput() != 0) {
          setInput(other.getInput());
        }
        if (other.getWait() != 0D) {
          setWait(other.getWait());
        }
        if (other.getNoteID() != 0) {
          setNoteID(other.getNoteID());
        }
        if (other.getJudged() != 0) {
          setJudged(other.getJudged());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                input_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 17: {
                wait_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 24: {
                noteID_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                judged_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int input_ ;
      /**
       * <code>int32 input = 1;</code>
       * @return The input.
       */
      @java.lang.Override
      public int getInput() {
        return input_;
      }
      /**
       * <code>int32 input = 1;</code>
       * @param value The input to set.
       * @return This builder for chaining.
       */
      public Builder setInput(int value) {

        input_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int32 input = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearInput() {
        bitField0_ = (bitField0_ & ~0x00000001);
        input_ = 0;
        onChanged();
        return this;
      }

      private double wait_ ;
      /**
       * <code>double wait = 2;</code>
       * @return The wait.
       */
      @java.lang.Override
      public double getWait() {
        return wait_;
      }
      /**
       * <code>double wait = 2;</code>
       * @param value The wait to set.
       * @return This builder for chaining.
       */
      public Builder setWait(double value) {

        wait_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>double wait = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearWait() {
        bitField0_ = (bitField0_ & ~0x00000002);
        wait_ = 0D;
        onChanged();
        return this;
      }

      private int noteID_ ;
      /**
       * <code>int32 noteID = 3;</code>
       * @return The noteID.
       */
      @java.lang.Override
      public int getNoteID() {
        return noteID_;
      }
      /**
       * <code>int32 noteID = 3;</code>
       * @param value The noteID to set.
       * @return This builder for chaining.
       */
      public Builder setNoteID(int value) {

        noteID_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 noteID = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNoteID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        noteID_ = 0;
        onChanged();
        return this;
      }

      private int judged_ ;
      /**
       * <code>int32 judged = 4;</code>
       * @return The judged.
       */
      @java.lang.Override
      public int getJudged() {
        return judged_;
      }
      /**
       * <code>int32 judged = 4;</code>
       * @param value The judged to set.
       * @return This builder for chaining.
       */
      public Builder setJudged(int value) {

        judged_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int32 judged = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearJudged() {
        bitField0_ = (bitField0_ & ~0x00000008);
        judged_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:InputEvent)
    }

    // @@protoc_insertion_point(class_scope:InputEvent)
    private static final CommentOuterClass.InputEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new CommentOuterClass.InputEvent();
    }

    public static CommentOuterClass.InputEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<InputEvent>
        PARSER = new com.google.protobuf.AbstractParser<InputEvent>() {
      @java.lang.Override
      public InputEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<InputEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<InputEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public CommentOuterClass.InputEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MultiplierEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:MultiplierEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double multiplier = 1;</code>
     * @return The multiplier.
     */
    double getMultiplier();

    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    double getWait();

    /**
     * <code>bool isAutoEvent = 3;</code>
     * @return The isAutoEvent.
     */
    boolean getIsAutoEvent();
  }
  /**
   * Protobuf type {@code MultiplierEvent}
   */
  public static final class MultiplierEvent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MultiplierEvent)
      MultiplierEventOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MultiplierEvent.newBuilder() to construct.
    private MultiplierEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MultiplierEvent() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MultiplierEvent();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return CommentOuterClass.internal_static_MultiplierEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return CommentOuterClass.internal_static_MultiplierEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              CommentOuterClass.MultiplierEvent.class, CommentOuterClass.MultiplierEvent.Builder.class);
    }

    public static final int MULTIPLIER_FIELD_NUMBER = 1;
    private double multiplier_ = 0D;
    /**
     * <code>double multiplier = 1;</code>
     * @return The multiplier.
     */
    @java.lang.Override
    public double getMultiplier() {
      return multiplier_;
    }

    public static final int WAIT_FIELD_NUMBER = 2;
    private double wait_ = 0D;
    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    @java.lang.Override
    public double getWait() {
      return wait_;
    }

    public static final int ISAUTOEVENT_FIELD_NUMBER = 3;
    private boolean isAutoEvent_ = false;
    /**
     * <code>bool isAutoEvent = 3;</code>
     * @return The isAutoEvent.
     */
    @java.lang.Override
    public boolean getIsAutoEvent() {
      return isAutoEvent_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(multiplier_) != 0) {
        output.writeDouble(1, multiplier_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        output.writeDouble(2, wait_);
      }
      if (isAutoEvent_ != false) {
        output.writeBool(3, isAutoEvent_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(multiplier_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, multiplier_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, wait_);
      }
      if (isAutoEvent_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isAutoEvent_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof CommentOuterClass.MultiplierEvent)) {
        return super.equals(obj);
      }
      CommentOuterClass.MultiplierEvent other = (CommentOuterClass.MultiplierEvent) obj;

      if (java.lang.Double.doubleToLongBits(getMultiplier())
          != java.lang.Double.doubleToLongBits(
              other.getMultiplier())) return false;
      if (java.lang.Double.doubleToLongBits(getWait())
          != java.lang.Double.doubleToLongBits(
              other.getWait())) return false;
      if (getIsAutoEvent()
          != other.getIsAutoEvent()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MULTIPLIER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getMultiplier()));
      hash = (37 * hash) + WAIT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWait()));
      hash = (37 * hash) + ISAUTOEVENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsAutoEvent());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static CommentOuterClass.MultiplierEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static CommentOuterClass.MultiplierEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static CommentOuterClass.MultiplierEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.MultiplierEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(CommentOuterClass.MultiplierEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MultiplierEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:MultiplierEvent)
        CommentOuterClass.MultiplierEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return CommentOuterClass.internal_static_MultiplierEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return CommentOuterClass.internal_static_MultiplierEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                CommentOuterClass.MultiplierEvent.class, CommentOuterClass.MultiplierEvent.Builder.class);
      }

      // Construct using CommentOuterClass.MultiplierEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        multiplier_ = 0D;
        wait_ = 0D;
        isAutoEvent_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return CommentOuterClass.internal_static_MultiplierEvent_descriptor;
      }

      @java.lang.Override
      public CommentOuterClass.MultiplierEvent getDefaultInstanceForType() {
        return CommentOuterClass.MultiplierEvent.getDefaultInstance();
      }

      @java.lang.Override
      public CommentOuterClass.MultiplierEvent build() {
        CommentOuterClass.MultiplierEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public CommentOuterClass.MultiplierEvent buildPartial() {
        CommentOuterClass.MultiplierEvent result = new CommentOuterClass.MultiplierEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(CommentOuterClass.MultiplierEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.multiplier_ = multiplier_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.wait_ = wait_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.isAutoEvent_ = isAutoEvent_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof CommentOuterClass.MultiplierEvent) {
          return mergeFrom((CommentOuterClass.MultiplierEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(CommentOuterClass.MultiplierEvent other) {
        if (other == CommentOuterClass.MultiplierEvent.getDefaultInstance()) return this;
        if (other.getMultiplier() != 0D) {
          setMultiplier(other.getMultiplier());
        }
        if (other.getWait() != 0D) {
          setWait(other.getWait());
        }
        if (other.getIsAutoEvent() != false) {
          setIsAutoEvent(other.getIsAutoEvent());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                multiplier_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                wait_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 24: {
                isAutoEvent_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double multiplier_ ;
      /**
       * <code>double multiplier = 1;</code>
       * @return The multiplier.
       */
      @java.lang.Override
      public double getMultiplier() {
        return multiplier_;
      }
      /**
       * <code>double multiplier = 1;</code>
       * @param value The multiplier to set.
       * @return This builder for chaining.
       */
      public Builder setMultiplier(double value) {

        multiplier_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>double multiplier = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMultiplier() {
        bitField0_ = (bitField0_ & ~0x00000001);
        multiplier_ = 0D;
        onChanged();
        return this;
      }

      private double wait_ ;
      /**
       * <code>double wait = 2;</code>
       * @return The wait.
       */
      @java.lang.Override
      public double getWait() {
        return wait_;
      }
      /**
       * <code>double wait = 2;</code>
       * @param value The wait to set.
       * @return This builder for chaining.
       */
      public Builder setWait(double value) {

        wait_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>double wait = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearWait() {
        bitField0_ = (bitField0_ & ~0x00000002);
        wait_ = 0D;
        onChanged();
        return this;
      }

      private boolean isAutoEvent_ ;
      /**
       * <code>bool isAutoEvent = 3;</code>
       * @return The isAutoEvent.
       */
      @java.lang.Override
      public boolean getIsAutoEvent() {
        return isAutoEvent_;
      }
      /**
       * <code>bool isAutoEvent = 3;</code>
       * @param value The isAutoEvent to set.
       * @return This builder for chaining.
       */
      public Builder setIsAutoEvent(boolean value) {

        isAutoEvent_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>bool isAutoEvent = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsAutoEvent() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isAutoEvent_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:MultiplierEvent)
    }

    // @@protoc_insertion_point(class_scope:MultiplierEvent)
    private static final CommentOuterClass.MultiplierEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new CommentOuterClass.MultiplierEvent();
    }

    public static CommentOuterClass.MultiplierEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<MultiplierEvent>
        PARSER = new com.google.protobuf.AbstractParser<MultiplierEvent>() {
      @java.lang.Override
      public MultiplierEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<MultiplierEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<MultiplierEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public CommentOuterClass.MultiplierEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JudgmentMeterEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:JudgmentMeterEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double judgmentMeter = 1;</code>
     * @return The judgmentMeter.
     */
    double getJudgmentMeter();

    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    double getWait();

    /**
     * <code>int32 assist = 3;</code>
     * @return The assist.
     */
    int getAssist();
  }
  /**
   * Protobuf type {@code JudgmentMeterEvent}
   */
  public static final class JudgmentMeterEvent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:JudgmentMeterEvent)
      JudgmentMeterEventOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JudgmentMeterEvent.newBuilder() to construct.
    private JudgmentMeterEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JudgmentMeterEvent() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JudgmentMeterEvent();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return CommentOuterClass.internal_static_JudgmentMeterEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return CommentOuterClass.internal_static_JudgmentMeterEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              CommentOuterClass.JudgmentMeterEvent.class, CommentOuterClass.JudgmentMeterEvent.Builder.class);
    }

    public static final int JUDGMENTMETER_FIELD_NUMBER = 1;
    private double judgmentMeter_ = 0D;
    /**
     * <code>double judgmentMeter = 1;</code>
     * @return The judgmentMeter.
     */
    @java.lang.Override
    public double getJudgmentMeter() {
      return judgmentMeter_;
    }

    public static final int WAIT_FIELD_NUMBER = 2;
    private double wait_ = 0D;
    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    @java.lang.Override
    public double getWait() {
      return wait_;
    }

    public static final int ASSIST_FIELD_NUMBER = 3;
    private int assist_ = 0;
    /**
     * <code>int32 assist = 3;</code>
     * @return The assist.
     */
    @java.lang.Override
    public int getAssist() {
      return assist_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(judgmentMeter_) != 0) {
        output.writeDouble(1, judgmentMeter_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        output.writeDouble(2, wait_);
      }
      if (assist_ != 0) {
        output.writeInt32(3, assist_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(judgmentMeter_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, judgmentMeter_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, wait_);
      }
      if (assist_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, assist_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof CommentOuterClass.JudgmentMeterEvent)) {
        return super.equals(obj);
      }
      CommentOuterClass.JudgmentMeterEvent other = (CommentOuterClass.JudgmentMeterEvent) obj;

      if (java.lang.Double.doubleToLongBits(getJudgmentMeter())
          != java.lang.Double.doubleToLongBits(
              other.getJudgmentMeter())) return false;
      if (java.lang.Double.doubleToLongBits(getWait())
          != java.lang.Double.doubleToLongBits(
              other.getWait())) return false;
      if (getAssist()
          != other.getAssist()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + JUDGMENTMETER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getJudgmentMeter()));
      hash = (37 * hash) + WAIT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWait()));
      hash = (37 * hash) + ASSIST_FIELD_NUMBER;
      hash = (53 * hash) + getAssist();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static CommentOuterClass.JudgmentMeterEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static CommentOuterClass.JudgmentMeterEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.JudgmentMeterEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(CommentOuterClass.JudgmentMeterEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code JudgmentMeterEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:JudgmentMeterEvent)
        CommentOuterClass.JudgmentMeterEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return CommentOuterClass.internal_static_JudgmentMeterEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return CommentOuterClass.internal_static_JudgmentMeterEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                CommentOuterClass.JudgmentMeterEvent.class, CommentOuterClass.JudgmentMeterEvent.Builder.class);
      }

      // Construct using CommentOuterClass.JudgmentMeterEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        judgmentMeter_ = 0D;
        wait_ = 0D;
        assist_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return CommentOuterClass.internal_static_JudgmentMeterEvent_descriptor;
      }

      @java.lang.Override
      public CommentOuterClass.JudgmentMeterEvent getDefaultInstanceForType() {
        return CommentOuterClass.JudgmentMeterEvent.getDefaultInstance();
      }

      @java.lang.Override
      public CommentOuterClass.JudgmentMeterEvent build() {
        CommentOuterClass.JudgmentMeterEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public CommentOuterClass.JudgmentMeterEvent buildPartial() {
        CommentOuterClass.JudgmentMeterEvent result = new CommentOuterClass.JudgmentMeterEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(CommentOuterClass.JudgmentMeterEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.judgmentMeter_ = judgmentMeter_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.wait_ = wait_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.assist_ = assist_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof CommentOuterClass.JudgmentMeterEvent) {
          return mergeFrom((CommentOuterClass.JudgmentMeterEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(CommentOuterClass.JudgmentMeterEvent other) {
        if (other == CommentOuterClass.JudgmentMeterEvent.getDefaultInstance()) return this;
        if (other.getJudgmentMeter() != 0D) {
          setJudgmentMeter(other.getJudgmentMeter());
        }
        if (other.getWait() != 0D) {
          setWait(other.getWait());
        }
        if (other.getAssist() != 0) {
          setAssist(other.getAssist());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                judgmentMeter_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                wait_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              case 24: {
                assist_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double judgmentMeter_ ;
      /**
       * <code>double judgmentMeter = 1;</code>
       * @return The judgmentMeter.
       */
      @java.lang.Override
      public double getJudgmentMeter() {
        return judgmentMeter_;
      }
      /**
       * <code>double judgmentMeter = 1;</code>
       * @param value The judgmentMeter to set.
       * @return This builder for chaining.
       */
      public Builder setJudgmentMeter(double value) {

        judgmentMeter_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>double judgmentMeter = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearJudgmentMeter() {
        bitField0_ = (bitField0_ & ~0x00000001);
        judgmentMeter_ = 0D;
        onChanged();
        return this;
      }

      private double wait_ ;
      /**
       * <code>double wait = 2;</code>
       * @return The wait.
       */
      @java.lang.Override
      public double getWait() {
        return wait_;
      }
      /**
       * <code>double wait = 2;</code>
       * @param value The wait to set.
       * @return This builder for chaining.
       */
      public Builder setWait(double value) {

        wait_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>double wait = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearWait() {
        bitField0_ = (bitField0_ & ~0x00000002);
        wait_ = 0D;
        onChanged();
        return this;
      }

      private int assist_ ;
      /**
       * <code>int32 assist = 3;</code>
       * @return The assist.
       */
      @java.lang.Override
      public int getAssist() {
        return assist_;
      }
      /**
       * <code>int32 assist = 3;</code>
       * @param value The assist to set.
       * @return This builder for chaining.
       */
      public Builder setAssist(int value) {

        assist_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 assist = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAssist() {
        bitField0_ = (bitField0_ & ~0x00000004);
        assist_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:JudgmentMeterEvent)
    }

    // @@protoc_insertion_point(class_scope:JudgmentMeterEvent)
    private static final CommentOuterClass.JudgmentMeterEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new CommentOuterClass.JudgmentMeterEvent();
    }

    public static CommentOuterClass.JudgmentMeterEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<JudgmentMeterEvent>
        PARSER = new com.google.protobuf.AbstractParser<JudgmentMeterEvent>() {
      @java.lang.Override
      public JudgmentMeterEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JudgmentMeterEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<JudgmentMeterEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public CommentOuterClass.JudgmentMeterEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PaintEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PaintEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double hitPoints = 1;</code>
     * @return The hitPoints.
     */
    double getHitPoints();

    /**
     * <code>int32 stand = 2;</code>
     * @return The stand.
     */
    int getStand();

    /**
     * <code>int32 band = 3;</code>
     * @return The band.
     */
    int getBand();

    /**
     * <code>double point = 4;</code>
     * @return The point.
     */
    double getPoint();

    /**
     * <code>double wait = 5;</code>
     * @return The wait.
     */
    double getWait();
  }
  /**
   * Protobuf type {@code PaintEvent}
   */
  public static final class PaintEvent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PaintEvent)
      PaintEventOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PaintEvent.newBuilder() to construct.
    private PaintEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PaintEvent() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PaintEvent();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return CommentOuterClass.internal_static_PaintEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return CommentOuterClass.internal_static_PaintEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              CommentOuterClass.PaintEvent.class, CommentOuterClass.PaintEvent.Builder.class);
    }

    public static final int HITPOINTS_FIELD_NUMBER = 1;
    private double hitPoints_ = 0D;
    /**
     * <code>double hitPoints = 1;</code>
     * @return The hitPoints.
     */
    @java.lang.Override
    public double getHitPoints() {
      return hitPoints_;
    }

    public static final int STAND_FIELD_NUMBER = 2;
    private int stand_ = 0;
    /**
     * <code>int32 stand = 2;</code>
     * @return The stand.
     */
    @java.lang.Override
    public int getStand() {
      return stand_;
    }

    public static final int BAND_FIELD_NUMBER = 3;
    private int band_ = 0;
    /**
     * <code>int32 band = 3;</code>
     * @return The band.
     */
    @java.lang.Override
    public int getBand() {
      return band_;
    }

    public static final int POINT_FIELD_NUMBER = 4;
    private double point_ = 0D;
    /**
     * <code>double point = 4;</code>
     * @return The point.
     */
    @java.lang.Override
    public double getPoint() {
      return point_;
    }

    public static final int WAIT_FIELD_NUMBER = 5;
    private double wait_ = 0D;
    /**
     * <code>double wait = 5;</code>
     * @return The wait.
     */
    @java.lang.Override
    public double getWait() {
      return wait_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(hitPoints_) != 0) {
        output.writeDouble(1, hitPoints_);
      }
      if (stand_ != 0) {
        output.writeInt32(2, stand_);
      }
      if (band_ != 0) {
        output.writeInt32(3, band_);
      }
      if (java.lang.Double.doubleToRawLongBits(point_) != 0) {
        output.writeDouble(4, point_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        output.writeDouble(5, wait_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(hitPoints_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, hitPoints_);
      }
      if (stand_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, stand_);
      }
      if (band_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, band_);
      }
      if (java.lang.Double.doubleToRawLongBits(point_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, point_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, wait_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof CommentOuterClass.PaintEvent)) {
        return super.equals(obj);
      }
      CommentOuterClass.PaintEvent other = (CommentOuterClass.PaintEvent) obj;

      if (java.lang.Double.doubleToLongBits(getHitPoints())
          != java.lang.Double.doubleToLongBits(
              other.getHitPoints())) return false;
      if (getStand()
          != other.getStand()) return false;
      if (getBand()
          != other.getBand()) return false;
      if (java.lang.Double.doubleToLongBits(getPoint())
          != java.lang.Double.doubleToLongBits(
              other.getPoint())) return false;
      if (java.lang.Double.doubleToLongBits(getWait())
          != java.lang.Double.doubleToLongBits(
              other.getWait())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + HITPOINTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getHitPoints()));
      hash = (37 * hash) + STAND_FIELD_NUMBER;
      hash = (53 * hash) + getStand();
      hash = (37 * hash) + BAND_FIELD_NUMBER;
      hash = (53 * hash) + getBand();
      hash = (37 * hash) + POINT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getPoint()));
      hash = (37 * hash) + WAIT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWait()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static CommentOuterClass.PaintEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.PaintEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.PaintEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.PaintEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.PaintEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.PaintEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.PaintEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.PaintEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static CommentOuterClass.PaintEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static CommentOuterClass.PaintEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static CommentOuterClass.PaintEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.PaintEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(CommentOuterClass.PaintEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PaintEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PaintEvent)
        CommentOuterClass.PaintEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return CommentOuterClass.internal_static_PaintEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return CommentOuterClass.internal_static_PaintEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                CommentOuterClass.PaintEvent.class, CommentOuterClass.PaintEvent.Builder.class);
      }

      // Construct using CommentOuterClass.PaintEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        hitPoints_ = 0D;
        stand_ = 0;
        band_ = 0;
        point_ = 0D;
        wait_ = 0D;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return CommentOuterClass.internal_static_PaintEvent_descriptor;
      }

      @java.lang.Override
      public CommentOuterClass.PaintEvent getDefaultInstanceForType() {
        return CommentOuterClass.PaintEvent.getDefaultInstance();
      }

      @java.lang.Override
      public CommentOuterClass.PaintEvent build() {
        CommentOuterClass.PaintEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public CommentOuterClass.PaintEvent buildPartial() {
        CommentOuterClass.PaintEvent result = new CommentOuterClass.PaintEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(CommentOuterClass.PaintEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.hitPoints_ = hitPoints_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.stand_ = stand_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.band_ = band_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.point_ = point_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.wait_ = wait_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof CommentOuterClass.PaintEvent) {
          return mergeFrom((CommentOuterClass.PaintEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(CommentOuterClass.PaintEvent other) {
        if (other == CommentOuterClass.PaintEvent.getDefaultInstance()) return this;
        if (other.getHitPoints() != 0D) {
          setHitPoints(other.getHitPoints());
        }
        if (other.getStand() != 0) {
          setStand(other.getStand());
        }
        if (other.getBand() != 0) {
          setBand(other.getBand());
        }
        if (other.getPoint() != 0D) {
          setPoint(other.getPoint());
        }
        if (other.getWait() != 0D) {
          setWait(other.getWait());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                hitPoints_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 16: {
                stand_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                band_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 33: {
                point_ = input.readDouble();
                bitField0_ |= 0x00000008;
                break;
              } // case 33
              case 41: {
                wait_ = input.readDouble();
                bitField0_ |= 0x00000010;
                break;
              } // case 41
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double hitPoints_ ;
      /**
       * <code>double hitPoints = 1;</code>
       * @return The hitPoints.
       */
      @java.lang.Override
      public double getHitPoints() {
        return hitPoints_;
      }
      /**
       * <code>double hitPoints = 1;</code>
       * @param value The hitPoints to set.
       * @return This builder for chaining.
       */
      public Builder setHitPoints(double value) {

        hitPoints_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>double hitPoints = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHitPoints() {
        bitField0_ = (bitField0_ & ~0x00000001);
        hitPoints_ = 0D;
        onChanged();
        return this;
      }

      private int stand_ ;
      /**
       * <code>int32 stand = 2;</code>
       * @return The stand.
       */
      @java.lang.Override
      public int getStand() {
        return stand_;
      }
      /**
       * <code>int32 stand = 2;</code>
       * @param value The stand to set.
       * @return This builder for chaining.
       */
      public Builder setStand(int value) {

        stand_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>int32 stand = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStand() {
        bitField0_ = (bitField0_ & ~0x00000002);
        stand_ = 0;
        onChanged();
        return this;
      }

      private int band_ ;
      /**
       * <code>int32 band = 3;</code>
       * @return The band.
       */
      @java.lang.Override
      public int getBand() {
        return band_;
      }
      /**
       * <code>int32 band = 3;</code>
       * @param value The band to set.
       * @return This builder for chaining.
       */
      public Builder setBand(int value) {

        band_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int32 band = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearBand() {
        bitField0_ = (bitField0_ & ~0x00000004);
        band_ = 0;
        onChanged();
        return this;
      }

      private double point_ ;
      /**
       * <code>double point = 4;</code>
       * @return The point.
       */
      @java.lang.Override
      public double getPoint() {
        return point_;
      }
      /**
       * <code>double point = 4;</code>
       * @param value The point to set.
       * @return This builder for chaining.
       */
      public Builder setPoint(double value) {

        point_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>double point = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPoint() {
        bitField0_ = (bitField0_ & ~0x00000008);
        point_ = 0D;
        onChanged();
        return this;
      }

      private double wait_ ;
      /**
       * <code>double wait = 5;</code>
       * @return The wait.
       */
      @java.lang.Override
      public double getWait() {
        return wait_;
      }
      /**
       * <code>double wait = 5;</code>
       * @param value The wait to set.
       * @return This builder for chaining.
       */
      public Builder setWait(double value) {

        wait_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>double wait = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearWait() {
        bitField0_ = (bitField0_ & ~0x00000010);
        wait_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PaintEvent)
    }

    // @@protoc_insertion_point(class_scope:PaintEvent)
    private static final CommentOuterClass.PaintEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new CommentOuterClass.PaintEvent();
    }

    public static CommentOuterClass.PaintEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PaintEvent>
        PARSER = new com.google.protobuf.AbstractParser<PaintEvent>() {
      @java.lang.Override
      public PaintEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PaintEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PaintEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public CommentOuterClass.PaintEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AudioMultiplierEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:AudioMultiplierEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>double audioMultiplier = 1;</code>
     * @return The audioMultiplier.
     */
    double getAudioMultiplier();

    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    double getWait();
  }
  /**
   * Protobuf type {@code AudioMultiplierEvent}
   */
  public static final class AudioMultiplierEvent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AudioMultiplierEvent)
      AudioMultiplierEventOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AudioMultiplierEvent.newBuilder() to construct.
    private AudioMultiplierEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AudioMultiplierEvent() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AudioMultiplierEvent();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return CommentOuterClass.internal_static_AudioMultiplierEvent_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return CommentOuterClass.internal_static_AudioMultiplierEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              CommentOuterClass.AudioMultiplierEvent.class, CommentOuterClass.AudioMultiplierEvent.Builder.class);
    }

    public static final int AUDIOMULTIPLIER_FIELD_NUMBER = 1;
    private double audioMultiplier_ = 0D;
    /**
     * <code>double audioMultiplier = 1;</code>
     * @return The audioMultiplier.
     */
    @java.lang.Override
    public double getAudioMultiplier() {
      return audioMultiplier_;
    }

    public static final int WAIT_FIELD_NUMBER = 2;
    private double wait_ = 0D;
    /**
     * <code>double wait = 2;</code>
     * @return The wait.
     */
    @java.lang.Override
    public double getWait() {
      return wait_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(audioMultiplier_) != 0) {
        output.writeDouble(1, audioMultiplier_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        output.writeDouble(2, wait_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (java.lang.Double.doubleToRawLongBits(audioMultiplier_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, audioMultiplier_);
      }
      if (java.lang.Double.doubleToRawLongBits(wait_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, wait_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof CommentOuterClass.AudioMultiplierEvent)) {
        return super.equals(obj);
      }
      CommentOuterClass.AudioMultiplierEvent other = (CommentOuterClass.AudioMultiplierEvent) obj;

      if (java.lang.Double.doubleToLongBits(getAudioMultiplier())
          != java.lang.Double.doubleToLongBits(
              other.getAudioMultiplier())) return false;
      if (java.lang.Double.doubleToLongBits(getWait())
          != java.lang.Double.doubleToLongBits(
              other.getWait())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + AUDIOMULTIPLIER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getAudioMultiplier()));
      hash = (37 * hash) + WAIT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getWait()));
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static CommentOuterClass.AudioMultiplierEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static CommentOuterClass.AudioMultiplierEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static CommentOuterClass.AudioMultiplierEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(CommentOuterClass.AudioMultiplierEvent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AudioMultiplierEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AudioMultiplierEvent)
        CommentOuterClass.AudioMultiplierEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return CommentOuterClass.internal_static_AudioMultiplierEvent_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return CommentOuterClass.internal_static_AudioMultiplierEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                CommentOuterClass.AudioMultiplierEvent.class, CommentOuterClass.AudioMultiplierEvent.Builder.class);
      }

      // Construct using CommentOuterClass.AudioMultiplierEvent.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        audioMultiplier_ = 0D;
        wait_ = 0D;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return CommentOuterClass.internal_static_AudioMultiplierEvent_descriptor;
      }

      @java.lang.Override
      public CommentOuterClass.AudioMultiplierEvent getDefaultInstanceForType() {
        return CommentOuterClass.AudioMultiplierEvent.getDefaultInstance();
      }

      @java.lang.Override
      public CommentOuterClass.AudioMultiplierEvent build() {
        CommentOuterClass.AudioMultiplierEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public CommentOuterClass.AudioMultiplierEvent buildPartial() {
        CommentOuterClass.AudioMultiplierEvent result = new CommentOuterClass.AudioMultiplierEvent(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(CommentOuterClass.AudioMultiplierEvent result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.audioMultiplier_ = audioMultiplier_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.wait_ = wait_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof CommentOuterClass.AudioMultiplierEvent) {
          return mergeFrom((CommentOuterClass.AudioMultiplierEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(CommentOuterClass.AudioMultiplierEvent other) {
        if (other == CommentOuterClass.AudioMultiplierEvent.getDefaultInstance()) return this;
        if (other.getAudioMultiplier() != 0D) {
          setAudioMultiplier(other.getAudioMultiplier());
        }
        if (other.getWait() != 0D) {
          setWait(other.getWait());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 9: {
                audioMultiplier_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 9
              case 17: {
                wait_ = input.readDouble();
                bitField0_ |= 0x00000002;
                break;
              } // case 17
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private double audioMultiplier_ ;
      /**
       * <code>double audioMultiplier = 1;</code>
       * @return The audioMultiplier.
       */
      @java.lang.Override
      public double getAudioMultiplier() {
        return audioMultiplier_;
      }
      /**
       * <code>double audioMultiplier = 1;</code>
       * @param value The audioMultiplier to set.
       * @return This builder for chaining.
       */
      public Builder setAudioMultiplier(double value) {

        audioMultiplier_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>double audioMultiplier = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAudioMultiplier() {
        bitField0_ = (bitField0_ & ~0x00000001);
        audioMultiplier_ = 0D;
        onChanged();
        return this;
      }

      private double wait_ ;
      /**
       * <code>double wait = 2;</code>
       * @return The wait.
       */
      @java.lang.Override
      public double getWait() {
        return wait_;
      }
      /**
       * <code>double wait = 2;</code>
       * @param value The wait to set.
       * @return This builder for chaining.
       */
      public Builder setWait(double value) {

        wait_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>double wait = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearWait() {
        bitField0_ = (bitField0_ & ~0x00000002);
        wait_ = 0D;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AudioMultiplierEvent)
    }

    // @@protoc_insertion_point(class_scope:AudioMultiplierEvent)
    private static final CommentOuterClass.AudioMultiplierEvent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new CommentOuterClass.AudioMultiplierEvent();
    }

    public static CommentOuterClass.AudioMultiplierEvent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AudioMultiplierEvent>
        PARSER = new com.google.protobuf.AbstractParser<AudioMultiplierEvent>() {
      @java.lang.Override
      public AudioMultiplierEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AudioMultiplierEvent> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AudioMultiplierEvent> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public CommentOuterClass.AudioMultiplierEvent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Comment_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Comment_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_InputEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_InputEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_MultiplierEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_MultiplierEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_JudgmentMeterEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_JudgmentMeterEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PaintEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PaintEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AudioMultiplierEvent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AudioMultiplierEvent_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\rComment.proto\"\256\003\n\007Comment\022\014\n\004date\030\001 \001(" +
      "\t\022\027\n\017highestJudgment\030\002 \001(\005\022\026\n\016higherJudg" +
      "ment\030\003 \001(\005\022\024\n\014highJudgment\030\004 \001(\005\022\023\n\013lowJ" +
      "udgment\030\005 \001(\005\022\025\n\rlowerJudgment\030\006 \001(\005\022\026\n\016" +
      "lowestJudgment\030\007 \001(\005\022\033\n\006inputs\030\010 \003(\0132\013.I" +
      "nputEvent\022%\n\013multipliers\030\t \003(\0132\020.Multipl" +
      "ierEvent\022\033\n\006paints\030\n \003(\0132\013.PaintEvent\022\020\n" +
      "\010loopUnit\030\013 \001(\005\022+\n\016judgmentMeters\030\014 \003(\0132" +
      "\023.JudgmentMeterEvent\022/\n\020audioMultipliers" +
      "\030\r \003(\0132\025.AudioMultiplierEvent\022\031\n\021levying" +
      "Multiplier\030\016 \001(\001\022\036\n\026levyingAudioMultipli" +
      "er\030\017 \001(\001\"I\n\nInputEvent\022\r\n\005input\030\001 \001(\005\022\014\n" +
      "\004wait\030\002 \001(\001\022\016\n\006noteID\030\003 \001(\005\022\016\n\006judged\030\004 " +
      "\001(\005\"H\n\017MultiplierEvent\022\022\n\nmultiplier\030\001 \001" +
      "(\001\022\014\n\004wait\030\002 \001(\001\022\023\n\013isAutoEvent\030\003 \001(\010\"I\n" +
      "\022JudgmentMeterEvent\022\025\n\rjudgmentMeter\030\001 \001" +
      "(\001\022\014\n\004wait\030\002 \001(\001\022\016\n\006assist\030\003 \001(\005\"Y\n\nPain" +
      "tEvent\022\021\n\thitPoints\030\001 \001(\001\022\r\n\005stand\030\002 \001(\005" +
      "\022\014\n\004band\030\003 \001(\005\022\r\n\005point\030\004 \001(\001\022\014\n\004wait\030\005 " +
      "\001(\001\"=\n\024AudioMultiplierEvent\022\027\n\017audioMult" +
      "iplier\030\001 \001(\001\022\014\n\004wait\030\002 \001(\001b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_Comment_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_Comment_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Comment_descriptor,
        new java.lang.String[] { "Date", "HighestJudgment", "HigherJudgment", "HighJudgment", "LowJudgment", "LowerJudgment", "LowestJudgment", "Inputs", "Multipliers", "Paints", "LoopUnit", "JudgmentMeters", "AudioMultipliers", "LevyingMultiplier", "LevyingAudioMultiplier", });
    internal_static_InputEvent_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_InputEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_InputEvent_descriptor,
        new java.lang.String[] { "Input", "Wait", "NoteID", "Judged", });
    internal_static_MultiplierEvent_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_MultiplierEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MultiplierEvent_descriptor,
        new java.lang.String[] { "Multiplier", "Wait", "IsAutoEvent", });
    internal_static_JudgmentMeterEvent_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_JudgmentMeterEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_JudgmentMeterEvent_descriptor,
        new java.lang.String[] { "JudgmentMeter", "Wait", "Assist", });
    internal_static_PaintEvent_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_PaintEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PaintEvent_descriptor,
        new java.lang.String[] { "HitPoints", "Stand", "Band", "Point", "Wait", });
    internal_static_AudioMultiplierEvent_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_AudioMultiplierEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AudioMultiplierEvent_descriptor,
        new java.lang.String[] { "AudioMultiplier", "Wait", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
