public class org.apache.batik.svggen.font.table.CmapFormat4 extends org.apache.batik.svggen.font.table.CmapFormat
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.batik.svggen.font.table.CmapFormat4
  super_class: org.apache.batik.svggen.font.table.CmapFormat
{
  public int language;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  private int segCountX2;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int searchRange;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int entrySelector;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int rangeShift;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int[] endCode;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int[] startCode;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int[] idDelta;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int[] idRangeOffset;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int[] glyphIdArray;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int segCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int first;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int last;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  protected void <init>(java.io.RandomAccessFile);
    descriptor: (Ljava/io/RandomAccessFile;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
        start local 1 // java.io.RandomAccessFile raf
         0: .line 44
            aload 0 /* this */
            aload 1 /* raf */
            invokespecial org.apache.batik.svggen.font.table.CmapFormat.<init>:(Ljava/io/RandomAccessFile;)V
         1: .line 45
            aload 0 /* this */
            iconst_4
            putfield org.apache.batik.svggen.font.table.CmapFormat4.format:I
         2: .line 46
            aload 0 /* this */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            putfield org.apache.batik.svggen.font.table.CmapFormat4.segCountX2:I
         3: .line 47
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCountX2:I
            iconst_2
            idiv
            putfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
         4: .line 48
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            newarray 10
            putfield org.apache.batik.svggen.font.table.CmapFormat4.endCode:[I
         5: .line 49
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            newarray 10
            putfield org.apache.batik.svggen.font.table.CmapFormat4.startCode:[I
         6: .line 50
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            newarray 10
            putfield org.apache.batik.svggen.font.table.CmapFormat4.idDelta:[I
         7: .line 51
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            newarray 10
            putfield org.apache.batik.svggen.font.table.CmapFormat4.idRangeOffset:[I
         8: .line 52
            aload 0 /* this */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            putfield org.apache.batik.svggen.font.table.CmapFormat4.searchRange:I
         9: .line 53
            aload 0 /* this */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            putfield org.apache.batik.svggen.font.table.CmapFormat4.entrySelector:I
        10: .line 54
            aload 0 /* this */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            putfield org.apache.batik.svggen.font.table.CmapFormat4.rangeShift:I
        11: .line 55
            aload 0 /* this */
            iconst_m1
            putfield org.apache.batik.svggen.font.table.CmapFormat4.last:I
        12: .line 56
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        13: goto 17
        14: .line 57
      StackMap locals: org.apache.batik.svggen.font.table.CmapFormat4 java.io.RandomAccessFile int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.endCode:[I
            iload 2 /* i */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            iastore
        15: .line 58
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.endCode:[I
            iload 2 /* i */
            iaload
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.last:I
            if_icmple 16
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.endCode:[I
            iload 2 /* i */
            iaload
            putfield org.apache.batik.svggen.font.table.CmapFormat4.last:I
        16: .line 56
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 2 /* i */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            if_icmplt 14
        end local 2 // int i
        18: .line 60
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            pop
        19: .line 61
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        20: goto 25
        21: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.startCode:[I
            iload 2 /* i */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            iastore
        22: .line 63
            iload 2 /* i */
            ifeq 23
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.startCode:[I
            iload 2 /* i */
            iaload
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.first:I
            if_icmpge 24
      StackMap locals:
      StackMap stack:
        23: aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.startCode:[I
            iload 2 /* i */
            iaload
            putfield org.apache.batik.svggen.font.table.CmapFormat4.first:I
        24: .line 61
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 2 /* i */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            if_icmplt 21
        end local 2 // int i
        26: .line 65
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        27: goto 30
        28: .line 66
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.idDelta:[I
            iload 2 /* i */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            iastore
        29: .line 65
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 2 /* i */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            if_icmplt 28
        end local 2 // int i
        31: .line 68
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        32: goto 35
        33: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.idRangeOffset:[I
            iload 2 /* i */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            iastore
        34: .line 68
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 2 /* i */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            if_icmplt 33
        end local 2 // int i
        36: .line 73
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.length:I
            bipush 16
            isub
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            bipush 8
            imul
            isub
            iconst_2
            idiv
            istore 2 /* count */
        start local 2 // int count
        37: .line 74
            aload 0 /* this */
            iload 2 /* count */
            newarray 10
            putfield org.apache.batik.svggen.font.table.CmapFormat4.glyphIdArray:[I
        38: .line 75
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        39: goto 42
        40: .line 76
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.glyphIdArray:[I
            iload 3 /* i */
            aload 1 /* raf */
            invokevirtual java.io.RandomAccessFile.readUnsignedShort:()I
            iastore
        41: .line 75
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 40
        end local 3 // int i
        43: .line 78
            return
        end local 2 // int count
        end local 1 // java.io.RandomAccessFile raf
        end local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   44     0   this  Lorg/apache/batik/svggen/font/table/CmapFormat4;
            0   44     1    raf  Ljava/io/RandomAccessFile;
           13   18     2      i  I
           20   26     2      i  I
           27   31     2      i  I
           32   36     2      i  I
           37   44     2  count  I
           39   43     3      i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      raf   

  public int getFirst();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
         0: .line 80
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.first:I
            ireturn
        end local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/batik/svggen/font/table/CmapFormat4;

  public int getLast();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
         0: .line 81
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.last:I
            ireturn
        end local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/batik/svggen/font/table/CmapFormat4;

  public int mapCharCode(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
        start local 1 // int charCode
         0: .line 100
            iload 1 /* charCode */
            iflt 1
            iload 1 /* charCode */
            ldc 65534
            if_icmplt 2
         1: .line 101
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 103
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 15
         4: .line 104
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.endCode:[I
            iload 2 /* i */
            iaload
            iload 1 /* charCode */
            if_icmplt 14
         5: .line 105
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.startCode:[I
            iload 2 /* i */
            iaload
            iload 1 /* charCode */
            if_icmpgt 19
         6: .line 106
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.idRangeOffset:[I
            iload 2 /* i */
            iaload
            ifle 12
         7: .line 107
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.glyphIdArray:[I
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.idRangeOffset:[I
            iload 2 /* i */
            iaload
            iconst_2
            idiv
         8: .line 108
            iload 1 /* charCode */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.startCode:[I
            iload 2 /* i */
            iaload
            isub
            iadd
         9: .line 109
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            iload 2 /* i */
            isub
            isub
        10: .line 107
            iaload
        11: ireturn
        12: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.idDelta:[I
            iload 2 /* i */
            iaload
            iload 1 /* charCode */
            iadd
            ldc 65536
            irem
        13: ireturn
        14: .line 103
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 2 /* i */
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCount:I
            if_icmplt 4
        end local 2 // int i
        16: .line 118
            goto 19
      StackMap locals: org.apache.batik.svggen.font.table.CmapFormat4 int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        17: astore 2 /* e */
        start local 2 // java.lang.ArrayIndexOutOfBoundsException e
        18: .line 119
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "error: Array out of bounds - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.ArrayIndexOutOfBoundsException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // java.lang.ArrayIndexOutOfBoundsException e
        19: .line 121
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int charCode
        end local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lorg/apache/batik/svggen/font/table/CmapFormat4;
            0   20     1  charCode  I
            3   16     2         i  I
           18   19     2         e  Ljava/lang/ArrayIndexOutOfBoundsException;
      Exception table:
        from    to  target  type
           0     1      17  Class java.lang.ArrayIndexOutOfBoundsException
           2    11      17  Class java.lang.ArrayIndexOutOfBoundsException
          12    13      17  Class java.lang.ArrayIndexOutOfBoundsException
          14    16      17  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
          Name  Flags
      charCode  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
         0: .line 125
            new java.lang.StringBuffer
            dup
            bipush 80
            invokespecial java.lang.StringBuffer.<init>:(I)V
         1: .line 126
            aload 0 /* this */
            invokespecial org.apache.batik.svggen.font.table.CmapFormat.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
         2: .line 127
            ldc ", segCountX2: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
         3: .line 128
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.segCountX2:I
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
         4: .line 129
            ldc ", searchRange: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
         5: .line 130
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.searchRange:I
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
         6: .line 131
            ldc ", entrySelector: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
         7: .line 132
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.entrySelector:I
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
         8: .line 133
            ldc ", rangeShift: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
         9: .line 134
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.rangeShift:I
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
        10: .line 135
            ldc ", endCode: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
        11: .line 136
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.endCode:[I
            invokestatic org.apache.batik.svggen.font.table.CmapFormat4.intToStr:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
        12: .line 137
            ldc ", startCode: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
        13: .line 138
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.startCode:[I
            invokestatic org.apache.batik.svggen.font.table.CmapFormat4.intToStr:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
        14: .line 139
            ldc ", idDelta: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
        15: .line 140
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.idDelta:[I
            invokestatic org.apache.batik.svggen.font.table.CmapFormat4.intToStr:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
        16: .line 141
            ldc ", idRangeOffset: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
        17: .line 142
            aload 0 /* this */
            getfield org.apache.batik.svggen.font.table.CmapFormat4.idRangeOffset:[I
            invokestatic org.apache.batik.svggen.font.table.CmapFormat4.intToStr:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
        18: .line 125
            areturn
        end local 0 // org.apache.batik.svggen.font.table.CmapFormat4 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/apache/batik/svggen/font/table/CmapFormat4;

  private static java.lang.String intToStr(int[]);
    descriptor: ([I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // int[] array
         0: .line 153
            aload 0 /* array */
            arraylength
            istore 1 /* nSlots */
        start local 1 // int nSlots
         1: .line 154
            new java.lang.StringBuffer
            dup
            iload 1 /* nSlots */
            bipush 8
            imul
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* workBuff */
        start local 2 // java.lang.StringBuffer workBuff
         2: .line 155
            aload 2 /* workBuff */
            bipush 91
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         3: .line 156
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 9
         5: .line 157
      StackMap locals: int java.lang.StringBuffer int
      StackMap stack:
            aload 2 /* workBuff */
            aload 0 /* array */
            iload 3 /* i */
            iaload
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
            pop
         6: .line 158
            iload 3 /* i */
            iload 1 /* nSlots */
            iconst_1
            isub
            if_icmpge 8
         7: .line 159
            aload 2 /* workBuff */
            bipush 44
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         8: .line 156
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 1 /* nSlots */
            if_icmplt 5
        end local 3 // int i
        10: .line 162
            aload 2 /* workBuff */
            bipush 93
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        11: .line 163
            aload 2 /* workBuff */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuffer workBuff
        end local 1 // int nSlots
        end local 0 // int[] array
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0     array  [I
            1   12     1    nSlots  I
            2   12     2  workBuff  Ljava/lang/StringBuffer;
            4   10     3         i  I
    MethodParameters:
       Name  Flags
      array  
}
SourceFile: "CmapFormat4.java"