public abstract class org.jcodings.transcode.Transcoder implements org.jcodings.transcode.TranscodingInstruction
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.jcodings.transcode.Transcoder
  super_class: java.lang.Object
{
  final byte[] source;
    descriptor: [B
    flags: (0x0010) ACC_FINAL

  final byte[] destination;
    descriptor: [B
    flags: (0x0010) ACC_FINAL

  final int hashCode;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int treeStart;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final byte[] byteArray;
    descriptor: [B
    flags: (0x0010) ACC_FINAL

  final int[] intArray;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  public final int inputUnitLength;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int maxInput;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final int maxOutput;
    descriptor: I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final org.jcodings.transcode.AsciiCompatibility compatibility;
    descriptor: Lorg/jcodings/transcode/AsciiCompatibility;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  final int stateSize;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  static final org.jcodings.util.ObjHash<java.lang.String, byte[]> byteArrayHash;
    descriptor: Lorg/jcodings/util/ObjHash;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lorg/jcodings/util/ObjHash<Ljava/lang/String;[B>;

  static final org.jcodings.util.ObjHash<java.lang.String, int[]> wordArrayHash;
    descriptor: Lorg/jcodings/util/ObjHash;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Lorg/jcodings/util/ObjHash<Ljava/lang/String;[I>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 182
            new org.jcodings.util.ObjHash
            dup
            invokespecial org.jcodings.util.ObjHash.<init>:()V
            putstatic org.jcodings.transcode.Transcoder.byteArrayHash:Lorg/jcodings/util/ObjHash;
         1: .line 183
            new org.jcodings.util.ObjHash
            dup
            invokespecial org.jcodings.util.ObjHash.<init>:()V
            putstatic org.jcodings.transcode.Transcoder.wordArrayHash:Lorg/jcodings/util/ObjHash;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(byte[], byte[], int, java.lang.String, int, int, int, org.jcodings.transcode.AsciiCompatibility, int);
    descriptor: ([B[BILjava/lang/String;IIILorg/jcodings/transcode/AsciiCompatibility;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=12, args_size=10
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] source
        start local 2 // byte[] destination
        start local 3 // int treeStart
        start local 4 // java.lang.String arrayKey
        start local 5 // int inputUnitLength
        start local 6 // int maxInput
        start local 7 // int maxOutput
        start local 8 // org.jcodings.transcode.AsciiCompatibility compatibility
        start local 9 // int stateSize
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            aload 0 /* this */
            aload 1 /* source */
            putfield org.jcodings.transcode.Transcoder.source:[B
         2: .line 33
            aload 0 /* this */
            aload 2 /* destination */
            putfield org.jcodings.transcode.Transcoder.destination:[B
         3: .line 34
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.source:[B
            iconst_0
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.source:[B
            arraylength
            invokestatic org.jcodings.util.BytesHash.hashCode:([BII)I
            putfield org.jcodings.transcode.Transcoder.hashCode:I
         4: .line 36
            aload 0 /* this */
            iload 3 /* treeStart */
            putfield org.jcodings.transcode.Transcoder.treeStart:I
         5: .line 38
            getstatic org.jcodings.transcode.Transcoder.byteArrayHash:Lorg/jcodings/util/ObjHash;
            aload 4 /* arrayKey */
            invokevirtual org.jcodings.util.ObjHash.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 10 /* bytes */
        start local 10 // byte[] bytes
         6: .line 39
            aload 10 /* bytes */
            ifnonnull 7
            getstatic org.jcodings.transcode.Transcoder.byteArrayHash:Lorg/jcodings/util/ObjHash;
            aload 4 /* arrayKey */
            new java.lang.StringBuilder
            dup
            ldc "Transcoder_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* arrayKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_ByteArray"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jcodings.util.ArrayReader.readByteArray:(Ljava/lang/String;)[B
            dup
            astore 10 /* bytes */
            invokevirtual org.jcodings.util.ObjHash.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 40
      StackMap locals: org.jcodings.transcode.Transcoder byte[] byte[] int java.lang.String int int int org.jcodings.transcode.AsciiCompatibility int byte[]
      StackMap stack:
            aload 0 /* this */
            aload 10 /* bytes */
            putfield org.jcodings.transcode.Transcoder.byteArray:[B
         8: .line 42
            getstatic org.jcodings.transcode.Transcoder.wordArrayHash:Lorg/jcodings/util/ObjHash;
            aload 4 /* arrayKey */
            invokevirtual org.jcodings.util.ObjHash.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast int[]
            astore 11 /* ints */
        start local 11 // int[] ints
         9: .line 43
            aload 11 /* ints */
            ifnonnull 10
            getstatic org.jcodings.transcode.Transcoder.wordArrayHash:Lorg/jcodings/util/ObjHash;
            aload 4 /* arrayKey */
            new java.lang.StringBuilder
            dup
            ldc "Transcoder_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* arrayKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_WordArray"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jcodings.util.ArrayReader.readIntArray:(Ljava/lang/String;)[I
            dup
            astore 11 /* ints */
            invokevirtual org.jcodings.util.ObjHash.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 44
      StackMap locals: int[]
      StackMap stack:
            aload 0 /* this */
            aload 11 /* ints */
            putfield org.jcodings.transcode.Transcoder.intArray:[I
        11: .line 46
            aload 0 /* this */
            iload 5 /* inputUnitLength */
            putfield org.jcodings.transcode.Transcoder.inputUnitLength:I
        12: .line 47
            aload 0 /* this */
            iload 6 /* maxInput */
            putfield org.jcodings.transcode.Transcoder.maxInput:I
        13: .line 48
            aload 0 /* this */
            iload 7 /* maxOutput */
            putfield org.jcodings.transcode.Transcoder.maxOutput:I
        14: .line 49
            aload 0 /* this */
            aload 8 /* compatibility */
            putfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
        15: .line 50
            aload 0 /* this */
            iload 9 /* stateSize */
            putfield org.jcodings.transcode.Transcoder.stateSize:I
        16: .line 51
            return
        end local 11 // int[] ints
        end local 10 // byte[] bytes
        end local 9 // int stateSize
        end local 8 // org.jcodings.transcode.AsciiCompatibility compatibility
        end local 7 // int maxOutput
        end local 6 // int maxInput
        end local 5 // int inputUnitLength
        end local 4 // java.lang.String arrayKey
        end local 3 // int treeStart
        end local 2 // byte[] destination
        end local 1 // byte[] source
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lorg/jcodings/transcode/Transcoder;
            0   17     1           source  [B
            0   17     2      destination  [B
            0   17     3        treeStart  I
            0   17     4         arrayKey  Ljava/lang/String;
            0   17     5  inputUnitLength  I
            0   17     6         maxInput  I
            0   17     7        maxOutput  I
            0   17     8    compatibility  Lorg/jcodings/transcode/AsciiCompatibility;
            0   17     9        stateSize  I
            6   17    10            bytes  [B
            9   17    11             ints  [I
    MethodParameters:
                 Name  Flags
      source           
      destination      
      treeStart        
      arrayKey         
      inputUnitLength  
      maxInput         
      maxOutput        
      compatibility    
      stateSize        

  protected void <init>(java.lang.String, java.lang.String, int, java.lang.String, int, int, int, org.jcodings.transcode.AsciiCompatibility, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IIILorg/jcodings/transcode/AsciiCompatibility;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=10, locals=10, args_size=10
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // java.lang.String source
        start local 2 // java.lang.String destination
        start local 3 // int treeStart
        start local 4 // java.lang.String arrayKey
        start local 5 // int inputUnitLength
        start local 6 // int maxInput
        start local 7 // int maxOutput
        start local 8 // org.jcodings.transcode.AsciiCompatibility compatibility
        start local 9 // int stateSize
         0: .line 55
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual java.lang.String.getBytes:()[B
            aload 2 /* destination */
            invokevirtual java.lang.String.getBytes:()[B
            iload 3 /* treeStart */
            aload 4 /* arrayKey */
            iload 5 /* inputUnitLength */
            iload 6 /* maxInput */
            iload 7 /* maxOutput */
            aload 8 /* compatibility */
            iload 9 /* stateSize */
            invokespecial org.jcodings.transcode.Transcoder.<init>:([B[BILjava/lang/String;IIILorg/jcodings/transcode/AsciiCompatibility;I)V
         1: .line 56
            return
        end local 9 // int stateSize
        end local 8 // org.jcodings.transcode.AsciiCompatibility compatibility
        end local 7 // int maxOutput
        end local 6 // int maxInput
        end local 5 // int inputUnitLength
        end local 4 // java.lang.String arrayKey
        end local 3 // int treeStart
        end local 2 // java.lang.String destination
        end local 1 // java.lang.String source
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/jcodings/transcode/Transcoder;
            0    2     1           source  Ljava/lang/String;
            0    2     2      destination  Ljava/lang/String;
            0    2     3        treeStart  I
            0    2     4         arrayKey  Ljava/lang/String;
            0    2     5  inputUnitLength  I
            0    2     6         maxInput  I
            0    2     7        maxOutput  I
            0    2     8    compatibility  Lorg/jcodings/transcode/AsciiCompatibility;
            0    2     9        stateSize  I
    MethodParameters:
                 Name  Flags
      source           
      destination      
      treeStart        
      arrayKey         
      inputUnitLength  
      maxInput         
      maxOutput        
      compatibility    
      stateSize        

  public byte[] getSource();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.Transcoder this
         0: .line 59
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.source:[B
            areturn
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcodings/transcode/Transcoder;

  public byte[] getDestination();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.Transcoder this
         0: .line 63
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.destination:[B
            areturn
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcodings/transcode/Transcoder;

  public boolean hasStateInit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.Transcoder this
         0: .line 82
            iconst_0
            ireturn
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcodings/transcode/Transcoder;

  public int stateInit(byte[]);
    descriptor: ([B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
         0: .line 86
            iconst_0
            ireturn
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
    MethodParameters:
        Name  Flags
      statep  

  public int stateFinish(byte[]);
    descriptor: ([B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] stateFinish
         0: .line 90
            iconst_0
            ireturn
        end local 1 // byte[] stateFinish
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  stateFinish  [B
    MethodParameters:
             Name  Flags
      stateFinish  

  public int infoToInfo(byte[], int);
    descriptor: ([BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
        start local 2 // int o
         0: .line 94
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unimplemented infoToInfo needed in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // int o
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
            0    1     2       o  I
    MethodParameters:
        Name  Flags
      statep  
      o       

  public int startToInfo(byte[], byte[], int, int);
    descriptor: ([B[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
        start local 2 // byte[] s
        start local 3 // int sStart
        start local 4 // int l
         0: .line 98
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unimplemented startToInfo needed in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int l
        end local 3 // int sStart
        end local 2 // byte[] s
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
            0    1     2       s  [B
            0    1     3  sStart  I
            0    1     4       l  I
    MethodParameters:
        Name  Flags
      statep  
      s       
      sStart  
      l       

  public int infoToOutput(byte[], int, byte[], int, int);
    descriptor: ([BI[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
        start local 2 // int nextInfo
        start local 3 // byte[] p
        start local 4 // int start
        start local 5 // int size
         0: .line 102
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unimplemented intoToOutput needed in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // int size
        end local 4 // int start
        end local 3 // byte[] p
        end local 2 // int nextInfo
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jcodings/transcode/Transcoder;
            0    1     1    statep  [B
            0    1     2  nextInfo  I
            0    1     3         p  [B
            0    1     4     start  I
            0    1     5      size  I
    MethodParameters:
          Name  Flags
      statep    
      nextInfo  
      p         
      start     
      size      

  public boolean hasFinish();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.Transcoder this
         0: .line 106
            iconst_0
            ireturn
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcodings/transcode/Transcoder;

  public int finish(byte[], byte[], int, int);
    descriptor: ([B[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=5, args_size=5
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
        start local 2 // byte[] p
        start local 3 // int start
        start local 4 // int size
         0: .line 110
            iconst_0
            ireturn
        end local 4 // int size
        end local 3 // int start
        end local 2 // byte[] p
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
            0    1     2       p  [B
            0    1     3   start  I
            0    1     4    size  I
    MethodParameters:
        Name  Flags
      statep  
      p       
      start   
      size    

  public int resetSize(byte[]);
    descriptor: ([B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
         0: .line 114
            iconst_0
            ireturn
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
    MethodParameters:
        Name  Flags
      statep  

  public int resetState(byte[], byte[], int, int);
    descriptor: ([B[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=5, args_size=5
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
        start local 2 // byte[] p
        start local 3 // int start
        start local 4 // int size
         0: .line 118
            iconst_0
            ireturn
        end local 4 // int size
        end local 3 // int start
        end local 2 // byte[] p
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
            0    1     2       p  [B
            0    1     3   start  I
            0    1     4    size  I
    MethodParameters:
        Name  Flags
      statep  
      p       
      start   
      size    

  public int startToOutput(byte[], byte[], int, int, byte[], int, int);
    descriptor: ([B[BII[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=8
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
        start local 2 // byte[] s
        start local 3 // int sStart
        start local 4 // int l
        start local 5 // byte[] o
        start local 6 // int oStart
        start local 7 // int oSize
         0: .line 122
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unimplemented startToOutput needed in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // int oSize
        end local 6 // int oStart
        end local 5 // byte[] o
        end local 4 // int l
        end local 3 // int sStart
        end local 2 // byte[] s
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
            0    1     2       s  [B
            0    1     3  sStart  I
            0    1     4       l  I
            0    1     5       o  [B
            0    1     6  oStart  I
            0    1     7   oSize  I
    MethodParameters:
        Name  Flags
      statep  
      s       
      sStart  
      l       
      o       
      oStart  
      oSize   

  public int startInfoToOutput(byte[], byte[], int, int, int, byte[], int, int);
    descriptor: ([B[BIII[BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=9
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // byte[] statep
        start local 2 // byte[] s
        start local 3 // int sStart
        start local 4 // int l
        start local 5 // int info
        start local 6 // byte[] o
        start local 7 // int oStart
        start local 8 // int oSize
         0: .line 126
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unimplemented startInfoToOutput needed in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // int oSize
        end local 7 // int oStart
        end local 6 // byte[] o
        end local 5 // int info
        end local 4 // int l
        end local 3 // int sStart
        end local 2 // byte[] s
        end local 1 // byte[] statep
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jcodings/transcode/Transcoder;
            0    1     1  statep  [B
            0    1     2       s  [B
            0    1     3  sStart  I
            0    1     4       l  I
            0    1     5    info  I
            0    1     6       o  [B
            0    1     7  oStart  I
            0    1     8   oSize  I
    MethodParameters:
        Name  Flags
      statep  
      s       
      sStart  
      l       
      info    
      o       
      oStart  
      oSize   

  public final org.jcodings.transcode.Transcoding transcoding(int);
    descriptor: (I)Lorg/jcodings/transcode/Transcoding;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jcodings.transcode.Transcoder this
        start local 1 // int flags
         0: .line 131
            new org.jcodings.transcode.Transcoding
            dup
            aload 0 /* this */
            iload 1 /* flags */
            invokespecial org.jcodings.transcode.Transcoding.<init>:(Lorg/jcodings/transcode/Transcoder;I)V
            astore 2 /* tc */
        start local 2 // org.jcodings.transcode.Transcoding tc
         1: .line 133
            aload 0 /* this */
            invokevirtual org.jcodings.transcode.Transcoder.hasStateInit:()Z
            ifeq 3
         2: .line 134
            aload 0 /* this */
            aload 2 /* tc */
            getfield org.jcodings.transcode.Transcoding.state:[B
            invokevirtual org.jcodings.transcode.Transcoder.stateInit:([B)I
            pop
         3: .line 137
      StackMap locals: org.jcodings.transcode.Transcoding
      StackMap stack:
            aload 2 /* tc */
            areturn
        end local 2 // org.jcodings.transcode.Transcoding tc
        end local 1 // int flags
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/jcodings/transcode/Transcoder;
            0    4     1  flags  I
            1    4     2     tc  Lorg/jcodings/transcode/Transcoding;
    MethodParameters:
       Name  Flags
      flags  

  public static org.jcodings.transcode.Transcoder load(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jcodings/transcode/Transcoder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String name
         0: .line 141
            aload 0 /* name */
            astore 1 /* encClassName */
        start local 1 // java.lang.String encClassName
         1: .line 145
            aload 1 /* encClassName */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* encClass */
        start local 2 // java.lang.Class encClass
         2: .line 146
            goto 5
        end local 2 // java.lang.Class encClass
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
         3: pop
         4: .line 147
            new org.jcodings.exception.InternalException
            dup
            ldc "transcoder class <%n> not found"
            aload 1 /* encClassName */
            invokespecial org.jcodings.exception.InternalException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
        start local 2 // java.lang.Class encClass
         5: .line 151
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* encClass */
            ldc "INSTANCE"
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            aload 2 /* encClass */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jcodings.transcode.Transcoder
         6: areturn
         7: .line 152
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         8: .line 153
            new org.jcodings.exception.InternalException
            dup
            ldc "problem loading transcoder <%n>"
            aload 1 /* encClassName */
            invokespecial org.jcodings.exception.InternalException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Class encClass
        end local 1 // java.lang.String encClassName
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          name  Ljava/lang/String;
            1    9     1  encClassName  Ljava/lang/String;
            2    3     2      encClass  Ljava/lang/Class<*>;
            5    9     2      encClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ClassNotFoundException
           5     6       7  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jcodings.transcode.Transcoder this
         0: .line 187
            new java.lang.StringBuilder
            dup
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.source:[B
            invokespecial java.lang.String.<init>:([B)V
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " => "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.destination:[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcodings/transcode/Transcoder;

  public java.lang.String toStringFull();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.jcodings.transcode.Transcoder this
         0: .line 191
            new java.lang.StringBuilder
            dup
            ldc "Transcoder ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.source:[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " => "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.lang.String
            dup
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.destination:[B
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 192
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  class: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         2: .line 193
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  treeStart: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.treeStart:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         3: .line 194
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  byteArray:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.byteArray:[B
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         4: .line 195
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 8
         6: .line 196
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.byteArray:[B
            iload 2 /* i */
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
         7: .line 195
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            bipush 20
            if_icmplt 6
        end local 2 // int i
         9: .line 198
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "...)\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        10: .line 200
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  wordArray:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.intArray:[I
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        11: .line 201
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        12: goto 15
        13: .line 202
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.intArray:[I
            iload 2 /* i */
            iaload
            i2l
            ldc 4294967295
            land
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        14: .line 201
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 2 /* i */
            bipush 20
            if_icmplt 13
        end local 2 // int i
        16: .line 204
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "...)\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        17: .line 206
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  input unit length: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.inputUnitLength:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        18: .line 207
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  max input: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.maxInput:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        19: .line 208
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  max output: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.maxOutput:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        20: .line 209
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  compatibility: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.compatibility:Lorg/jcodings/transcode/AsciiCompatibility;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        21: .line 210
            new java.lang.StringBuilder
            dup
            aload 1 /* s */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  state size: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jcodings.transcode.Transcoder.stateSize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* s */
        22: .line 211
            aload 1 /* s */
            areturn
        end local 1 // java.lang.String s
        end local 0 // org.jcodings.transcode.Transcoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   23     0  this  Lorg/jcodings/transcode/Transcoder;
            1   23     1     s  Ljava/lang/String;
            5    9     2     i  I
           12   16     2     i  I
}
SourceFile: "Transcoder.java"
NestMembers:
  org.jcodings.transcode.Transcoder$GenericTranscoderEntry
InnerClasses:
  final GenericTranscoderEntry = org.jcodings.transcode.Transcoder$GenericTranscoderEntry of org.jcodings.transcode.Transcoder