public final class org.apache.lucene.codecs.CodecUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.codecs.CodecUtil
  super_class: java.lang.Object
{
  public static final int CODEC_MAGIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1071082519

  public static final int FOOTER_MAGIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1071082520

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 46
            ldc Lorg/apache/lucene/codecs/CodecUtil;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.codecs.CodecUtil.$assertionsDisabled:Z
         3: .line 56
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.codecs.CodecUtil this
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.lucene.codecs.CodecUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/codecs/CodecUtil;

  public static void writeHeader(org.apache.lucene.store.DataOutput, java.lang.String, int);
    descriptor: (Lorg/apache/lucene/store/DataOutput;Ljava/lang/String;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.lucene.store.DataOutput out
        start local 1 // java.lang.String codec
        start local 2 // int version
         0: .line 86
            new org.apache.lucene.util.BytesRef
            dup
            aload 1 /* codec */
            invokespecial org.apache.lucene.util.BytesRef.<init>:(Ljava/lang/CharSequence;)V
            astore 3 /* bytes */
        start local 3 // org.apache.lucene.util.BytesRef bytes
         1: .line 87
            aload 3 /* bytes */
            getfield org.apache.lucene.util.BytesRef.length:I
            aload 1 /* codec */
            invokevirtual java.lang.String.length:()I
            if_icmpne 2
            aload 3 /* bytes */
            getfield org.apache.lucene.util.BytesRef.length:I
            sipush 128
            if_icmplt 3
         2: .line 88
      StackMap locals: org.apache.lucene.util.BytesRef
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "codec must be simple ASCII, less than 128 characters in length [got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* codec */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* out */
            ldc 1071082519
            invokevirtual org.apache.lucene.store.DataOutput.writeInt:(I)V
         4: .line 91
            aload 0 /* out */
            aload 1 /* codec */
            invokevirtual org.apache.lucene.store.DataOutput.writeString:(Ljava/lang/String;)V
         5: .line 92
            aload 0 /* out */
            iload 2 /* version */
            invokevirtual org.apache.lucene.store.DataOutput.writeInt:(I)V
         6: .line 93
            return
        end local 3 // org.apache.lucene.util.BytesRef bytes
        end local 2 // int version
        end local 1 // java.lang.String codec
        end local 0 // org.apache.lucene.store.DataOutput out
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0      out  Lorg/apache/lucene/store/DataOutput;
            0    7     1    codec  Ljava/lang/String;
            0    7     2  version  I
            1    7     3    bytes  Lorg/apache/lucene/util/BytesRef;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      out      
      codec    
      version  

  public static void writeIndexHeader(org.apache.lucene.store.DataOutput, java.lang.String, int, byte[], java.lang.String);
    descriptor: (Lorg/apache/lucene/store/DataOutput;Ljava/lang/String;I[BLjava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.apache.lucene.store.DataOutput out
        start local 1 // java.lang.String codec
        start local 2 // int version
        start local 3 // byte[] id
        start local 4 // java.lang.String suffix
         0: .line 130
            aload 3 /* id */
            arraylength
            bipush 16
            if_icmpeq 2
         1: .line 131
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid id: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* id */
            invokestatic org.apache.lucene.util.StringHelper.idToString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* out */
            aload 1 /* codec */
            iload 2 /* version */
            invokestatic org.apache.lucene.codecs.CodecUtil.writeHeader:(Lorg/apache/lucene/store/DataOutput;Ljava/lang/String;I)V
         3: .line 134
            aload 0 /* out */
            aload 3 /* id */
            iconst_0
            aload 3 /* id */
            arraylength
            invokevirtual org.apache.lucene.store.DataOutput.writeBytes:([BII)V
         4: .line 135
            new org.apache.lucene.util.BytesRef
            dup
            aload 4 /* suffix */
            invokespecial org.apache.lucene.util.BytesRef.<init>:(Ljava/lang/CharSequence;)V
            astore 5 /* suffixBytes */
        start local 5 // org.apache.lucene.util.BytesRef suffixBytes
         5: .line 136
            aload 5 /* suffixBytes */
            getfield org.apache.lucene.util.BytesRef.length:I
            aload 4 /* suffix */
            invokevirtual java.lang.String.length:()I
            if_icmpne 6
            aload 5 /* suffixBytes */
            getfield org.apache.lucene.util.BytesRef.length:I
            sipush 256
            if_icmplt 7
         6: .line 137
      StackMap locals: org.apache.lucene.util.BytesRef
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "suffix must be simple ASCII, less than 256 characters in length [got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* out */
            aload 5 /* suffixBytes */
            getfield org.apache.lucene.util.BytesRef.length:I
            i2b
            invokevirtual org.apache.lucene.store.DataOutput.writeByte:(B)V
         8: .line 140
            aload 0 /* out */
            aload 5 /* suffixBytes */
            getfield org.apache.lucene.util.BytesRef.bytes:[B
            aload 5 /* suffixBytes */
            getfield org.apache.lucene.util.BytesRef.offset:I
            aload 5 /* suffixBytes */
            getfield org.apache.lucene.util.BytesRef.length:I
            invokevirtual org.apache.lucene.store.DataOutput.writeBytes:([BII)V
         9: .line 141
            return
        end local 5 // org.apache.lucene.util.BytesRef suffixBytes
        end local 4 // java.lang.String suffix
        end local 3 // byte[] id
        end local 2 // int version
        end local 1 // java.lang.String codec
        end local 0 // org.apache.lucene.store.DataOutput out
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0          out  Lorg/apache/lucene/store/DataOutput;
            0   10     1        codec  Ljava/lang/String;
            0   10     2      version  I
            0   10     3           id  [B
            0   10     4       suffix  Ljava/lang/String;
            5   10     5  suffixBytes  Lorg/apache/lucene/util/BytesRef;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      out      
      codec    
      version  
      id       
      suffix   

  public static int headerLength(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String codec
         0: .line 151
            bipush 9
            aload 0 /* codec */
            invokevirtual java.lang.String.length:()I
            iadd
            ireturn
        end local 0 // java.lang.String codec
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  codec  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      codec  

  public static int indexHeaderLength(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String codec
        start local 1 // java.lang.String suffix
         0: .line 162
            aload 0 /* codec */
            invokestatic org.apache.lucene.codecs.CodecUtil.headerLength:(Ljava/lang/String;)I
            bipush 16
            iadd
            iconst_1
            iadd
            aload 1 /* suffix */
            invokevirtual java.lang.String.length:()I
            iadd
            ireturn
        end local 1 // java.lang.String suffix
        end local 0 // java.lang.String codec
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   codec  Ljava/lang/String;
            0    1     1  suffix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      codec   
      suffix  

  public static int checkHeader(org.apache.lucene.store.DataInput, java.lang.String, int, int);
    descriptor: (Lorg/apache/lucene/store/DataInput;Ljava/lang/String;II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.lucene.store.DataInput in
        start local 1 // java.lang.String codec
        start local 2 // int minVersion
        start local 3 // int maxVersion
         0: .line 194
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.DataInput.readInt:()I
            istore 4 /* actualHeader */
        start local 4 // int actualHeader
         1: .line 195
            iload 4 /* actualHeader */
            ldc 1071082519
            if_icmpeq 3
         2: .line 196
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "codec header mismatch: actual header="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* actualHeader */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs expected header="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc 1071082519
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         3: .line 198
      StackMap locals: int
      StackMap stack:
            aload 0 /* in */
            aload 1 /* codec */
            iload 2 /* minVersion */
            iload 3 /* maxVersion */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkHeaderNoMagic:(Lorg/apache/lucene/store/DataInput;Ljava/lang/String;II)I
            ireturn
        end local 4 // int actualHeader
        end local 3 // int maxVersion
        end local 2 // int minVersion
        end local 1 // java.lang.String codec
        end local 0 // org.apache.lucene.store.DataInput in
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0            in  Lorg/apache/lucene/store/DataInput;
            0    4     1         codec  Ljava/lang/String;
            0    4     2    minVersion  I
            0    4     3    maxVersion  I
            1    4     4  actualHeader  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      in          
      codec       
      minVersion  
      maxVersion  

  public static int checkHeaderNoMagic(org.apache.lucene.store.DataInput, java.lang.String, int, int);
    descriptor: (Lorg/apache/lucene/store/DataInput;Ljava/lang/String;II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.apache.lucene.store.DataInput in
        start local 1 // java.lang.String codec
        start local 2 // int minVersion
        start local 3 // int maxVersion
         0: .line 206
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.DataInput.readString:()Ljava/lang/String;
            astore 4 /* actualCodec */
        start local 4 // java.lang.String actualCodec
         1: .line 207
            aload 4 /* actualCodec */
            aload 1 /* codec */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 208
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "codec mismatch: actual codec="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* actualCodec */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " vs expected codec="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* codec */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         3: .line 211
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.DataInput.readInt:()I
            istore 5 /* actualVersion */
        start local 5 // int actualVersion
         4: .line 212
            iload 5 /* actualVersion */
            iload 2 /* minVersion */
            if_icmpge 6
         5: .line 213
            new org.apache.lucene.index.IndexFormatTooOldException
            dup
            aload 0 /* in */
            iload 5 /* actualVersion */
            iload 2 /* minVersion */
            iload 3 /* maxVersion */
            invokespecial org.apache.lucene.index.IndexFormatTooOldException.<init>:(Lorg/apache/lucene/store/DataInput;III)V
            athrow
         6: .line 215
      StackMap locals: int
      StackMap stack:
            iload 5 /* actualVersion */
            iload 3 /* maxVersion */
            if_icmple 8
         7: .line 216
            new org.apache.lucene.index.IndexFormatTooNewException
            dup
            aload 0 /* in */
            iload 5 /* actualVersion */
            iload 2 /* minVersion */
            iload 3 /* maxVersion */
            invokespecial org.apache.lucene.index.IndexFormatTooNewException.<init>:(Lorg/apache/lucene/store/DataInput;III)V
            athrow
         8: .line 219
      StackMap locals:
      StackMap stack:
            iload 5 /* actualVersion */
            ireturn
        end local 5 // int actualVersion
        end local 4 // java.lang.String actualCodec
        end local 3 // int maxVersion
        end local 2 // int minVersion
        end local 1 // java.lang.String codec
        end local 0 // org.apache.lucene.store.DataInput in
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0             in  Lorg/apache/lucene/store/DataInput;
            0    9     1          codec  Ljava/lang/String;
            0    9     2     minVersion  I
            0    9     3     maxVersion  I
            1    9     4    actualCodec  Ljava/lang/String;
            4    9     5  actualVersion  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      in          
      codec       
      minVersion  
      maxVersion  

  public static int checkIndexHeader(org.apache.lucene.store.DataInput, java.lang.String, int, int, byte[], java.lang.String);
    descriptor: (Lorg/apache/lucene/store/DataInput;Ljava/lang/String;II[BLjava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // org.apache.lucene.store.DataInput in
        start local 1 // java.lang.String codec
        start local 2 // int minVersion
        start local 3 // int maxVersion
        start local 4 // byte[] expectedID
        start local 5 // java.lang.String expectedSuffix
         0: .line 255
            aload 0 /* in */
            aload 1 /* codec */
            iload 2 /* minVersion */
            iload 3 /* maxVersion */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkHeader:(Lorg/apache/lucene/store/DataInput;Ljava/lang/String;II)I
            istore 6 /* version */
        start local 6 // int version
         1: .line 256
            aload 0 /* in */
            aload 4 /* expectedID */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkIndexHeaderID:(Lorg/apache/lucene/store/DataInput;[B)[B
            pop
         2: .line 257
            aload 0 /* in */
            aload 5 /* expectedSuffix */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkIndexHeaderSuffix:(Lorg/apache/lucene/store/DataInput;Ljava/lang/String;)Ljava/lang/String;
            pop
         3: .line 258
            iload 6 /* version */
            ireturn
        end local 6 // int version
        end local 5 // java.lang.String expectedSuffix
        end local 4 // byte[] expectedID
        end local 3 // int maxVersion
        end local 2 // int minVersion
        end local 1 // java.lang.String codec
        end local 0 // org.apache.lucene.store.DataInput in
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0              in  Lorg/apache/lucene/store/DataInput;
            0    4     1           codec  Ljava/lang/String;
            0    4     2      minVersion  I
            0    4     3      maxVersion  I
            0    4     4      expectedID  [B
            0    4     5  expectedSuffix  Ljava/lang/String;
            1    4     6         version  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      in              
      codec           
      minVersion      
      maxVersion      
      expectedID      
      expectedSuffix  

  public static void verifyAndCopyIndexHeader(org.apache.lucene.store.IndexInput, org.apache.lucene.store.DataOutput, byte[]);
    descriptor: (Lorg/apache/lucene/store/IndexInput;Lorg/apache/lucene/store/DataOutput;[B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.apache.lucene.store.IndexInput in
        start local 1 // org.apache.lucene.store.DataOutput out
        start local 2 // byte[] expectedID
         0: .line 281
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            ldc ""
            invokestatic org.apache.lucene.codecs.CodecUtil.headerLength:(Ljava/lang/String;)I
            iadd
            i2l
            lcmp
            ifge 2
         1: .line 282
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "compound sub-files must have a valid codec header and footer: file is too small ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " bytes)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         2: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readInt:()I
            istore 3 /* actualHeader */
        start local 3 // int actualHeader
         3: .line 286
            iload 3 /* actualHeader */
            ldc 1071082519
            if_icmpeq 5
         4: .line 287
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "compound sub-files must have a valid codec header and footer: codec header mismatch: actual header="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* actualHeader */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs expected header="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc 1071082519
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         5: .line 291
      StackMap locals: int
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readString:()Ljava/lang/String;
            astore 4 /* codec */
        start local 4 // java.lang.String codec
         6: .line 292
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readInt:()I
            istore 5 /* version */
        start local 5 // int version
         7: .line 295
            aload 0 /* in */
            aload 2 /* expectedID */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkIndexHeaderID:(Lorg/apache/lucene/store/DataInput;[B)[B
            pop
         8: .line 298
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readByte:()B
            sipush 255
            iand
            istore 6 /* suffixLength */
        start local 6 // int suffixLength
         9: .line 299
            iload 6 /* suffixLength */
            newarray 8
            astore 7 /* suffixBytes */
        start local 7 // byte[] suffixBytes
        10: .line 300
            aload 0 /* in */
            aload 7 /* suffixBytes */
            iconst_0
            iload 6 /* suffixLength */
            invokevirtual org.apache.lucene.store.IndexInput.readBytes:([BII)V
        11: .line 303
            aload 1 /* out */
            ldc 1071082519
            invokevirtual org.apache.lucene.store.DataOutput.writeInt:(I)V
        12: .line 304
            aload 1 /* out */
            aload 4 /* codec */
            invokevirtual org.apache.lucene.store.DataOutput.writeString:(Ljava/lang/String;)V
        13: .line 305
            aload 1 /* out */
            iload 5 /* version */
            invokevirtual org.apache.lucene.store.DataOutput.writeInt:(I)V
        14: .line 306
            aload 1 /* out */
            aload 2 /* expectedID */
            iconst_0
            aload 2 /* expectedID */
            arraylength
            invokevirtual org.apache.lucene.store.DataOutput.writeBytes:([BII)V
        15: .line 307
            aload 1 /* out */
            iload 6 /* suffixLength */
            i2b
            invokevirtual org.apache.lucene.store.DataOutput.writeByte:(B)V
        16: .line 308
            aload 1 /* out */
            aload 7 /* suffixBytes */
            iconst_0
            iload 6 /* suffixLength */
            invokevirtual org.apache.lucene.store.DataOutput.writeBytes:([BII)V
        17: .line 309
            return
        end local 7 // byte[] suffixBytes
        end local 6 // int suffixLength
        end local 5 // int version
        end local 4 // java.lang.String codec
        end local 3 // int actualHeader
        end local 2 // byte[] expectedID
        end local 1 // org.apache.lucene.store.DataOutput out
        end local 0 // org.apache.lucene.store.IndexInput in
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0            in  Lorg/apache/lucene/store/IndexInput;
            0   18     1           out  Lorg/apache/lucene/store/DataOutput;
            0   18     2    expectedID  [B
            3   18     3  actualHeader  I
            6   18     4         codec  Ljava/lang/String;
            7   18     5       version  I
            9   18     6  suffixLength  I
           10   18     7   suffixBytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      in          
      out         
      expectedID  

  public static byte[] readIndexHeader(org.apache.lucene.store.IndexInput);
    descriptor: (Lorg/apache/lucene/store/IndexInput;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.lucene.store.IndexInput in
         0: .line 316
            aload 0 /* in */
            lconst_0
            invokevirtual org.apache.lucene.store.IndexInput.seek:(J)V
         1: .line 317
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readInt:()I
            istore 1 /* actualHeader */
        start local 1 // int actualHeader
         2: .line 318
            iload 1 /* actualHeader */
            ldc 1071082519
            if_icmpeq 4
         3: .line 319
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "codec header mismatch: actual header="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* actualHeader */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs expected header="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc 1071082519
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         4: .line 321
      StackMap locals: int
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readString:()Ljava/lang/String;
            astore 2 /* codec */
        start local 2 // java.lang.String codec
         5: .line 322
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readInt:()I
            pop
         6: .line 323
            aload 0 /* in */
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.getFilePointer:()J
            ldc 16
            ladd
            invokevirtual org.apache.lucene.store.IndexInput.seek:(J)V
         7: .line 324
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readByte:()B
            sipush 255
            iand
            istore 3 /* suffixLength */
        start local 3 // int suffixLength
         8: .line 325
            aload 2 /* codec */
            invokestatic org.apache.lucene.codecs.CodecUtil.headerLength:(Ljava/lang/String;)I
            bipush 16
            iadd
            iconst_1
            iadd
            iload 3 /* suffixLength */
            iadd
            newarray 8
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         9: .line 326
            aload 0 /* in */
            lconst_0
            invokevirtual org.apache.lucene.store.IndexInput.seek:(J)V
        10: .line 327
            aload 0 /* in */
            aload 4 /* bytes */
            iconst_0
            aload 4 /* bytes */
            arraylength
            invokevirtual org.apache.lucene.store.IndexInput.readBytes:([BII)V
        11: .line 328
            aload 4 /* bytes */
            areturn
        end local 4 // byte[] bytes
        end local 3 // int suffixLength
        end local 2 // java.lang.String codec
        end local 1 // int actualHeader
        end local 0 // org.apache.lucene.store.IndexInput in
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0            in  Lorg/apache/lucene/store/IndexInput;
            2   12     1  actualHeader  I
            5   12     2         codec  Ljava/lang/String;
            8   12     3  suffixLength  I
            9   12     4         bytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public static byte[] readFooter(org.apache.lucene.store.IndexInput);
    descriptor: (Lorg/apache/lucene/store/IndexInput;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.apache.lucene.store.IndexInput in
         0: .line 334
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lcmp
            ifge 2
         1: .line 335
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "misplaced codec footer (file truncated?): length="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " but footerLength=="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         2: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lsub
            invokevirtual org.apache.lucene.store.IndexInput.seek:(J)V
         3: .line 338
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.validateFooter:(Lorg/apache/lucene/store/IndexInput;)V
         4: .line 339
            aload 0 /* in */
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lsub
            invokevirtual org.apache.lucene.store.IndexInput.seek:(J)V
         5: .line 340
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            newarray 8
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         6: .line 341
            aload 0 /* in */
            aload 1 /* bytes */
            iconst_0
            aload 1 /* bytes */
            arraylength
            invokevirtual org.apache.lucene.store.IndexInput.readBytes:([BII)V
         7: .line 342
            aload 1 /* bytes */
            areturn
        end local 1 // byte[] bytes
        end local 0 // org.apache.lucene.store.IndexInput in
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0     in  Lorg/apache/lucene/store/IndexInput;
            6    8     1  bytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public static byte[] checkIndexHeaderID(org.apache.lucene.store.DataInput, byte[]);
    descriptor: (Lorg/apache/lucene/store/DataInput;[B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.lucene.store.DataInput in
        start local 1 // byte[] expectedID
         0: .line 347
            bipush 16
            newarray 8
            astore 2 /* id */
        start local 2 // byte[] id
         1: .line 348
            aload 0 /* in */
            aload 2 /* id */
            iconst_0
            aload 2 /* id */
            arraylength
            invokevirtual org.apache.lucene.store.DataInput.readBytes:([BII)V
         2: .line 349
            aload 2 /* id */
            aload 1 /* expectedID */
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifne 6
         3: .line 350
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "file mismatch, expected id="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* expectedID */
            invokestatic org.apache.lucene.util.StringHelper.idToString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 351
            ldc ", got="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* id */
            invokestatic org.apache.lucene.util.StringHelper.idToString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
         5: .line 350
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         6: .line 353
      StackMap locals: byte[]
      StackMap stack:
            aload 2 /* id */
            areturn
        end local 2 // byte[] id
        end local 1 // byte[] expectedID
        end local 0 // org.apache.lucene.store.DataInput in
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0          in  Lorg/apache/lucene/store/DataInput;
            0    7     1  expectedID  [B
            1    7     2          id  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      in          
      expectedID  

  public static java.lang.String checkIndexHeaderSuffix(org.apache.lucene.store.DataInput, java.lang.String);
    descriptor: (Lorg/apache/lucene/store/DataInput;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.apache.lucene.store.DataInput in
        start local 1 // java.lang.String expectedSuffix
         0: .line 358
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.DataInput.readByte:()B
            sipush 255
            iand
            istore 2 /* suffixLength */
        start local 2 // int suffixLength
         1: .line 359
            iload 2 /* suffixLength */
            newarray 8
            astore 3 /* suffixBytes */
        start local 3 // byte[] suffixBytes
         2: .line 360
            aload 0 /* in */
            aload 3 /* suffixBytes */
            iconst_0
            aload 3 /* suffixBytes */
            arraylength
            invokevirtual org.apache.lucene.store.DataInput.readBytes:([BII)V
         3: .line 361
            new java.lang.String
            dup
            aload 3 /* suffixBytes */
            iconst_0
            aload 3 /* suffixBytes */
            arraylength
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BIILjava/nio/charset/Charset;)V
            astore 4 /* suffix */
        start local 4 // java.lang.String suffix
         4: .line 362
            aload 4 /* suffix */
            aload 1 /* expectedSuffix */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
         5: .line 363
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "file mismatch, expected suffix="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* expectedSuffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 364
            ldc ", got="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
         7: .line 363
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         8: .line 366
      StackMap locals: int byte[] java.lang.String
      StackMap stack:
            aload 4 /* suffix */
            areturn
        end local 4 // java.lang.String suffix
        end local 3 // byte[] suffixBytes
        end local 2 // int suffixLength
        end local 1 // java.lang.String expectedSuffix
        end local 0 // org.apache.lucene.store.DataInput in
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0              in  Lorg/apache/lucene/store/DataInput;
            0    9     1  expectedSuffix  Ljava/lang/String;
            1    9     2    suffixLength  I
            2    9     3     suffixBytes  [B
            4    9     4          suffix  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      in              
      expectedSuffix  

  public static void writeFooter(org.apache.lucene.store.IndexOutput);
    descriptor: (Lorg/apache/lucene/store/IndexOutput;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.store.IndexOutput out
         0: .line 391
            aload 0 /* out */
            ldc -1071082520
            invokevirtual org.apache.lucene.store.IndexOutput.writeInt:(I)V
         1: .line 392
            aload 0 /* out */
            iconst_0
            invokevirtual org.apache.lucene.store.IndexOutput.writeInt:(I)V
         2: .line 393
            aload 0 /* out */
            invokestatic org.apache.lucene.codecs.CodecUtil.writeCRC:(Lorg/apache/lucene/store/IndexOutput;)V
         3: .line 394
            return
        end local 0 // org.apache.lucene.store.IndexOutput out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   out  Lorg/apache/lucene/store/IndexOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public static int footerLength();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 403
            bipush 16
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static long checkFooter(org.apache.lucene.store.ChecksumIndexInput);
    descriptor: (Lorg/apache/lucene/store/ChecksumIndexInput;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.lucene.store.ChecksumIndexInput in
         0: .line 414
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.validateFooter:(Lorg/apache/lucene/store/IndexInput;)V
         1: .line 415
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.getChecksum:()J
            lstore 1 /* actualChecksum */
        start local 1 // long actualChecksum
         2: .line 416
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.readCRC:(Lorg/apache/lucene/store/IndexInput;)J
            lstore 3 /* expectedChecksum */
        start local 3 // long expectedChecksum
         3: .line 417
            lload 3 /* expectedChecksum */
            lload 1 /* actualChecksum */
            lcmp
            ifeq 7
         4: .line 418
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "checksum failed (hardware problem?) : expected="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* expectedChecksum */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 419
            ldc " actual="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* actualChecksum */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
         6: .line 418
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         7: .line 421
      StackMap locals: long long
      StackMap stack:
            lload 1 /* actualChecksum */
            lreturn
        end local 3 // long expectedChecksum
        end local 1 // long actualChecksum
        end local 0 // org.apache.lucene.store.ChecksumIndexInput in
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0                in  Lorg/apache/lucene/store/ChecksumIndexInput;
            2    8     1    actualChecksum  J
            3    8     3  expectedChecksum  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public static void checkFooter(org.apache.lucene.store.ChecksumIndexInput, java.lang.Throwable);
    descriptor: (Lorg/apache/lucene/store/ChecksumIndexInput;Ljava/lang/Throwable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.apache.lucene.store.ChecksumIndexInput in
        start local 1 // java.lang.Throwable priorException
         0: .line 447
            aload 1 /* priorException */
            ifnonnull 3
         1: .line 448
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkFooter:(Lorg/apache/lucene/store/ChecksumIndexInput;)J
            pop2
         2: .line 449
            goto 20
         3: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.length:()J
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.getFilePointer:()J
            lsub
            lstore 2 /* remaining */
        start local 2 // long remaining
         4: .line 456
            lload 2 /* remaining */
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lcmp
            ifge 8
         5: .line 458
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "checksum status indeterminate: remaining="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* remaining */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         6: .line 459
            ldc "; please run checkindex for more details"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
         7: .line 458
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         8: .line 462
      StackMap locals: long
      StackMap stack:
            aload 0 /* in */
            lload 2 /* remaining */
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lsub
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.skipBytes:(J)V
         9: .line 465
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkFooter:(Lorg/apache/lucene/store/ChecksumIndexInput;)J
            lstore 4 /* checksum */
        start local 4 // long checksum
        10: .line 466
            aload 1 /* priorException */
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "checksum passed ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 4 /* checksum */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 467
            ldc "). possibly transient resource issue, or a Lucene or JVM bug"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
        12: .line 466
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        end local 4 // long checksum
        end local 2 // long remaining
        13: .line 469
            goto 19
      StackMap locals: org.apache.lucene.store.ChecksumIndexInput java.lang.Throwable
      StackMap stack: org.apache.lucene.index.CorruptIndexException
        14: astore 2 /* corruptException */
        start local 2 // org.apache.lucene.index.CorruptIndexException corruptException
        15: .line 470
            aload 2 /* corruptException */
            aload 1 /* priorException */
            invokevirtual org.apache.lucene.index.CorruptIndexException.addSuppressed:(Ljava/lang/Throwable;)V
        16: .line 471
            aload 2 /* corruptException */
            athrow
        end local 2 // org.apache.lucene.index.CorruptIndexException corruptException
        17: .line 472
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        18: .line 474
            aload 1 /* priorException */
            new org.apache.lucene.index.CorruptIndexException
            dup
            ldc "checksum status indeterminate: unexpected exception"
            aload 0 /* in */
            aload 2 /* t */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;Ljava/lang/Throwable;)V
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
        19: .line 476
      StackMap locals:
      StackMap stack:
            aload 1 /* priorException */
            invokestatic org.apache.lucene.util.IOUtils.rethrowAlways:(Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        20: .line 478
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable priorException
        end local 0 // org.apache.lucene.store.ChecksumIndexInput in
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0                in  Lorg/apache/lucene/store/ChecksumIndexInput;
            0   21     1    priorException  Ljava/lang/Throwable;
            4   13     2         remaining  J
           10   13     4          checksum  J
           15   17     2  corruptException  Lorg/apache/lucene/index/CorruptIndexException;
           18   19     2                 t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3    13      14  Class org.apache.lucene.index.CorruptIndexException
           3    13      17  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      in              
      priorException  

  public static long retrieveChecksum(org.apache.lucene.store.IndexInput);
    descriptor: (Lorg/apache/lucene/store/IndexInput;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.lucene.store.IndexInput in
         0: .line 486
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lcmp
            ifge 2
         1: .line 487
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "misplaced codec footer (file truncated?): length="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " but footerLength=="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         2: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lsub
            invokevirtual org.apache.lucene.store.IndexInput.seek:(J)V
         3: .line 490
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.validateFooter:(Lorg/apache/lucene/store/IndexInput;)V
         4: .line 491
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.readCRC:(Lorg/apache/lucene/store/IndexInput;)J
            lreturn
        end local 0 // org.apache.lucene.store.IndexInput in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    in  Lorg/apache/lucene/store/IndexInput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public static long retrieveChecksum(org.apache.lucene.store.IndexInput, long);
    descriptor: (Lorg/apache/lucene/store/IndexInput;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.lucene.store.IndexInput in
        start local 1 // long expectedLength
         0: .line 500
            lload 1 /* expectedLength */
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lcmp
            ifge 2
         1: .line 501
            new java.lang.IllegalArgumentException
            dup
            ldc "expectedLength cannot be less than the footer length"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            lload 1 /* expectedLength */
            lcmp
            ifge 4
         3: .line 504
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "truncated file: length="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " but expectedLength=="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* expectedLength */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         4: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            lload 1 /* expectedLength */
            lcmp
            ifle 6
         5: .line 506
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "file too long: length="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " but expectedLength=="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* expectedLength */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         6: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.retrieveChecksum:(Lorg/apache/lucene/store/IndexInput;)J
            lreturn
        end local 1 // long expectedLength
        end local 0 // org.apache.lucene.store.IndexInput in
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0              in  Lorg/apache/lucene/store/IndexInput;
            0    7     1  expectedLength  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      in              
      expectedLength  

  private static void validateFooter(org.apache.lucene.store.IndexInput);
    descriptor: (Lorg/apache/lucene/store/IndexInput;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.apache.lucene.store.IndexInput in
         0: .line 513
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.length:()J
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.getFilePointer:()J
            lsub
            lstore 1 /* remaining */
        start local 1 // long remaining
         1: .line 514
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lstore 3 /* expected */
        start local 3 // long expected
         2: .line 515
            lload 1 /* remaining */
            lload 3 /* expected */
            lcmp
            ifge 4
         3: .line 516
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "misplaced codec footer (file truncated?): remaining="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* remaining */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", expected="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 3 /* expected */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", fp="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.getFilePointer:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         4: .line 517
      StackMap locals: long long
      StackMap stack:
            lload 1 /* remaining */
            lload 3 /* expected */
            lcmp
            ifle 6
         5: .line 518
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "misplaced codec footer (file extended?): remaining="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* remaining */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", expected="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 3 /* expected */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", fp="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.getFilePointer:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         6: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readInt:()I
            istore 5 /* magic */
        start local 5 // int magic
         7: .line 522
            iload 5 /* magic */
            ldc -1071082520
            if_icmpeq 9
         8: .line 523
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "codec footer mismatch (file truncated?): actual footer="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* magic */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs expected footer="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc -1071082520
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         9: .line 526
      StackMap locals: int
      StackMap stack:
            aload 0 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readInt:()I
            istore 6 /* algorithmID */
        start local 6 // int algorithmID
        10: .line 527
            iload 6 /* algorithmID */
            ifeq 12
        11: .line 528
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "codec footer mismatch: unknown algorithmID: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* algorithmID */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* in */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
        12: .line 530
      StackMap locals: int
      StackMap stack:
            return
        end local 6 // int algorithmID
        end local 5 // int magic
        end local 3 // long expected
        end local 1 // long remaining
        end local 0 // org.apache.lucene.store.IndexInput in
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0           in  Lorg/apache/lucene/store/IndexInput;
            1   13     1    remaining  J
            2   13     3     expected  J
            7   13     5        magic  I
           10   13     6  algorithmID  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  public static long checksumEntireFile(org.apache.lucene.store.IndexInput);
    descriptor: (Lorg/apache/lucene/store/IndexInput;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.lucene.store.IndexInput input
         0: .line 539
            aload 0 /* input */
            invokevirtual org.apache.lucene.store.IndexInput.clone:()Lorg/apache/lucene/store/IndexInput;
            astore 1 /* clone */
        start local 1 // org.apache.lucene.store.IndexInput clone
         1: .line 540
            aload 1 /* clone */
            lconst_0
            invokevirtual org.apache.lucene.store.IndexInput.seek:(J)V
         2: .line 541
            new org.apache.lucene.store.BufferedChecksumIndexInput
            dup
            aload 1 /* clone */
            invokespecial org.apache.lucene.store.BufferedChecksumIndexInput.<init>:(Lorg/apache/lucene/store/IndexInput;)V
            astore 2 /* in */
        start local 2 // org.apache.lucene.store.ChecksumIndexInput in
         3: .line 542
            getstatic org.apache.lucene.codecs.CodecUtil.$assertionsDisabled:Z
            ifne 4
            aload 2 /* in */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.getFilePointer:()J
            lconst_0
            lcmp
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 543
      StackMap locals: org.apache.lucene.store.IndexInput org.apache.lucene.store.ChecksumIndexInput
      StackMap stack:
            aload 2 /* in */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lcmp
            ifge 6
         5: .line 544
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "misplaced codec footer (file truncated?): length="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* in */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.length:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " but footerLength=="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         6: .line 546
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            aload 2 /* in */
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.length:()J
            invokestatic org.apache.lucene.codecs.CodecUtil.footerLength:()I
            i2l
            lsub
            invokevirtual org.apache.lucene.store.ChecksumIndexInput.seek:(J)V
         7: .line 547
            aload 2 /* in */
            invokestatic org.apache.lucene.codecs.CodecUtil.checkFooter:(Lorg/apache/lucene/store/ChecksumIndexInput;)J
            lreturn
        end local 2 // org.apache.lucene.store.ChecksumIndexInput in
        end local 1 // org.apache.lucene.store.IndexInput clone
        end local 0 // org.apache.lucene.store.IndexInput input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  input  Lorg/apache/lucene/store/IndexInput;
            1    8     1  clone  Lorg/apache/lucene/store/IndexInput;
            3    8     2     in  Lorg/apache/lucene/store/ChecksumIndexInput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  static long readCRC(org.apache.lucene.store.IndexInput);
    descriptor: (Lorg/apache/lucene/store/IndexInput;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.lucene.store.IndexInput input
         0: .line 556
            aload 0 /* input */
            invokevirtual org.apache.lucene.store.IndexInput.readLong:()J
            lstore 1 /* value */
        start local 1 // long value
         1: .line 557
            lload 1 /* value */
            ldc -4294967296
            land
            lconst_0
            lcmp
            ifeq 3
         2: .line 558
            new org.apache.lucene.index.CorruptIndexException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal CRC-32 checksum: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* input */
            invokespecial org.apache.lucene.index.CorruptIndexException.<init>:(Ljava/lang/String;Lorg/apache/lucene/store/DataInput;)V
            athrow
         3: .line 560
      StackMap locals: long
      StackMap stack:
            lload 1 /* value */
            lreturn
        end local 1 // long value
        end local 0 // org.apache.lucene.store.IndexInput input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  input  Lorg/apache/lucene/store/IndexInput;
            1    4     1  value  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  static void writeCRC(org.apache.lucene.store.IndexOutput);
    descriptor: (Lorg/apache/lucene/store/IndexOutput;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.lucene.store.IndexOutput output
         0: .line 569
            aload 0 /* output */
            invokevirtual org.apache.lucene.store.IndexOutput.getChecksum:()J
            lstore 1 /* value */
        start local 1 // long value
         1: .line 570
            lload 1 /* value */
            ldc -4294967296
            land
            lconst_0
            lcmp
            ifeq 3
         2: .line 571
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Illegal CRC-32 checksum: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " (resource="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* output */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 573
      StackMap locals: long
      StackMap stack:
            aload 0 /* output */
            lload 1 /* value */
            invokevirtual org.apache.lucene.store.IndexOutput.writeLong:(J)V
         4: .line 574
            return
        end local 1 // long value
        end local 0 // org.apache.lucene.store.IndexOutput output
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  output  Lorg/apache/lucene/store/IndexOutput;
            1    5     1   value  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      output  
}
SourceFile: "CodecUtil.java"