public final class com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer
  super_class: java.lang.Object
{
  private static final int MAX_N_CURVES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private float lw2;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  int nbSplits;
    descriptor: I
    flags: (0x0000) 

  final float[] middle;
    descriptor: [F
    flags: (0x0010) ACC_FINAL

  private final float[] subdivTs;
    descriptor: [F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.marlin.Curve curve;
    descriptor: Lcom/sun/marlin/Curve;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.sun.marlin.RendererContext);
    descriptor: (Lcom/sun/marlin/RendererContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
        start local 1 // com.sun.marlin.RendererContext rdrCtx
         0: .line 1069
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1062
            aload 0 /* this */
            bipush 68
            newarray 6
            putfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
         2: .line 1064
            aload 0 /* this */
            bipush 10
            newarray 6
            putfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.subdivTs:[F
         3: .line 1070
            aload 0 /* this */
            aload 1 /* rdrCtx */
            getfield com.sun.marlin.RendererContext.curve:Lcom/sun/marlin/Curve;
            putfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.curve:Lcom/sun/marlin/Curve;
         4: .line 1071
            return
        end local 1 // com.sun.marlin.RendererContext rdrCtx
        end local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
            0    5     1  rdrCtx  Lcom/sun/marlin/RendererContext;
    MethodParameters:
        Name  Flags
      rdrCtx  final

  public void init(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
        start local 1 // float lineWidth
         0: .line 1074
            aload 0 /* this */
            fload 1 /* lineWidth */
            fload 1 /* lineWidth */
            fmul
            ldc 4.0
            fdiv
            putfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.lw2:F
         1: .line 1075
            return
        end local 1 // float lineWidth
        end local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
            0    2     1  lineWidth  F
    MethodParameters:
           Name  Flags
      lineWidth  final

  com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer curve(float, float, float, float, float, float, float, float);
    descriptor: (FFFFFFFF)Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
    flags: (0x0000) 
    Code:
      stack=7, locals=16, args_size=9
        start local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
        start local 1 // float x0
        start local 2 // float y0
        start local 3 // float x1
        start local 4 // float y1
        start local 5 // float x2
        start local 6 // float y2
        start local 7 // float x3
        start local 8 // float y3
         0: .line 1082
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
            astore 9 /* mid */
        start local 9 // float[] mid
         1: .line 1083
            aload 9 /* mid */
            iconst_0
            fload 1 /* x0 */
            fastore
            aload 9 /* mid */
            iconst_1
            fload 2 /* y0 */
            fastore
         2: .line 1084
            aload 9 /* mid */
            iconst_2
            fload 3 /* x1 */
            fastore
            aload 9 /* mid */
            iconst_3
            fload 4 /* y1 */
            fastore
         3: .line 1085
            aload 9 /* mid */
            iconst_4
            fload 5 /* x2 */
            fastore
            aload 9 /* mid */
            iconst_5
            fload 6 /* y2 */
            fastore
         4: .line 1086
            aload 9 /* mid */
            bipush 6
            fload 7 /* x3 */
            fastore
            aload 9 /* mid */
            bipush 7
            fload 8 /* y3 */
            fastore
         5: .line 1088
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.subdivTs:[F
            astore 10 /* subTs */
        start local 10 // float[] subTs
         6: .line 1089
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.curve:Lcom/sun/marlin/Curve;
            aload 9 /* mid */
            aload 10 /* subTs */
            bipush 8
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.lw2:F
            invokestatic com.sun.marlin.Helpers.findSubdivPoints:(Lcom/sun/marlin/Curve;[F[FIF)I
            istore 11 /* nSplits */
        start local 11 // int nSplits
         7: .line 1091
            fconst_0
            fstore 12 /* prevT */
        start local 12 // float prevT
         8: .line 1092
            iconst_0
            istore 13 /* i */
        start local 13 // int i
         9: iconst_0
            istore 14 /* off */
        start local 14 // int off
        10: goto 17
        11: .line 1093
      StackMap locals: com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer float float float float float float float float float[] float[] int float int int
      StackMap stack:
            aload 10 /* subTs */
            iload 13 /* i */
            faload
            fstore 15 /* t */
        start local 15 // float t
        12: .line 1095
            fload 15 /* t */
            fload 12 /* prevT */
            fsub
            fconst_1
            fload 12 /* prevT */
            fsub
            fdiv
        13: .line 1096
            aload 9 /* mid */
            iload 14 /* off */
            aload 9 /* mid */
            iload 14 /* off */
            iload 14 /* off */
            bipush 6
            iadd
        14: .line 1095
            invokestatic com.sun.marlin.Helpers.subdivideCubicAt:(F[FI[FII)V
        15: .line 1097
            fload 15 /* t */
            fstore 12 /* prevT */
        end local 15 // float t
        16: .line 1092
            iinc 13 /* i */ 1
            iinc 14 /* off */ 6
      StackMap locals:
      StackMap stack:
        17: iload 13 /* i */
            iload 11 /* nSplits */
            if_icmplt 11
        end local 14 // int off
        end local 13 // int i
        18: .line 1100
            aload 0 /* this */
            iload 11 /* nSplits */
            putfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
        19: .line 1101
            aload 0 /* this */
            areturn
        end local 12 // float prevT
        end local 11 // int nSplits
        end local 10 // float[] subTs
        end local 9 // float[] mid
        end local 8 // float y3
        end local 7 // float x3
        end local 6 // float y2
        end local 5 // float x2
        end local 4 // float y1
        end local 3 // float x1
        end local 2 // float y0
        end local 1 // float x0
        end local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
            0   20     1       x0  F
            0   20     2       y0  F
            0   20     3       x1  F
            0   20     4       y1  F
            0   20     5       x2  F
            0   20     6       y2  F
            0   20     7       x3  F
            0   20     8       y3  F
            1   20     9      mid  [F
            6   20    10    subTs  [F
            7   20    11  nSplits  I
            8   20    12    prevT  F
            9   18    13        i  I
           10   18    14      off  I
           12   16    15        t  F
    MethodParameters:
      Name  Flags
      x0    final
      y0    final
      x1    final
      y1    final
      x2    final
      y2    final
      x3    final
      y3    final

  com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer quad(float, float, float, float, float, float);
    descriptor: (FFFFFF)Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
    flags: (0x0000) 
    Code:
      stack=7, locals=14, args_size=7
        start local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
        start local 1 // float x0
        start local 2 // float y0
        start local 3 // float x1
        start local 4 // float y1
        start local 5 // float x2
        start local 6 // float y2
         0: .line 1108
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
            astore 7 /* mid */
        start local 7 // float[] mid
         1: .line 1109
            aload 7 /* mid */
            iconst_0
            fload 1 /* x0 */
            fastore
            aload 7 /* mid */
            iconst_1
            fload 2 /* y0 */
            fastore
         2: .line 1110
            aload 7 /* mid */
            iconst_2
            fload 3 /* x1 */
            fastore
            aload 7 /* mid */
            iconst_3
            fload 4 /* y1 */
            fastore
         3: .line 1111
            aload 7 /* mid */
            iconst_4
            fload 5 /* x2 */
            fastore
            aload 7 /* mid */
            iconst_5
            fload 6 /* y2 */
            fastore
         4: .line 1113
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.subdivTs:[F
            astore 8 /* subTs */
        start local 8 // float[] subTs
         5: .line 1114
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.curve:Lcom/sun/marlin/Curve;
            aload 7 /* mid */
            aload 8 /* subTs */
            bipush 6
            aload 0 /* this */
            getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.lw2:F
            invokestatic com.sun.marlin.Helpers.findSubdivPoints:(Lcom/sun/marlin/Curve;[F[FIF)I
            istore 9 /* nSplits */
        start local 9 // int nSplits
         6: .line 1116
            fconst_0
            fstore 10 /* prevt */
        start local 10 // float prevt
         7: .line 1117
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         8: iconst_0
            istore 12 /* off */
        start local 12 // int off
         9: goto 16
        10: .line 1118
      StackMap locals: com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer float float float float float float float[] float[] int float int int
      StackMap stack:
            aload 8 /* subTs */
            iload 11 /* i */
            faload
            fstore 13 /* t */
        start local 13 // float t
        11: .line 1119
            fload 13 /* t */
            fload 10 /* prevt */
            fsub
            fconst_1
            fload 10 /* prevt */
            fsub
            fdiv
        12: .line 1120
            aload 7 /* mid */
            iload 12 /* off */
            aload 7 /* mid */
            iload 12 /* off */
            iload 12 /* off */
            iconst_4
            iadd
        13: .line 1119
            invokestatic com.sun.marlin.Helpers.subdivideQuadAt:(F[FI[FII)V
        14: .line 1121
            fload 13 /* t */
            fstore 10 /* prevt */
        end local 13 // float t
        15: .line 1117
            iinc 11 /* i */ 1
            iinc 12 /* off */ 4
      StackMap locals:
      StackMap stack:
        16: iload 11 /* i */
            iload 9 /* nSplits */
            if_icmplt 10
        end local 12 // int off
        end local 11 // int i
        17: .line 1124
            aload 0 /* this */
            iload 9 /* nSplits */
            putfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
        18: .line 1125
            aload 0 /* this */
            areturn
        end local 10 // float prevt
        end local 9 // int nSplits
        end local 8 // float[] subTs
        end local 7 // float[] mid
        end local 6 // float y2
        end local 5 // float x2
        end local 4 // float y1
        end local 3 // float x1
        end local 2 // float y0
        end local 1 // float x0
        end local 0 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
            0   19     1       x0  F
            0   19     2       y0  F
            0   19     3       x1  F
            0   19     4       y1  F
            0   19     5       x2  F
            0   19     6       y2  F
            1   19     7      mid  [F
            5   19     8    subTs  [F
            6   19     9  nSplits  I
            7   19    10    prevt  F
            8   17    11        i  I
            9   17    12      off  I
           11   15    13        t  F
    MethodParameters:
      Name  Flags
      x0    final
      y0    final
      x1    final
      y1    final
      x2    final
      y2    final
}
SourceFile: "TransformingPathConsumer2D.java"
NestHost: com.sun.marlin.TransformingPathConsumer2D
InnerClasses:
  public final CurveBasicMonotonizer = com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer of com.sun.marlin.TransformingPathConsumer2D