class com.sun.glass.ui.monocle.MonocleRobot extends com.sun.glass.ui.GlassRobot
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.glass.ui.monocle.MonocleRobot
  super_class: com.sun.glass.ui.GlassRobot
{
  private static volatile int[] $SWITCH_TABLE$javafx$scene$input$MouseButton;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
         0: .line 40
            aload 0 /* this */
            invokespecial com.sun.glass.ui.GlassRobot.<init>:()V
            return
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/glass/ui/monocle/MonocleRobot;

  public void create();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
         0: .line 44
            return
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/glass/ui/monocle/MonocleRobot;

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
         0: .line 49
            return
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/glass/ui/monocle/MonocleRobot;

  public void keyPress(javafx.scene.input.KeyCode);
    descriptor: (Ljavafx/scene/input/KeyCode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // javafx.scene.input.KeyCode code
         0: .line 53
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 54
            new com.sun.glass.ui.monocle.KeyState
            dup
            invokespecial com.sun.glass.ui.monocle.KeyState.<init>:()V
            astore 2 /* state */
        start local 2 // com.sun.glass.ui.monocle.KeyState state
         2: .line 55
            invokestatic com.sun.glass.ui.monocle.KeyInput.getInstance:()Lcom/sun/glass/ui/monocle/KeyInput;
            aload 2 /* state */
            invokevirtual com.sun.glass.ui.monocle.KeyInput.getState:(Lcom/sun/glass/ui/monocle/KeyState;)V
         3: .line 56
            aload 2 /* state */
            aload 1 /* code */
            invokevirtual javafx.scene.input.KeyCode.getCode:()I
            invokevirtual com.sun.glass.ui.monocle.KeyState.pressKey:(I)V
         4: .line 57
            invokestatic com.sun.glass.ui.monocle.KeyInput.getInstance:()Lcom/sun/glass/ui/monocle/KeyInput;
            aload 2 /* state */
            invokevirtual com.sun.glass.ui.monocle.KeyInput.setState:(Lcom/sun/glass/ui/monocle/KeyState;)V
         5: .line 58
            return
        end local 2 // com.sun.glass.ui.monocle.KeyState state
        end local 1 // javafx.scene.input.KeyCode code
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0    6     1   code  Ljavafx/scene/input/KeyCode;
            2    6     2  state  Lcom/sun/glass/ui/monocle/KeyState;
    MethodParameters:
      Name  Flags
      code  

  public void keyRelease(javafx.scene.input.KeyCode);
    descriptor: (Ljavafx/scene/input/KeyCode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // javafx.scene.input.KeyCode code
         0: .line 62
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 63
            new com.sun.glass.ui.monocle.KeyState
            dup
            invokespecial com.sun.glass.ui.monocle.KeyState.<init>:()V
            astore 2 /* state */
        start local 2 // com.sun.glass.ui.monocle.KeyState state
         2: .line 64
            invokestatic com.sun.glass.ui.monocle.KeyInput.getInstance:()Lcom/sun/glass/ui/monocle/KeyInput;
            aload 2 /* state */
            invokevirtual com.sun.glass.ui.monocle.KeyInput.getState:(Lcom/sun/glass/ui/monocle/KeyState;)V
         3: .line 65
            aload 2 /* state */
            aload 1 /* code */
            invokevirtual javafx.scene.input.KeyCode.getCode:()I
            invokevirtual com.sun.glass.ui.monocle.KeyState.releaseKey:(I)V
         4: .line 66
            invokestatic com.sun.glass.ui.monocle.KeyInput.getInstance:()Lcom/sun/glass/ui/monocle/KeyInput;
            aload 2 /* state */
            invokevirtual com.sun.glass.ui.monocle.KeyInput.setState:(Lcom/sun/glass/ui/monocle/KeyState;)V
         5: .line 67
            return
        end local 2 // com.sun.glass.ui.monocle.KeyState state
        end local 1 // javafx.scene.input.KeyCode code
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0    6     1   code  Ljavafx/scene/input/KeyCode;
            2    6     2  state  Lcom/sun/glass/ui/monocle/KeyState;
    MethodParameters:
      Name  Flags
      code  

  public void mouseMove(double, double);
    descriptor: (DD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // double x
        start local 3 // double y
         0: .line 71
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 72
            new com.sun.glass.ui.monocle.MouseState
            dup
            invokespecial com.sun.glass.ui.monocle.MouseState.<init>:()V
            astore 5 /* state */
        start local 5 // com.sun.glass.ui.monocle.MouseState state
         2: .line 73
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            aload 5 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseInput.getState:(Lcom/sun/glass/ui/monocle/MouseState;)V
         3: .line 74
            aload 5 /* state */
            dload 1 /* x */
            d2i
            invokevirtual com.sun.glass.ui.monocle.MouseState.setX:(I)V
         4: .line 75
            aload 5 /* state */
            dload 3 /* y */
            d2i
            invokevirtual com.sun.glass.ui.monocle.MouseState.setY:(I)V
         5: .line 76
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            aload 5 /* state */
            iconst_0
            invokevirtual com.sun.glass.ui.monocle.MouseInput.setState:(Lcom/sun/glass/ui/monocle/MouseState;Z)V
         6: .line 77
            return
        end local 5 // com.sun.glass.ui.monocle.MouseState state
        end local 3 // double y
        end local 1 // double x
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0    7     1      x  D
            0    7     3      y  D
            2    7     5  state  Lcom/sun/glass/ui/monocle/MouseState;
    MethodParameters:
      Name  Flags
      x     
      y     

  private static com.sun.glass.ui.monocle.MouseState convertToMouseState(boolean, com.sun.glass.ui.monocle.MouseState, javafx.scene.input.MouseButton[]);
    descriptor: (ZLcom/sun/glass/ui/monocle/MouseState;[Ljavafx/scene/input/MouseButton;)Lcom/sun/glass/ui/monocle/MouseState;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // boolean press
        start local 1 // com.sun.glass.ui.monocle.MouseState state
        start local 2 // javafx.scene.input.MouseButton[] buttons
         0: .line 80
            aload 2 /* buttons */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 22
      StackMap locals: int com.sun.glass.ui.monocle.MouseState javafx.scene.input.MouseButton[] top int int javafx.scene.input.MouseButton[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* button */
        start local 3 // javafx.scene.input.MouseButton button
         2: .line 81
            invokestatic com.sun.glass.ui.monocle.MonocleRobot.$SWITCH_TABLE$javafx$scene$input$MouseButton:()[I
            aload 3 /* button */
            invokevirtual javafx.scene.input.MouseButton.ordinal:()I
            iaload
            tableswitch { // 2 - 4
                    2: 3
                    3: 13
                    4: 8
              default: 18
          }
         3: .line 83
      StackMap locals: int com.sun.glass.ui.monocle.MouseState javafx.scene.input.MouseButton[] javafx.scene.input.MouseButton int int javafx.scene.input.MouseButton[]
      StackMap stack:
            iload 0 /* press */
            ifeq 6
         4: .line 84
            aload 1 /* state */
            sipush 212
            invokevirtual com.sun.glass.ui.monocle.MouseState.pressButton:(I)V
         5: .line 85
            goto 21
         6: .line 86
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            sipush 212
            invokevirtual com.sun.glass.ui.monocle.MouseState.releaseButton:(I)V
         7: .line 88
            goto 21
         8: .line 90
      StackMap locals:
      StackMap stack:
            iload 0 /* press */
            ifeq 11
         9: .line 91
            aload 1 /* state */
            sipush 213
            invokevirtual com.sun.glass.ui.monocle.MouseState.pressButton:(I)V
        10: .line 92
            goto 21
        11: .line 93
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            sipush 213
            invokevirtual com.sun.glass.ui.monocle.MouseState.releaseButton:(I)V
        12: .line 95
            goto 21
        13: .line 97
      StackMap locals:
      StackMap stack:
            iload 0 /* press */
            ifeq 16
        14: .line 98
            aload 1 /* state */
            sipush 214
            invokevirtual com.sun.glass.ui.monocle.MouseState.pressButton:(I)V
        15: .line 99
            goto 21
        16: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* state */
            sipush 214
            invokevirtual com.sun.glass.ui.monocle.MouseState.releaseButton:(I)V
        17: .line 102
            goto 21
        18: .line 103
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "MouseButton: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* button */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        19: .line 104
            ldc " not supported by Monocle Robot"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 103
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // javafx.scene.input.MouseButton button
        21: .line 80
      StackMap locals: int com.sun.glass.ui.monocle.MouseState javafx.scene.input.MouseButton[] top int int javafx.scene.input.MouseButton[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        22: iload 4
            iload 5
            if_icmplt 1
        23: .line 107
            aload 1 /* state */
            areturn
        end local 2 // javafx.scene.input.MouseButton[] buttons
        end local 1 // com.sun.glass.ui.monocle.MouseState state
        end local 0 // boolean press
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0    press  Z
            0   24     1    state  Lcom/sun/glass/ui/monocle/MouseState;
            0   24     2  buttons  [Ljavafx/scene/input/MouseButton;
            2   21     3   button  Ljavafx/scene/input/MouseButton;
    MethodParameters:
         Name  Flags
      press    
      state    
      buttons  

  public void mousePress(javafx.scene.input.MouseButton[]);
    descriptor: ([Ljavafx/scene/input/MouseButton;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // javafx.scene.input.MouseButton[] buttons
         0: .line 112
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 113
            new com.sun.glass.ui.monocle.MouseState
            dup
            invokespecial com.sun.glass.ui.monocle.MouseState.<init>:()V
            astore 2 /* state */
        start local 2 // com.sun.glass.ui.monocle.MouseState state
         2: .line 114
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            aload 2 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseInput.getState:(Lcom/sun/glass/ui/monocle/MouseState;)V
         3: .line 115
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            iconst_1
            aload 2 /* state */
            aload 1 /* buttons */
            invokestatic com.sun.glass.ui.monocle.MonocleRobot.convertToMouseState:(ZLcom/sun/glass/ui/monocle/MouseState;[Ljavafx/scene/input/MouseButton;)Lcom/sun/glass/ui/monocle/MouseState;
            iconst_0
            invokevirtual com.sun.glass.ui.monocle.MouseInput.setState:(Lcom/sun/glass/ui/monocle/MouseState;Z)V
         4: .line 116
            return
        end local 2 // com.sun.glass.ui.monocle.MouseState state
        end local 1 // javafx.scene.input.MouseButton[] buttons
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0    5     1  buttons  [Ljavafx/scene/input/MouseButton;
            2    5     2    state  Lcom/sun/glass/ui/monocle/MouseState;
    MethodParameters:
         Name  Flags
      buttons  

  public void mouseRelease(javafx.scene.input.MouseButton[]);
    descriptor: ([Ljavafx/scene/input/MouseButton;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // javafx.scene.input.MouseButton[] buttons
         0: .line 120
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 121
            new com.sun.glass.ui.monocle.MouseState
            dup
            invokespecial com.sun.glass.ui.monocle.MouseState.<init>:()V
            astore 2 /* state */
        start local 2 // com.sun.glass.ui.monocle.MouseState state
         2: .line 122
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            aload 2 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseInput.getState:(Lcom/sun/glass/ui/monocle/MouseState;)V
         3: .line 123
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            iconst_0
            aload 2 /* state */
            aload 1 /* buttons */
            invokestatic com.sun.glass.ui.monocle.MonocleRobot.convertToMouseState:(ZLcom/sun/glass/ui/monocle/MouseState;[Ljavafx/scene/input/MouseButton;)Lcom/sun/glass/ui/monocle/MouseState;
            iconst_0
            invokevirtual com.sun.glass.ui.monocle.MouseInput.setState:(Lcom/sun/glass/ui/monocle/MouseState;Z)V
         4: .line 124
            return
        end local 2 // com.sun.glass.ui.monocle.MouseState state
        end local 1 // javafx.scene.input.MouseButton[] buttons
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0    5     1  buttons  [Ljavafx/scene/input/MouseButton;
            2    5     2    state  Lcom/sun/glass/ui/monocle/MouseState;
    MethodParameters:
         Name  Flags
      buttons  

  public void mouseWheel(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // int wheelAmt
         0: .line 128
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 129
            new com.sun.glass.ui.monocle.MouseState
            dup
            invokespecial com.sun.glass.ui.monocle.MouseState.<init>:()V
            astore 2 /* state */
        start local 2 // com.sun.glass.ui.monocle.MouseState state
         2: .line 130
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            astore 3 /* mouse */
        start local 3 // com.sun.glass.ui.monocle.MouseInput mouse
         3: .line 131
            aload 3 /* mouse */
            aload 2 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseInput.getState:(Lcom/sun/glass/ui/monocle/MouseState;)V
         4: .line 132
            iload 1 /* wheelAmt */
            ifge 6
         5: .line 133
            iconst_m1
            goto 7
         6: .line 134
      StackMap locals: com.sun.glass.ui.monocle.MouseState com.sun.glass.ui.monocle.MouseInput
      StackMap stack:
            iconst_1
         7: .line 132
      StackMap locals:
      StackMap stack: int
            istore 4 /* direction */
        start local 4 // int direction
         8: .line 135
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 15
        10: .line 136
      StackMap locals: int int
      StackMap stack:
            aload 2 /* state */
            iload 4 /* direction */
            invokevirtual com.sun.glass.ui.monocle.MouseState.setWheel:(I)V
        11: .line 137
            aload 3 /* mouse */
            aload 2 /* state */
            iconst_0
            invokevirtual com.sun.glass.ui.monocle.MouseInput.setState:(Lcom/sun/glass/ui/monocle/MouseState;Z)V
        12: .line 138
            aload 2 /* state */
            iconst_0
            invokevirtual com.sun.glass.ui.monocle.MouseState.setWheel:(I)V
        13: .line 139
            aload 3 /* mouse */
            aload 2 /* state */
            iconst_0
            invokevirtual com.sun.glass.ui.monocle.MouseInput.setState:(Lcom/sun/glass/ui/monocle/MouseState;Z)V
        14: .line 135
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            iload 1 /* wheelAmt */
            invokestatic java.lang.Math.abs:(I)I
            if_icmplt 10
        end local 5 // int i
        16: .line 141
            return
        end local 4 // int direction
        end local 3 // com.sun.glass.ui.monocle.MouseInput mouse
        end local 2 // com.sun.glass.ui.monocle.MouseState state
        end local 1 // int wheelAmt
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0   17     1   wheelAmt  I
            2   17     2      state  Lcom/sun/glass/ui/monocle/MouseState;
            3   17     3      mouse  Lcom/sun/glass/ui/monocle/MouseInput;
            8   17     4  direction  I
            9   16     5          i  I
    MethodParameters:
          Name  Flags
      wheelAmt  

  public double getMouseX();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
         0: .line 145
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 146
            new com.sun.glass.ui.monocle.MouseState
            dup
            invokespecial com.sun.glass.ui.monocle.MouseState.<init>:()V
            astore 1 /* state */
        start local 1 // com.sun.glass.ui.monocle.MouseState state
         2: .line 147
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            aload 1 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseInput.getState:(Lcom/sun/glass/ui/monocle/MouseState;)V
         3: .line 148
            aload 1 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseState.getX:()I
            i2d
            dreturn
        end local 1 // com.sun.glass.ui.monocle.MouseState state
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            2    4     1  state  Lcom/sun/glass/ui/monocle/MouseState;

  public double getMouseY();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
         0: .line 153
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 154
            new com.sun.glass.ui.monocle.MouseState
            dup
            invokespecial com.sun.glass.ui.monocle.MouseState.<init>:()V
            astore 1 /* state */
        start local 1 // com.sun.glass.ui.monocle.MouseState state
         2: .line 155
            invokestatic com.sun.glass.ui.monocle.MouseInput.getInstance:()Lcom/sun/glass/ui/monocle/MouseInput;
            aload 1 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseInput.getState:(Lcom/sun/glass/ui/monocle/MouseState;)V
         3: .line 156
            aload 1 /* state */
            invokevirtual com.sun.glass.ui.monocle.MouseState.getY:()I
            i2d
            dreturn
        end local 1 // com.sun.glass.ui.monocle.MouseState state
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            2    4     1  state  Lcom/sun/glass/ui/monocle/MouseState;

  public javafx.scene.paint.Color getPixelColor(double, double);
    descriptor: (DD)Ljavafx/scene/paint/Color;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // double x
        start local 3 // double y
         0: .line 161
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 162
            invokestatic com.sun.glass.ui.monocle.NativePlatformFactory.getNativePlatform:()Lcom/sun/glass/ui/monocle/NativePlatform;
            invokevirtual com.sun.glass.ui.monocle.NativePlatform.getScreen:()Lcom/sun/glass/ui/monocle/NativeScreen;
            astore 5 /* screen */
        start local 5 // com.sun.glass.ui.monocle.NativeScreen screen
         2: .line 163
            aload 5 /* screen */
            invokeinterface com.sun.glass.ui.monocle.NativeScreen.getDepth:()I
            iconst_3
            iushr
            istore 6 /* byteDepth */
        start local 6 // int byteDepth
         3: .line 164
            aload 5 /* screen */
            invokeinterface com.sun.glass.ui.monocle.NativeScreen.getWidth:()I
            istore 7 /* bwidth */
        start local 7 // int bwidth
         4: .line 165
            aload 5 /* screen */
            invokeinterface com.sun.glass.ui.monocle.NativeScreen.getHeight:()I
            istore 8 /* bheight */
        start local 8 // int bheight
         5: .line 167
            dload 1 /* x */
            dconst_0
            dcmpg
            iflt 6
            dload 1 /* x */
            iload 7 /* bwidth */
            i2d
            dcmpl
            ifgt 6
            dload 3 /* y */
            dconst_0
            dcmpg
            iflt 6
            dload 3 /* y */
            iload 8 /* bheight */
            i2d
            dcmpl
            ifle 7
         6: .line 168
      StackMap locals: com.sun.glass.ui.monocle.MonocleRobot double double com.sun.glass.ui.monocle.NativeScreen int int int
      StackMap stack:
            iconst_0
            invokestatic com.sun.glass.ui.GlassRobot.convertFromIntArgb:(I)Ljavafx/scene/paint/Color;
            areturn
         7: .line 171
      StackMap locals:
      StackMap stack:
            getstatic com.sun.glass.ui.monocle.NativeScreen.framebufferSwapLock:Ljava/lang/Object;
            dup
            astore 9
            monitorenter
         8: .line 173
            aload 5 /* screen */
            invokeinterface com.sun.glass.ui.monocle.NativeScreen.getScreenCapture:()Ljava/nio/ByteBuffer;
            astore 10 /* buffer */
        start local 10 // java.nio.ByteBuffer buffer
         9: .line 175
            iload 6 /* byteDepth */
            iconst_2
            if_icmpne 24
        10: .line 176
            aload 10 /* buffer */
            invokevirtual java.nio.ByteBuffer.asShortBuffer:()Ljava/nio/ShortBuffer;
            astore 11 /* shortbuf */
        start local 11 // java.nio.ShortBuffer shortbuf
        11: .line 178
            aload 11 /* shortbuf */
            dload 3 /* y */
            iload 7 /* bwidth */
            i2d
            dmul
            d2i
            dload 1 /* x */
            d2i
            iadd
            invokevirtual java.nio.ShortBuffer.get:(I)S
            istore 12 /* v */
        start local 12 // int v
        12: .line 179
            iload 12 /* v */
            ldc 63488
            iand
            bipush 11
            ishr
            iconst_3
            ishl
            istore 13 /* red */
        start local 13 // int red
        13: .line 180
            iload 12 /* v */
            sipush 2016
            iand
            iconst_5
            ishr
            iconst_2
            ishl
            istore 14 /* green */
        start local 14 // int green
        14: .line 181
            iload 12 /* v */
            bipush 31
            iand
            iconst_3
            ishl
            istore 15 /* blue */
        start local 15 // int blue
        15: .line 183
            ldc -16777216
        16: .line 184
            iload 13 /* red */
            bipush 16
            ishl
        17: .line 183
            ior
        18: .line 185
            iload 14 /* green */
            bipush 8
            ishl
        19: .line 183
            ior
        20: .line 186
            iload 15 /* blue */
        21: .line 183
            ior
            istore 16 /* p */
        start local 16 // int p
        22: .line 187
            iload 16 /* p */
            invokestatic com.sun.glass.ui.GlassRobot.convertFromIntArgb:(I)Ljavafx/scene/paint/Color;
            aload 9
            monitorexit
        23: areturn
        end local 16 // int p
        end local 15 // int blue
        end local 14 // int green
        end local 13 // int red
        end local 12 // int v
        end local 11 // java.nio.ShortBuffer shortbuf
        24: .line 188
      StackMap locals: java.lang.Object java.nio.ByteBuffer
      StackMap stack:
            iload 6 /* byteDepth */
            iconst_4
            if_icmplt 28
        25: .line 189
            aload 10 /* buffer */
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            astore 11 /* intbuf */
        start local 11 // java.nio.IntBuffer intbuf
        26: .line 190
            aload 11 /* intbuf */
            dload 3 /* y */
            iload 7 /* bwidth */
            i2d
            dmul
            d2i
            dload 1 /* x */
            d2i
            iadd
            invokevirtual java.nio.IntBuffer.get:(I)I
            invokestatic com.sun.glass.ui.GlassRobot.convertFromIntArgb:(I)Ljavafx/scene/paint/Color;
            aload 9
            monitorexit
        27: areturn
        end local 11 // java.nio.IntBuffer intbuf
        28: .line 192
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown bit depth: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* byteDepth */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.nio.ByteBuffer buffer
        29: .line 171
      StackMap locals: com.sun.glass.ui.monocle.MonocleRobot double double com.sun.glass.ui.monocle.NativeScreen int int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 9
            monitorexit
        30: athrow
        end local 8 // int bheight
        end local 7 // int bwidth
        end local 6 // int byteDepth
        end local 5 // com.sun.glass.ui.monocle.NativeScreen screen
        end local 3 // double y
        end local 1 // double x
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   31     0       this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0   31     1          x  D
            0   31     3          y  D
            2   31     5     screen  Lcom/sun/glass/ui/monocle/NativeScreen;
            3   31     6  byteDepth  I
            4   31     7     bwidth  I
            5   31     8    bheight  I
            9   29    10     buffer  Ljava/nio/ByteBuffer;
           11   24    11   shortbuf  Ljava/nio/ShortBuffer;
           12   24    12          v  I
           13   24    13        red  I
           14   24    14      green  I
           15   24    15       blue  I
           22   24    16          p  I
           26   28    11     intbuf  Ljava/nio/IntBuffer;
      Exception table:
        from    to  target  type
           8    23      29  any
          24    27      29  any
          28    30      29  any
    MethodParameters:
      Name  Flags
      x     
      y     

  public void getScreenCapture(int, int, int, int, int[], boolean);
    descriptor: (IIII[IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=16, args_size=7
        start local 0 // com.sun.glass.ui.monocle.MonocleRobot this
        start local 1 // int x
        start local 2 // int y
        start local 3 // int width
        start local 4 // int height
        start local 5 // int[] data
        start local 6 // boolean scaleToFit
         0: .line 199
            invokestatic com.sun.glass.ui.Application.checkEventThread:()V
         1: .line 200
            invokestatic com.sun.glass.ui.monocle.NativePlatformFactory.getNativePlatform:()Lcom/sun/glass/ui/monocle/NativePlatform;
            invokevirtual com.sun.glass.ui.monocle.NativePlatform.getScreen:()Lcom/sun/glass/ui/monocle/NativeScreen;
            astore 7 /* screen */
        start local 7 // com.sun.glass.ui.monocle.NativeScreen screen
         2: .line 201
            aload 7 /* screen */
            invokeinterface com.sun.glass.ui.monocle.NativeScreen.getWidth:()I
            istore 8 /* scrWidth */
        start local 8 // int scrWidth
         3: .line 202
            aload 7 /* screen */
            invokeinterface com.sun.glass.ui.monocle.NativeScreen.getHeight:()I
            istore 9 /* scrHeight */
        start local 9 // int scrHeight
         4: .line 204
            getstatic com.sun.glass.ui.monocle.NativeScreen.framebufferSwapLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
         5: .line 205
            aload 7 /* screen */
            invokeinterface com.sun.glass.ui.monocle.NativeScreen.getScreenCapture:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            astore 11 /* buffer */
        start local 11 // java.nio.IntBuffer buffer
         6: .line 207
            iload 1 /* x */
            ifne 10
            iload 2 /* y */
            ifne 10
            iload 3 /* width */
            iload 8 /* scrWidth */
            if_icmpne 10
            iload 4 /* height */
            iload 9 /* scrHeight */
            if_icmpne 10
         7: .line 209
            aload 11 /* buffer */
            invokevirtual java.nio.IntBuffer.array:()[I
            iconst_0
            aload 5 /* data */
            iconst_0
            aload 11 /* buffer */
            invokevirtual java.nio.IntBuffer.array:()[I
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 210
            aload 10
            monitorexit
         9: return
        10: .line 213
      StackMap locals: com.sun.glass.ui.monocle.MonocleRobot int int int int int[] int com.sun.glass.ui.monocle.NativeScreen int int java.lang.Object java.nio.IntBuffer
      StackMap stack:
            iload 2 /* y */
            iload 4 /* height */
            iadd
            iload 9 /* scrHeight */
            invokestatic java.lang.Math.min:(II)I
            istore 12 /* rowStop */
        start local 12 // int rowStop
        11: .line 214
            iload 1 /* x */
            iload 3 /* width */
            iadd
            iload 8 /* scrWidth */
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* colStop */
        start local 13 // int colStop
        12: .line 215
            iload 2 /* y */
            istore 14 /* row */
        start local 14 // int row
        13: goto 20
        14: .line 216
      StackMap locals: int int int
      StackMap stack:
            iload 1 /* x */
            istore 15 /* col */
        start local 15 // int col
        15: goto 18
        16: .line 217
      StackMap locals: int
      StackMap stack:
            aload 5 /* data */
            iload 14 /* row */
            iload 8 /* scrWidth */
            imul
            iload 15 /* col */
            iadd
            aload 11 /* buffer */
            iload 14 /* row */
            iload 8 /* scrWidth */
            imul
            iload 15 /* col */
            iadd
            invokevirtual java.nio.IntBuffer.get:(I)I
            iastore
        17: .line 216
            iinc 15 /* col */ 1
      StackMap locals:
      StackMap stack:
        18: iload 15 /* col */
            iload 13 /* colStop */
            if_icmplt 16
        end local 15 // int col
        19: .line 215
            iinc 14 /* row */ 1
      StackMap locals:
      StackMap stack:
        20: iload 14 /* row */
            iload 12 /* rowStop */
            if_icmplt 14
        end local 14 // int row
        end local 13 // int colStop
        end local 12 // int rowStop
        end local 11 // java.nio.IntBuffer buffer
        21: .line 204
            aload 10
            monitorexit
        22: goto 25
      StackMap locals: com.sun.glass.ui.monocle.MonocleRobot int int int int int[] int com.sun.glass.ui.monocle.NativeScreen int int java.lang.Object
      StackMap stack: java.lang.Throwable
        23: aload 10
            monitorexit
        24: athrow
        25: .line 221
      StackMap locals:
      StackMap stack:
            return
        end local 9 // int scrHeight
        end local 8 // int scrWidth
        end local 7 // com.sun.glass.ui.monocle.NativeScreen screen
        end local 6 // boolean scaleToFit
        end local 5 // int[] data
        end local 4 // int height
        end local 3 // int width
        end local 2 // int y
        end local 1 // int x
        end local 0 // com.sun.glass.ui.monocle.MonocleRobot this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        this  Lcom/sun/glass/ui/monocle/MonocleRobot;
            0   26     1           x  I
            0   26     2           y  I
            0   26     3       width  I
            0   26     4      height  I
            0   26     5        data  [I
            0   26     6  scaleToFit  Z
            2   26     7      screen  Lcom/sun/glass/ui/monocle/NativeScreen;
            3   26     8    scrWidth  I
            4   26     9   scrHeight  I
            6   21    11      buffer  Ljava/nio/IntBuffer;
           11   21    12     rowStop  I
           12   21    13     colStop  I
           13   21    14         row  I
           15   19    15         col  I
      Exception table:
        from    to  target  type
           5     9      23  any
          10    22      23  any
          23    24      23  any
    MethodParameters:
            Name  Flags
      x           
      y           
      width       
      height      
      data        
      scaleToFit  

  static int[] $SWITCH_TABLE$javafx$scene$input$MouseButton();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 40
            getstatic com.sun.glass.ui.monocle.MonocleRobot.$SWITCH_TABLE$javafx$scene$input$MouseButton:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javafx.scene.input.MouseButton.values:()[Ljavafx/scene/input/MouseButton;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javafx.scene.input.MouseButton.MIDDLE:Ljavafx/scene/input/MouseButton;
            invokevirtual javafx.scene.input.MouseButton.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javafx.scene.input.MouseButton.NONE:Ljavafx/scene/input/MouseButton;
            invokevirtual javafx.scene.input.MouseButton.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javafx.scene.input.MouseButton.PRIMARY:Ljavafx/scene/input/MouseButton;
            invokevirtual javafx.scene.input.MouseButton.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javafx.scene.input.MouseButton.SECONDARY:Ljavafx/scene/input/MouseButton;
            invokevirtual javafx.scene.input.MouseButton.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic com.sun.glass.ui.monocle.MonocleRobot.$SWITCH_TABLE$javafx$scene$input$MouseButton:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
}
SourceFile: "MonocleRobot.java"