public class org.jruby.ext.cgi.escape.CGIEscape implements org.jruby.runtime.load.Library
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.cgi.escape.CGIEscape
  super_class: java.lang.Object
{
  public static final java.lang.String ACCEPT_CHARSET;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "@@accept_charset"

  public static final byte[] NO39;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[] AMP;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[] QUOT;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[] LT;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[] GT;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int UNICODE_MAX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1114111

  public static final byte[] TSEMI;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[] UOTSEMI;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[] MPSEMI;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[] POSSEMI;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static final byte[] upper_hexdigits;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final int[] ruby_digit36_to_number_table;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 26
            ldc "&#39;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.NO39:[B
         1: .line 27
            ldc "&amp;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.AMP:[B
         2: .line 28
            ldc "&quot;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.QUOT:[B
         3: .line 29
            ldc "&lt;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.LT:[B
         4: .line 30
            ldc "&gt;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.GT:[B
         5: .line 32
            ldc "t;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
         6: .line 33
            ldc "uot;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.UOTSEMI:[B
         7: .line 34
            ldc "mp;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.MPSEMI:[B
         8: .line 35
            ldc "pos;"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.POSSEMI:[B
         9: .line 238
            ldc "0123456789ABCDEF"
            getstatic org.jruby.RubyEncoding.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            putstatic org.jruby.ext.cgi.escape.CGIEscape.upper_hexdigits:[B
        10: .line 471
            sipush 256
            newarray 10
            dup
            iconst_0
        11: .line 473
            iconst_m1
            iastore
            dup
            iconst_1
            iconst_m1
            iastore
            dup
            iconst_2
            iconst_m1
            iastore
            dup
            iconst_3
            iconst_m1
            iastore
            dup
            iconst_4
            iconst_m1
            iastore
            dup
            iconst_5
            iconst_m1
            iastore
            dup
            bipush 6
            iconst_m1
            iastore
            dup
            bipush 7
            iconst_m1
            iastore
            dup
            bipush 8
            iconst_m1
            iastore
            dup
            bipush 9
            iconst_m1
            iastore
            dup
            bipush 10
            iconst_m1
            iastore
            dup
            bipush 11
            iconst_m1
            iastore
            dup
            bipush 12
            iconst_m1
            iastore
            dup
            bipush 13
            iconst_m1
            iastore
            dup
            bipush 14
            iconst_m1
            iastore
            dup
            bipush 15
            iconst_m1
            iastore
            dup
            bipush 16
        12: .line 474
            iconst_m1
            iastore
            dup
            bipush 17
            iconst_m1
            iastore
            dup
            bipush 18
            iconst_m1
            iastore
            dup
            bipush 19
            iconst_m1
            iastore
            dup
            bipush 20
            iconst_m1
            iastore
            dup
            bipush 21
            iconst_m1
            iastore
            dup
            bipush 22
            iconst_m1
            iastore
            dup
            bipush 23
            iconst_m1
            iastore
            dup
            bipush 24
            iconst_m1
            iastore
            dup
            bipush 25
            iconst_m1
            iastore
            dup
            bipush 26
            iconst_m1
            iastore
            dup
            bipush 27
            iconst_m1
            iastore
            dup
            bipush 28
            iconst_m1
            iastore
            dup
            bipush 29
            iconst_m1
            iastore
            dup
            bipush 30
            iconst_m1
            iastore
            dup
            bipush 31
            iconst_m1
            iastore
            dup
            bipush 32
        13: .line 475
            iconst_m1
            iastore
            dup
            bipush 33
            iconst_m1
            iastore
            dup
            bipush 34
            iconst_m1
            iastore
            dup
            bipush 35
            iconst_m1
            iastore
            dup
            bipush 36
            iconst_m1
            iastore
            dup
            bipush 37
            iconst_m1
            iastore
            dup
            bipush 38
            iconst_m1
            iastore
            dup
            bipush 39
            iconst_m1
            iastore
            dup
            bipush 40
            iconst_m1
            iastore
            dup
            bipush 41
            iconst_m1
            iastore
            dup
            bipush 42
            iconst_m1
            iastore
            dup
            bipush 43
            iconst_m1
            iastore
            dup
            bipush 44
            iconst_m1
            iastore
            dup
            bipush 45
            iconst_m1
            iastore
            dup
            bipush 46
            iconst_m1
            iastore
            dup
            bipush 47
            iconst_m1
            iastore
            dup
            bipush 49
        14: .line 476
            iconst_1
            iastore
            dup
            bipush 50
            iconst_2
            iastore
            dup
            bipush 51
            iconst_3
            iastore
            dup
            bipush 52
            iconst_4
            iastore
            dup
            bipush 53
            iconst_5
            iastore
            dup
            bipush 54
            bipush 6
            iastore
            dup
            bipush 55
            bipush 7
            iastore
            dup
            bipush 56
            bipush 8
            iastore
            dup
            bipush 57
            bipush 9
            iastore
            dup
            bipush 58
            iconst_m1
            iastore
            dup
            bipush 59
            iconst_m1
            iastore
            dup
            bipush 60
            iconst_m1
            iastore
            dup
            bipush 61
            iconst_m1
            iastore
            dup
            bipush 62
            iconst_m1
            iastore
            dup
            bipush 63
            iconst_m1
            iastore
            dup
            bipush 64
        15: .line 477
            iconst_m1
            iastore
            dup
            bipush 65
            bipush 10
            iastore
            dup
            bipush 66
            bipush 11
            iastore
            dup
            bipush 67
            bipush 12
            iastore
            dup
            bipush 68
            bipush 13
            iastore
            dup
            bipush 69
            bipush 14
            iastore
            dup
            bipush 70
            bipush 15
            iastore
            dup
            bipush 71
            bipush 16
            iastore
            dup
            bipush 72
            bipush 17
            iastore
            dup
            bipush 73
            bipush 18
            iastore
            dup
            bipush 74
            bipush 19
            iastore
            dup
            bipush 75
            bipush 20
            iastore
            dup
            bipush 76
            bipush 21
            iastore
            dup
            bipush 77
            bipush 22
            iastore
            dup
            bipush 78
            bipush 23
            iastore
            dup
            bipush 79
            bipush 24
            iastore
            dup
            bipush 80
        16: .line 478
            bipush 25
            iastore
            dup
            bipush 81
            bipush 26
            iastore
            dup
            bipush 82
            bipush 27
            iastore
            dup
            bipush 83
            bipush 28
            iastore
            dup
            bipush 84
            bipush 29
            iastore
            dup
            bipush 85
            bipush 30
            iastore
            dup
            bipush 86
            bipush 31
            iastore
            dup
            bipush 87
            bipush 32
            iastore
            dup
            bipush 88
            bipush 33
            iastore
            dup
            bipush 89
            bipush 34
            iastore
            dup
            bipush 90
            bipush 35
            iastore
            dup
            bipush 91
            iconst_m1
            iastore
            dup
            bipush 92
            iconst_m1
            iastore
            dup
            bipush 93
            iconst_m1
            iastore
            dup
            bipush 94
            iconst_m1
            iastore
            dup
            bipush 95
            iconst_m1
            iastore
            dup
            bipush 96
        17: .line 479
            iconst_m1
            iastore
            dup
            bipush 97
            bipush 10
            iastore
            dup
            bipush 98
            bipush 11
            iastore
            dup
            bipush 99
            bipush 12
            iastore
            dup
            bipush 100
            bipush 13
            iastore
            dup
            bipush 101
            bipush 14
            iastore
            dup
            bipush 102
            bipush 15
            iastore
            dup
            bipush 103
            bipush 16
            iastore
            dup
            bipush 104
            bipush 17
            iastore
            dup
            bipush 105
            bipush 18
            iastore
            dup
            bipush 106
            bipush 19
            iastore
            dup
            bipush 107
            bipush 20
            iastore
            dup
            bipush 108
            bipush 21
            iastore
            dup
            bipush 109
            bipush 22
            iastore
            dup
            bipush 110
            bipush 23
            iastore
            dup
            bipush 111
            bipush 24
            iastore
            dup
            bipush 112
        18: .line 480
            bipush 25
            iastore
            dup
            bipush 113
            bipush 26
            iastore
            dup
            bipush 114
            bipush 27
            iastore
            dup
            bipush 115
            bipush 28
            iastore
            dup
            bipush 116
            bipush 29
            iastore
            dup
            bipush 117
            bipush 30
            iastore
            dup
            bipush 118
            bipush 31
            iastore
            dup
            bipush 119
            bipush 32
            iastore
            dup
            bipush 120
            bipush 33
            iastore
            dup
            bipush 121
            bipush 34
            iastore
            dup
            bipush 122
            bipush 35
            iastore
            dup
            bipush 123
            iconst_m1
            iastore
            dup
            bipush 124
            iconst_m1
            iastore
            dup
            bipush 125
            iconst_m1
            iastore
            dup
            bipush 126
            iconst_m1
            iastore
            dup
            bipush 127
            iconst_m1
            iastore
            dup
            sipush 128
        19: .line 481
            iconst_m1
            iastore
            dup
            sipush 129
            iconst_m1
            iastore
            dup
            sipush 130
            iconst_m1
            iastore
            dup
            sipush 131
            iconst_m1
            iastore
            dup
            sipush 132
            iconst_m1
            iastore
            dup
            sipush 133
            iconst_m1
            iastore
            dup
            sipush 134
            iconst_m1
            iastore
            dup
            sipush 135
            iconst_m1
            iastore
            dup
            sipush 136
            iconst_m1
            iastore
            dup
            sipush 137
            iconst_m1
            iastore
            dup
            sipush 138
            iconst_m1
            iastore
            dup
            sipush 139
            iconst_m1
            iastore
            dup
            sipush 140
            iconst_m1
            iastore
            dup
            sipush 141
            iconst_m1
            iastore
            dup
            sipush 142
            iconst_m1
            iastore
            dup
            sipush 143
            iconst_m1
            iastore
            dup
            sipush 144
        20: .line 482
            iconst_m1
            iastore
            dup
            sipush 145
            iconst_m1
            iastore
            dup
            sipush 146
            iconst_m1
            iastore
            dup
            sipush 147
            iconst_m1
            iastore
            dup
            sipush 148
            iconst_m1
            iastore
            dup
            sipush 149
            iconst_m1
            iastore
            dup
            sipush 150
            iconst_m1
            iastore
            dup
            sipush 151
            iconst_m1
            iastore
            dup
            sipush 152
            iconst_m1
            iastore
            dup
            sipush 153
            iconst_m1
            iastore
            dup
            sipush 154
            iconst_m1
            iastore
            dup
            sipush 155
            iconst_m1
            iastore
            dup
            sipush 156
            iconst_m1
            iastore
            dup
            sipush 157
            iconst_m1
            iastore
            dup
            sipush 158
            iconst_m1
            iastore
            dup
            sipush 159
            iconst_m1
            iastore
            dup
            sipush 160
        21: .line 483
            iconst_m1
            iastore
            dup
            sipush 161
            iconst_m1
            iastore
            dup
            sipush 162
            iconst_m1
            iastore
            dup
            sipush 163
            iconst_m1
            iastore
            dup
            sipush 164
            iconst_m1
            iastore
            dup
            sipush 165
            iconst_m1
            iastore
            dup
            sipush 166
            iconst_m1
            iastore
            dup
            sipush 167
            iconst_m1
            iastore
            dup
            sipush 168
            iconst_m1
            iastore
            dup
            sipush 169
            iconst_m1
            iastore
            dup
            sipush 170
            iconst_m1
            iastore
            dup
            sipush 171
            iconst_m1
            iastore
            dup
            sipush 172
            iconst_m1
            iastore
            dup
            sipush 173
            iconst_m1
            iastore
            dup
            sipush 174
            iconst_m1
            iastore
            dup
            sipush 175
            iconst_m1
            iastore
            dup
            sipush 176
        22: .line 484
            iconst_m1
            iastore
            dup
            sipush 177
            iconst_m1
            iastore
            dup
            sipush 178
            iconst_m1
            iastore
            dup
            sipush 179
            iconst_m1
            iastore
            dup
            sipush 180
            iconst_m1
            iastore
            dup
            sipush 181
            iconst_m1
            iastore
            dup
            sipush 182
            iconst_m1
            iastore
            dup
            sipush 183
            iconst_m1
            iastore
            dup
            sipush 184
            iconst_m1
            iastore
            dup
            sipush 185
            iconst_m1
            iastore
            dup
            sipush 186
            iconst_m1
            iastore
            dup
            sipush 187
            iconst_m1
            iastore
            dup
            sipush 188
            iconst_m1
            iastore
            dup
            sipush 189
            iconst_m1
            iastore
            dup
            sipush 190
            iconst_m1
            iastore
            dup
            sipush 191
            iconst_m1
            iastore
            dup
            sipush 192
        23: .line 485
            iconst_m1
            iastore
            dup
            sipush 193
            iconst_m1
            iastore
            dup
            sipush 194
            iconst_m1
            iastore
            dup
            sipush 195
            iconst_m1
            iastore
            dup
            sipush 196
            iconst_m1
            iastore
            dup
            sipush 197
            iconst_m1
            iastore
            dup
            sipush 198
            iconst_m1
            iastore
            dup
            sipush 199
            iconst_m1
            iastore
            dup
            sipush 200
            iconst_m1
            iastore
            dup
            sipush 201
            iconst_m1
            iastore
            dup
            sipush 202
            iconst_m1
            iastore
            dup
            sipush 203
            iconst_m1
            iastore
            dup
            sipush 204
            iconst_m1
            iastore
            dup
            sipush 205
            iconst_m1
            iastore
            dup
            sipush 206
            iconst_m1
            iastore
            dup
            sipush 207
            iconst_m1
            iastore
            dup
            sipush 208
        24: .line 486
            iconst_m1
            iastore
            dup
            sipush 209
            iconst_m1
            iastore
            dup
            sipush 210
            iconst_m1
            iastore
            dup
            sipush 211
            iconst_m1
            iastore
            dup
            sipush 212
            iconst_m1
            iastore
            dup
            sipush 213
            iconst_m1
            iastore
            dup
            sipush 214
            iconst_m1
            iastore
            dup
            sipush 215
            iconst_m1
            iastore
            dup
            sipush 216
            iconst_m1
            iastore
            dup
            sipush 217
            iconst_m1
            iastore
            dup
            sipush 218
            iconst_m1
            iastore
            dup
            sipush 219
            iconst_m1
            iastore
            dup
            sipush 220
            iconst_m1
            iastore
            dup
            sipush 221
            iconst_m1
            iastore
            dup
            sipush 222
            iconst_m1
            iastore
            dup
            sipush 223
            iconst_m1
            iastore
            dup
            sipush 224
        25: .line 487
            iconst_m1
            iastore
            dup
            sipush 225
            iconst_m1
            iastore
            dup
            sipush 226
            iconst_m1
            iastore
            dup
            sipush 227
            iconst_m1
            iastore
            dup
            sipush 228
            iconst_m1
            iastore
            dup
            sipush 229
            iconst_m1
            iastore
            dup
            sipush 230
            iconst_m1
            iastore
            dup
            sipush 231
            iconst_m1
            iastore
            dup
            sipush 232
            iconst_m1
            iastore
            dup
            sipush 233
            iconst_m1
            iastore
            dup
            sipush 234
            iconst_m1
            iastore
            dup
            sipush 235
            iconst_m1
            iastore
            dup
            sipush 236
            iconst_m1
            iastore
            dup
            sipush 237
            iconst_m1
            iastore
            dup
            sipush 238
            iconst_m1
            iastore
            dup
            sipush 239
            iconst_m1
            iastore
            dup
            sipush 240
        26: .line 488
            iconst_m1
            iastore
            dup
            sipush 241
            iconst_m1
            iastore
            dup
            sipush 242
            iconst_m1
            iastore
            dup
            sipush 243
            iconst_m1
            iastore
            dup
            sipush 244
            iconst_m1
            iastore
            dup
            sipush 245
            iconst_m1
            iastore
            dup
            sipush 246
            iconst_m1
            iastore
            dup
            sipush 247
            iconst_m1
            iastore
            dup
            sipush 248
            iconst_m1
            iastore
            dup
            sipush 249
            iconst_m1
            iastore
            dup
            sipush 250
            iconst_m1
            iastore
            dup
            sipush 251
            iconst_m1
            iastore
            dup
            sipush 252
            iconst_m1
            iastore
            dup
            sipush 253
            iconst_m1
            iastore
            dup
            sipush 254
            iconst_m1
            iastore
            dup
            sipush 255
            iconst_m1
            iastore
        27: .line 471
            putstatic org.jruby.ext.cgi.escape.CGIEscape.ruby_digit36_to_number_table:[I
        28: .line 489
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.cgi.escape.CGIEscape this
         0: .line 24
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.ext.cgi.escape.CGIEscape this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/cgi/escape/CGIEscape;

  static void html_escaped_cat(org.jruby.RubyString, byte);
    descriptor: (Lorg/jruby/RubyString;B)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyString str
        start local 1 // byte c
         0: .line 38
            iload 1 /* c */
            lookupswitch { // 5
                   34: 5
                   38: 3
                   39: 1
                   60: 7
                   62: 9
              default: 10
          }
         1: .line 40
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.NO39:[B
            invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
            pop
         2: .line 41
            goto 10
         3: .line 43
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.AMP:[B
            invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
            pop
         4: .line 44
            goto 10
         5: .line 46
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.QUOT:[B
            invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
            pop
         6: .line 47
            goto 10
         7: .line 49
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.LT:[B
            invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
            pop
         8: .line 50
            goto 10
         9: .line 52
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.GT:[B
            invokevirtual org.jruby.RubyString.cat:([B)Lorg/jruby/RubyString;
            pop
        10: .line 55
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte c
        end local 0 // org.jruby.RubyString str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0   str  Lorg/jruby/RubyString;
            0   11     1     c  B
    MethodParameters:
      Name  Flags
      str   
      c     

  static void preserve_original_state(org.jruby.RubyString, org.jruby.RubyString);
    descriptor: (Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyString orig
        start local 1 // org.jruby.RubyString dest
         0: .line 58
            aload 1 /* dest */
            aload 0 /* orig */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
         1: .line 60
            aload 1 /* dest */
            aload 0 /* orig */
            invokevirtual org.jruby.RubyString.infectBy:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         2: .line 61
            return
        end local 1 // org.jruby.RubyString dest
        end local 0 // org.jruby.RubyString orig
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  orig  Lorg/jruby/RubyString;
            0    3     1  dest  Lorg/jruby/RubyString;
    MethodParameters:
      Name  Flags
      orig  
      dest  

  static org.jruby.runtime.builtin.IRubyObject optimized_escape_html(org.jruby.Ruby, org.jruby.RubyString);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
         0: .line 65
            iconst_0
            istore 4 /* beg */
        start local 4 // int beg
         1: .line 66
            aconst_null
            astore 5 /* dest */
        start local 5 // org.jruby.RubyString dest
         2: .line 69
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            istore 3 /* len */
        start local 3 // int len
         3: .line 70
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* byteList */
        start local 7 // org.jruby.util.ByteList byteList
         4: .line 71
            aload 7 /* byteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 6 /* cstrBytes */
        start local 6 // byte[] cstrBytes
         5: .line 72
            aload 7 /* byteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 8 /* cstr */
        start local 8 // int cstr
         6: .line 74
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         7: goto 15
         8: .line 75
      StackMap locals: org.jruby.Ruby org.jruby.RubyString int int int org.jruby.RubyString byte[] org.jruby.util.ByteList int
      StackMap stack:
            aload 6 /* cstrBytes */
            iload 8 /* cstr */
            iload 2 /* i */
            iadd
            baload
            lookupswitch { // 5
                   34: 9
                   38: 9
                   39: 9
                   60: 9
                   62: 9
              default: 14
          }
         9: .line 81
      StackMap locals:
      StackMap stack:
            aload 5 /* dest */
            ifnonnull 11
        10: .line 82
            aload 0 /* runtime */
            iload 3 /* len */
            invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
            astore 5 /* dest */
        11: .line 85
      StackMap locals:
      StackMap stack:
            aload 5 /* dest */
            aload 6 /* cstrBytes */
            iload 8 /* cstr */
            iload 4 /* beg */
            iadd
            iload 2 /* i */
            iload 4 /* beg */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        12: .line 86
            iload 2 /* i */
            iconst_1
            iadd
            istore 4 /* beg */
        13: .line 88
            aload 5 /* dest */
            aload 6 /* cstrBytes */
            iload 8 /* cstr */
            iload 2 /* i */
            iadd
            baload
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.html_escaped_cat:(Lorg/jruby/RubyString;B)V
        14: .line 74
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 2 /* i */
            iload 3 /* len */
            if_icmplt 8
        16: .line 93
            aload 5 /* dest */
            ifnull 20
        17: .line 94
            aload 5 /* dest */
            aload 6 /* cstrBytes */
            iload 8 /* cstr */
            iload 4 /* beg */
            iadd
            iload 3 /* len */
            iload 4 /* beg */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        18: .line 95
            aload 1 /* str */
            aload 5 /* dest */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
        19: .line 96
            aload 5 /* dest */
            areturn
        20: .line 98
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            aload 0 /* runtime */
            invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
            areturn
        end local 8 // int cstr
        end local 7 // org.jruby.util.ByteList byteList
        end local 6 // byte[] cstrBytes
        end local 5 // org.jruby.RubyString dest
        end local 4 // int beg
        end local 3 // int len
        end local 2 // int i
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0    runtime  Lorg/jruby/Ruby;
            0   21     1        str  Lorg/jruby/RubyString;
            7   21     2          i  I
            3   21     3        len  I
            1   21     4        beg  I
            2   21     5       dest  Lorg/jruby/RubyString;
            5   21     6  cstrBytes  [B
            4   21     7   byteList  Lorg/jruby/util/ByteList;
            6   21     8       cstr  I
    MethodParameters:
         Name  Flags
      runtime  
      str      

  static boolean MATCH(byte[], int, int, byte[], int);
    descriptor: ([BII[BI)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // byte[] s
        start local 1 // int len
        start local 2 // int i
        start local 3 // byte[] cstrBytes
        start local 4 // int cstr
         0: .line 104
            iload 1 /* len */
            iload 2 /* i */
            isub
            aload 0 /* s */
            arraylength
            if_icmplt 2
            aload 3 /* cstrBytes */
            iload 4 /* cstr */
            iload 2 /* i */
            iadd
            aload 0 /* s */
            iconst_0
            aload 0 /* s */
            arraylength
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 2
         1: .line 105
            iconst_1
            ireturn
         2: .line 107
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int cstr
        end local 3 // byte[] cstrBytes
        end local 2 // int i
        end local 1 // int len
        end local 0 // byte[] s
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          s  [B
            0    3     1        len  I
            0    3     2          i  I
            0    3     3  cstrBytes  [B
            0    3     4       cstr  I
    MethodParameters:
           Name  Flags
      s          
      len        
      i          
      cstrBytes  
      cstr       

  static org.jruby.runtime.builtin.IRubyObject optimized_unescape_html(org.jruby.Ruby, org.jruby.RubyString);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=18, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
         0: .line 113
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 2 /* enc */
        start local 2 // org.jcodings.Encoding enc
         1: .line 114
            aload 2 /* enc */
            instanceof org.jcodings.specific.UTF8Encoding
            ifeq 2
            ldc 1114111
            goto 4
         2: .line 115
      StackMap locals: org.jcodings.Encoding
      StackMap stack:
            aload 2 /* enc */
            instanceof org.jcodings.specific.ISO8859_1Encoding
            ifeq 3
            sipush 256
            goto 4
         3: .line 116
      StackMap locals:
      StackMap stack:
            sipush 128
         4: .line 114
      StackMap locals:
      StackMap stack: int
            istore 3 /* charlimit */
        start local 3 // int charlimit
         5: .line 117
            iconst_0
            istore 6 /* beg */
        start local 6 // int beg
         6: .line 118
            iconst_0
            istore 7 /* clen */
        start local 7 // int clen
         7: .line 119
            iconst_0
            istore 9 /* overflow */
        start local 9 // boolean overflow
         8: .line 122
            bipush 6
            newarray 8
            astore 12 /* buf */
        start local 12 // byte[] buf
         9: .line 123
            aconst_null
            astore 13 /* dest */
        start local 13 // org.jruby.RubyString dest
        10: .line 125
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            istore 5 /* len */
        start local 5 // int len
        11: .line 126
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 14 /* byteList */
        start local 14 // org.jruby.util.ByteList byteList
        12: .line 127
            aload 14 /* byteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 10 /* cstrBytes */
        start local 10 // byte[] cstrBytes
        13: .line 128
            aload 14 /* byteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 11 /* cstr */
        start local 11 // int cstr
        14: .line 130
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        15: goto 87
        16: .line 132
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int top int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList
      StackMap stack:
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            baload
            istore 16 /* c */
        start local 16 // int c
        17: .line 133
            iload 16 /* c */
            bipush 38
            if_icmpeq 18
            goto 86
        18: .line 134
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int top int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack:
            iload 4 /* i */
            iload 6 /* beg */
            isub
            istore 8 /* plen */
        start local 8 // int plen
        19: .line 135
            iinc 4 /* i */ 1
            iload 4 /* i */
            iload 5 /* len */
            if_icmplt 20
            goto 88
        20: .line 136
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack:
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            baload
            sipush 255
            iand
            istore 16 /* c */
        21: .line 137
            iload 16 /* c */
            lookupswitch { // 5
                   35: 46
                   97: 22
                  103: 36
                  108: 41
                  113: 31
              default: 79
          }
        22: .line 139
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        23: .line 140
            getstatic org.jruby.ext.cgi.escape.CGIEscape.POSSEMI:[B
            iload 5 /* len */
            iload 4 /* i */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
            ifeq 27
        24: .line 141
            iload 4 /* i */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.POSSEMI:[B
            arraylength
            iconst_1
            isub
            iadd
            istore 4 /* i */
        25: .line 142
            bipush 39
            istore 16 /* c */
        26: .line 143
            goto 81
      StackMap locals:
      StackMap stack:
        27: getstatic org.jruby.ext.cgi.escape.CGIEscape.MPSEMI:[B
            iload 5 /* len */
            iload 4 /* i */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
            ifeq 86
        28: .line 144
            iload 4 /* i */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.MPSEMI:[B
            arraylength
            iconst_1
            isub
            iadd
            istore 4 /* i */
        29: .line 145
            bipush 38
            istore 16 /* c */
        30: .line 147
            goto 81
        31: .line 149
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        32: .line 150
            getstatic org.jruby.ext.cgi.escape.CGIEscape.UOTSEMI:[B
            iload 5 /* len */
            iload 4 /* i */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
            ifeq 86
        33: .line 151
            iload 4 /* i */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.UOTSEMI:[B
            arraylength
            iconst_1
            isub
            iadd
            istore 4 /* i */
        34: .line 152
            bipush 34
            istore 16 /* c */
        35: .line 154
            goto 81
        36: .line 156
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        37: .line 157
            getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
            iload 5 /* len */
            iload 4 /* i */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
            ifeq 86
        38: .line 158
            iload 4 /* i */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
            arraylength
            iconst_1
            isub
            iadd
            istore 4 /* i */
        39: .line 159
            bipush 62
            istore 16 /* c */
        40: .line 161
            goto 81
        41: .line 163
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        42: .line 164
            getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
            iload 5 /* len */
            iload 4 /* i */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.MATCH:([BII[BI)Z
            ifeq 86
        43: .line 165
            iload 4 /* i */
            getstatic org.jruby.ext.cgi.escape.CGIEscape.TSEMI:[B
            arraylength
            iconst_1
            isub
            iadd
            istore 4 /* i */
        44: .line 166
            bipush 60
            istore 16 /* c */
        45: .line 168
            goto 81
        46: .line 170
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            iinc 4 /* i */ 1
            iload 4 /* i */
            isub
            iconst_2
            if_icmplt 56
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            baload
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 56
        47: .line 171
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 7 /* clen */
            iastore
            dup
            iconst_1
            iload 9 /* overflow */
            ifeq 48
            iconst_1
            goto 49
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack: int[] int[] int
        48: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack: int[] int[] int int
        49: iastore
            astore 17 /* clenOverflow */
        start local 17 // int[] clenOverflow
        50: .line 172
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            iload 5 /* len */
            iload 4 /* i */
            isub
            bipush 10
            aload 17 /* clenOverflow */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.ruby_scan_digits:([BIII[I)I
            istore 15 /* cc */
        start local 15 // int cc
        51: .line 173
            aload 17 /* clenOverflow */
            iconst_0
            iaload
            istore 7 /* clen */
        52: .line 174
            aload 17 /* clenOverflow */
            iconst_1
            iaload
            iconst_1
            if_icmpne 53
            iconst_1
            goto 54
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList int int int[]
      StackMap stack:
        53: iconst_0
      StackMap locals:
      StackMap stack: int
        54: istore 9 /* overflow */
        end local 17 // int[] clenOverflow
        55: .line 175
            goto 66
        end local 15 // int cc
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack:
        56: iload 4 /* i */
            iload 5 /* len */
            if_icmpge 86
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            baload
            bipush 120
            if_icmpeq 57
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            baload
            bipush 88
            if_icmpne 86
      StackMap locals:
      StackMap stack:
        57: iload 5 /* len */
            iinc 4 /* i */ 1
            iload 4 /* i */
            isub
            iconst_2
            if_icmplt 86
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.ISXDIGIT:([BI)Z
            ifeq 86
        58: .line 176
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 7 /* clen */
            iastore
            dup
            iconst_1
            iload 9 /* overflow */
            ifeq 59
            iconst_1
            goto 60
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack: int[] int[] int
        59: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack: int[] int[] int int
        60: iastore
            astore 17 /* clenOverflow */
        start local 17 // int[] clenOverflow
        61: .line 177
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            iload 5 /* len */
            iload 4 /* i */
            isub
            bipush 16
            aload 17 /* clenOverflow */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.ruby_scan_digits:([BIII[I)I
            istore 15 /* cc */
        start local 15 // int cc
        62: .line 178
            aload 17 /* clenOverflow */
            iconst_0
            iaload
            istore 7 /* clen */
        63: .line 179
            aload 17 /* clenOverflow */
            iconst_1
            iaload
            iconst_1
            if_icmpne 64
            iconst_1
            goto 65
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList int int int[]
      StackMap stack:
        64: iconst_0
      StackMap locals:
      StackMap stack: int
        65: istore 9 /* overflow */
        end local 17 // int[] clenOverflow
        66: .line 180
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
        67: .line 181
            iload 7 /* clen */
            iadd
            istore 4 /* i */
        68: .line 182
            iload 9 /* overflow */
            ifne 86
            iload 15 /* cc */
            iload 3 /* charlimit */
            if_icmpge 86
            iload 4 /* i */
            iload 5 /* len */
            if_icmpge 86
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 4 /* i */
            iadd
            baload
            bipush 59
            if_icmpeq 69
            goto 86
        69: .line 183
      StackMap locals:
      StackMap stack:
            aload 13 /* dest */
            ifnonnull 71
        70: .line 184
            aload 0 /* runtime */
            iload 5 /* len */
            invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
            astore 13 /* dest */
        71: .line 186
      StackMap locals:
      StackMap stack:
            aload 13 /* dest */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 6 /* beg */
            iadd
            iload 8 /* plen */
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        72: .line 187
            iload 3 /* charlimit */
            sipush 256
            if_icmple 75
        73: .line 188
            aload 13 /* dest */
            aload 12 /* buf */
            iconst_0
            aload 2 /* enc */
            iload 15 /* cc */
            aload 12 /* buf */
            iconst_0
            invokevirtual org.jcodings.Encoding.codeToMbc:(I[BI)I
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        74: .line 189
            goto 77
        75: .line 190
      StackMap locals:
      StackMap stack:
            iload 15 /* cc */
            istore 16 /* c */
        76: .line 191
            aload 13 /* dest */
            iload 16 /* c */
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        77: .line 193
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iconst_1
            iadd
            istore 6 /* beg */
        78: .line 194
            goto 86
        end local 15 // int cc
        79: .line 196
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int int int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList top int
      StackMap stack:
            iinc 4 /* i */ -1
        80: .line 197
            goto 86
        81: .line 199
      StackMap locals:
      StackMap stack:
            aload 13 /* dest */
            ifnonnull 83
        82: .line 200
            aload 0 /* runtime */
            iload 5 /* len */
            invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
            astore 13 /* dest */
        83: .line 202
      StackMap locals:
      StackMap stack:
            aload 13 /* dest */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 6 /* beg */
            iadd
            iload 8 /* plen */
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        84: .line 203
            aload 13 /* dest */
            iload 16 /* c */
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        85: .line 204
            iload 4 /* i */
            iconst_1
            iadd
            istore 6 /* beg */
        end local 16 // int c
        end local 8 // int plen
        86: .line 130
      StackMap locals: org.jruby.Ruby org.jruby.RubyString org.jcodings.Encoding int int int int int top int byte[] int byte[] org.jruby.RubyString org.jruby.util.ByteList
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        87: iload 4 /* i */
            iload 5 /* len */
            if_icmplt 16
        88: .line 207
      StackMap locals:
      StackMap stack:
            aload 13 /* dest */
            ifnull 92
        89: .line 208
            aload 13 /* dest */
            aload 10 /* cstrBytes */
            iload 11 /* cstr */
            iload 6 /* beg */
            iadd
            iload 5 /* len */
            iload 6 /* beg */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        90: .line 209
            aload 1 /* str */
            aload 13 /* dest */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
        91: .line 210
            aload 13 /* dest */
            areturn
        92: .line 212
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            aload 0 /* runtime */
            invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
            areturn
        end local 14 // org.jruby.util.ByteList byteList
        end local 13 // org.jruby.RubyString dest
        end local 12 // byte[] buf
        end local 11 // int cstr
        end local 10 // byte[] cstrBytes
        end local 9 // boolean overflow
        end local 7 // int clen
        end local 6 // int beg
        end local 5 // int len
        end local 4 // int i
        end local 3 // int charlimit
        end local 2 // org.jcodings.Encoding enc
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   93     0       runtime  Lorg/jruby/Ruby;
            0   93     1           str  Lorg/jruby/RubyString;
            1   93     2           enc  Lorg/jcodings/Encoding;
            5   93     3     charlimit  I
           15   93     4             i  I
           11   93     5           len  I
            6   93     6           beg  I
            7   93     7          clen  I
           19   86     8          plen  I
            8   93     9      overflow  Z
           13   93    10     cstrBytes  [B
           14   93    11          cstr  I
            9   93    12           buf  [B
           10   93    13          dest  Lorg/jruby/RubyString;
           12   93    14      byteList  Lorg/jruby/util/ByteList;
           51   56    15            cc  I
           62   79    15            cc  I
           17   86    16             c  I
           50   55    17  clenOverflow  [I
           61   66    17  clenOverflow  [I
    MethodParameters:
         Name  Flags
      runtime  
      str      

  static boolean ISXDIGIT(byte[], int);
    descriptor: ([BI)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // byte[] cstrBytes
        start local 1 // int i
         0: .line 217
            aload 0 /* cstrBytes */
            iload 1 /* i */
            baload
            istore 2 /* cstrByte */
        start local 2 // byte cstrByte
         1: .line 218
            iload 2 /* cstrByte */
            bipush 48
            if_icmplt 2
            iload 2 /* cstrByte */
            bipush 57
            if_icmple 5
      StackMap locals: int
      StackMap stack:
         2: iload 2 /* cstrByte */
            bipush 97
            if_icmplt 3
            iload 2 /* cstrByte */
            bipush 102
            if_icmple 5
      StackMap locals:
      StackMap stack:
         3: iload 2 /* cstrByte */
            bipush 65
            if_icmplt 4
            iload 2 /* cstrByte */
            bipush 70
            if_icmple 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
        end local 2 // byte cstrByte
        end local 1 // int i
        end local 0 // byte[] cstrBytes
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  cstrBytes  [B
            0    6     1          i  I
            1    6     2   cstrByte  B
    MethodParameters:
           Name  Flags
      cstrBytes  
      i          

  static boolean url_unreserved_char(int);
    descriptor: (I)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int c
         0: .line 222
            iload 0 /* c */
            tableswitch { // 45 - 126
                   45: 1
                   46: 1
                   47: 2
                   48: 1
                   49: 1
                   50: 1
                   51: 1
                   52: 1
                   53: 1
                   54: 1
                   55: 1
                   56: 1
                   57: 1
                   58: 2
                   59: 2
                   60: 2
                   61: 2
                   62: 2
                   63: 2
                   64: 2
                   65: 1
                   66: 1
                   67: 1
                   68: 1
                   69: 1
                   70: 1
                   71: 1
                   72: 1
                   73: 1
                   74: 1
                   75: 1
                   76: 1
                   77: 1
                   78: 1
                   79: 1
                   80: 1
                   81: 1
                   82: 1
                   83: 1
                   84: 1
                   85: 1
                   86: 1
                   87: 1
                   88: 1
                   89: 1
                   90: 1
                   91: 2
                   92: 2
                   93: 2
                   94: 2
                   95: 1
                   96: 2
                   97: 1
                   98: 1
                   99: 1
                  100: 1
                  101: 1
                  102: 1
                  103: 1
                  104: 1
                  105: 1
                  106: 1
                  107: 1
                  108: 1
                  109: 1
                  110: 1
                  111: 1
                  112: 1
                  113: 1
                  114: 1
                  115: 1
                  116: 1
                  117: 1
                  118: 1
                  119: 1
                  120: 1
                  121: 1
                  122: 1
                  123: 2
                  124: 2
                  125: 2
                  126: 1
              default: 2
          }
         1: .line 231
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 235
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // int c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     c  I
    MethodParameters:
      Name  Flags
      c     

  static org.jruby.runtime.builtin.IRubyObject optimized_escape(org.jruby.Ruby, org.jruby.RubyString);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString str
         0: .line 241
            iconst_0
            istore 4 /* beg */
        start local 4 // int beg
         1: .line 242
            aconst_null
            astore 5 /* dest */
        start local 5 // org.jruby.RubyString dest
         2: .line 245
            iconst_3
            newarray 8
            dup
            iconst_0
            bipush 37
            bastore
            astore 8 /* buf */
        start local 8 // byte[] buf
         3: .line 247
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            istore 3 /* len */
        start local 3 // int len
         4: .line 248
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 9 /* byteList */
        start local 9 // org.jruby.util.ByteList byteList
         5: .line 249
            aload 9 /* byteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 6 /* cstrBytes */
        start local 6 // byte[] cstrBytes
         6: .line 250
            aload 9 /* byteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 7 /* cstr */
        start local 7 // int cstr
         7: .line 252
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         8: goto 22
         9: .line 253
      StackMap locals: org.jruby.Ruby org.jruby.RubyString int int int org.jruby.RubyString byte[] int byte[] org.jruby.util.ByteList
      StackMap stack:
            aload 6 /* cstrBytes */
            iload 7 /* cstr */
            iload 2 /* i */
            iadd
            baload
            sipush 255
            iand
            istore 10 /* c */
        start local 10 // int c
        10: .line 254
            iload 10 /* c */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.url_unreserved_char:(I)Z
            ifne 21
        11: .line 255
            aload 5 /* dest */
            ifnonnull 13
        12: .line 256
            aload 0 /* runtime */
            iload 3 /* len */
            invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
            astore 5 /* dest */
        13: .line 259
      StackMap locals: int
      StackMap stack:
            aload 5 /* dest */
            aload 6 /* cstrBytes */
            iload 7 /* cstr */
            iload 4 /* beg */
            iadd
            iload 2 /* i */
            iload 4 /* beg */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        14: .line 260
            iload 2 /* i */
            iconst_1
            iadd
            istore 4 /* beg */
        15: .line 262
            iload 10 /* c */
            bipush 32
            if_icmpne 18
        16: .line 263
            aload 5 /* dest */
            bipush 43
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        17: .line 264
            goto 21
        18: .line 265
      StackMap locals:
      StackMap stack:
            aload 8 /* buf */
            iconst_1
            getstatic org.jruby.ext.cgi.escape.CGIEscape.upper_hexdigits:[B
            iload 10 /* c */
            iconst_4
            ishr
            bipush 15
            iand
            baload
            bastore
        19: .line 266
            aload 8 /* buf */
            iconst_2
            getstatic org.jruby.ext.cgi.escape.CGIEscape.upper_hexdigits:[B
            iload 10 /* c */
            bipush 15
            iand
            baload
            bastore
        20: .line 267
            aload 5 /* dest */
            aload 8 /* buf */
            iconst_0
            iconst_3
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        end local 10 // int c
        21: .line 252
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 2 /* i */
            iload 3 /* len */
            if_icmplt 9
        23: .line 272
            aload 5 /* dest */
            ifnull 27
        24: .line 273
            aload 5 /* dest */
            aload 6 /* cstrBytes */
            iload 7 /* cstr */
            iload 4 /* beg */
            iadd
            iload 3 /* len */
            iload 4 /* beg */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        25: .line 274
            aload 1 /* str */
            aload 5 /* dest */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
        26: .line 275
            aload 5 /* dest */
            areturn
        27: .line 277
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            aload 0 /* runtime */
            invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
            areturn
        end local 9 // org.jruby.util.ByteList byteList
        end local 8 // byte[] buf
        end local 7 // int cstr
        end local 6 // byte[] cstrBytes
        end local 5 // org.jruby.RubyString dest
        end local 4 // int beg
        end local 3 // int len
        end local 2 // int i
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0    runtime  Lorg/jruby/Ruby;
            0   28     1        str  Lorg/jruby/RubyString;
            8   28     2          i  I
            4   28     3        len  I
            1   28     4        beg  I
            2   28     5       dest  Lorg/jruby/RubyString;
            6   28     6  cstrBytes  [B
            7   28     7       cstr  I
            3   28     8        buf  [B
            5   28     9   byteList  Lorg/jruby/util/ByteList;
           10   21    10          c  I
    MethodParameters:
         Name  Flags
      runtime  
      str      

  static org.jruby.runtime.builtin.IRubyObject optimized_unescape(org.jruby.runtime.ThreadContext, org.jruby.RubyString, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyString str
        start local 2 // org.jruby.runtime.builtin.IRubyObject encoding
         0: .line 283
            iconst_0
            istore 5 /* beg */
        start local 5 // int beg
         1: .line 284
            aconst_null
            astore 6 /* dest */
        start local 6 // org.jruby.RubyString dest
         2: .line 288
            aload 0 /* context */
            aload 2 /* encoding */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            astore 11 /* encidx */
        start local 11 // org.jcodings.Encoding encidx
         3: .line 290
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            istore 4 /* len */
        start local 4 // int len
         4: .line 291
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 12 /* byteList */
        start local 12 // org.jruby.util.ByteList byteList
         5: .line 292
            aload 12 /* byteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 7 /* cstrBytes */
        start local 7 // byte[] cstrBytes
         6: .line 293
            aload 12 /* byteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            istore 8 /* cstr */
        start local 8 // int cstr
         7: .line 295
            iconst_0
            istore 13 /* buf */
        start local 13 // int buf
         8: .line 296
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 14 /* runtime */
        start local 14 // org.jruby.Ruby runtime
         9: .line 298
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: goto 31
        11: .line 299
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int int org.jruby.RubyString byte[] int top top org.jcodings.Encoding org.jruby.util.ByteList int org.jruby.Ruby
      StackMap stack:
            aload 7 /* cstrBytes */
            iload 8 /* cstr */
            iload 3 /* i */
            iadd
            baload
            sipush 255
            iand
            istore 15 /* c */
        start local 15 // int c
        12: .line 300
            iconst_0
            istore 16 /* clen */
        start local 16 // int clen
        13: .line 301
            iload 15 /* c */
            bipush 37
            if_icmpne 22
        14: .line 302
            iload 3 /* i */
            iconst_3
            iadd
            iload 4 /* len */
            if_icmple 15
            goto 32
        15: .line 303
      StackMap locals: int int
      StackMap stack:
            aload 7 /* cstrBytes */
            iload 8 /* cstr */
            iload 3 /* i */
            iadd
            iconst_1
            iadd
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.ISXDIGIT:([BI)Z
            ifne 16
            goto 30
        16: .line 304
      StackMap locals:
      StackMap stack:
            aload 7 /* cstrBytes */
            iload 8 /* cstr */
            iload 3 /* i */
            iadd
            iconst_2
            iadd
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.ISXDIGIT:([BI)Z
            ifne 17
            goto 30
        17: .line 305
      StackMap locals:
      StackMap stack:
            aload 7 /* cstrBytes */
            iload 8 /* cstr */
            iload 3 /* i */
            iadd
            iconst_1
            iadd
            baload
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.char_to_number:(I)I
            iconst_4
            ishl
        18: .line 306
            aload 7 /* cstrBytes */
            iload 8 /* cstr */
            iload 3 /* i */
            iadd
            iconst_2
            iadd
            baload
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.char_to_number:(I)I
        19: .line 305
            ior
            istore 13 /* buf */
        20: .line 307
            iconst_2
            istore 16 /* clen */
        21: .line 308
            goto 24
      StackMap locals:
      StackMap stack:
        22: iload 15 /* c */
            bipush 43
            if_icmpne 30
        23: .line 309
            bipush 32
            istore 13 /* buf */
        24: .line 314
      StackMap locals:
      StackMap stack:
            aload 6 /* dest */
            ifnonnull 26
        25: .line 315
            aload 14 /* runtime */
            iload 4 /* len */
            invokestatic org.jruby.RubyString.newStringLight:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyString;
            astore 6 /* dest */
        26: .line 318
      StackMap locals:
      StackMap stack:
            aload 6 /* dest */
            aload 7 /* cstrBytes */
            iload 8 /* cstr */
            iload 5 /* beg */
            iadd
            iload 3 /* i */
            iload 5 /* beg */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        27: .line 319
            iload 3 /* i */
            iload 16 /* clen */
            iadd
            istore 3 /* i */
        28: .line 320
            iload 3 /* i */
            iconst_1
            iadd
            istore 5 /* beg */
        29: .line 322
            aload 6 /* dest */
            iload 13 /* buf */
            invokevirtual org.jruby.RubyString.cat:(I)Lorg/jruby/RubyString;
            pop
        end local 16 // int clen
        end local 15 // int c
        30: .line 298
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 3 /* i */
            iload 4 /* len */
            if_icmplt 11
        32: .line 325
      StackMap locals:
      StackMap stack:
            aload 6 /* dest */
            ifnull 37
        33: .line 326
            aload 6 /* dest */
            aload 7 /* cstrBytes */
            iload 8 /* cstr */
            iload 5 /* beg */
            iadd
            iload 4 /* len */
            iload 5 /* beg */
            isub
            invokevirtual org.jruby.RubyString.cat:([BII)Lorg/jruby/RubyString;
            pop
        34: .line 327
            aload 1 /* str */
            aload 6 /* dest */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.preserve_original_state:(Lorg/jruby/RubyString;Lorg/jruby/RubyString;)V
        35: .line 328
            iconst_0
            istore 9 /* cr */
        start local 9 // int cr
        36: .line 329
            goto 39
        end local 9 // int cr
        37: .line 330
      StackMap locals:
      StackMap stack:
            aload 1 /* str */
            aload 14 /* runtime */
            invokevirtual org.jruby.RubyString.strDup:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
            astore 6 /* dest */
        38: .line 331
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getCodeRange:()I
            istore 9 /* cr */
        start local 9 // int cr
        39: .line 333
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int int org.jruby.RubyString byte[] int int top org.jcodings.Encoding org.jruby.util.ByteList int org.jruby.Ruby
      StackMap stack:
            aload 1 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            astore 10 /* origenc */
        start local 10 // org.jcodings.Encoding origenc
        40: .line 334
            aload 10 /* origenc */
            aload 11 /* encidx */
            if_acmpeq 46
        41: .line 335
            aload 6 /* dest */
            aload 11 /* encidx */
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        42: .line 336
            aload 6 /* dest */
            invokevirtual org.jruby.RubyString.getCodeRange:()I
            invokestatic org.jruby.util.StringSupport.encCoderangeClean:(I)I
            ifne 46
        43: .line 337
            aload 6 /* dest */
            aload 10 /* origenc */
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        44: .line 338
            iload 9 /* cr */
            ifeq 46
        45: .line 339
            aload 6 /* dest */
            iload 9 /* cr */
            invokevirtual org.jruby.RubyString.setCodeRange:(I)V
        46: .line 342
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int int org.jruby.RubyString byte[] int int org.jcodings.Encoding org.jcodings.Encoding org.jruby.util.ByteList int org.jruby.Ruby
      StackMap stack:
            aload 6 /* dest */
            areturn
        end local 14 // org.jruby.Ruby runtime
        end local 13 // int buf
        end local 12 // org.jruby.util.ByteList byteList
        end local 11 // org.jcodings.Encoding encidx
        end local 10 // org.jcodings.Encoding origenc
        end local 9 // int cr
        end local 8 // int cstr
        end local 7 // byte[] cstrBytes
        end local 6 // org.jruby.RubyString dest
        end local 5 // int beg
        end local 4 // int len
        end local 3 // int i
        end local 2 // org.jruby.runtime.builtin.IRubyObject encoding
        end local 1 // org.jruby.RubyString str
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   47     0    context  Lorg/jruby/runtime/ThreadContext;
            0   47     1        str  Lorg/jruby/RubyString;
            0   47     2   encoding  Lorg/jruby/runtime/builtin/IRubyObject;
           10   47     3          i  I
            4   47     4        len  I
            1   47     5        beg  I
            2   47     6       dest  Lorg/jruby/RubyString;
            6   47     7  cstrBytes  [B
            7   47     8       cstr  I
           36   37     9         cr  I
           39   47     9         cr  I
           40   47    10    origenc  Lorg/jcodings/Encoding;
            3   47    11     encidx  Lorg/jcodings/Encoding;
            5   47    12   byteList  Lorg/jruby/util/ByteList;
            8   47    13        buf  I
            9   47    14    runtime  Lorg/jruby/Ruby;
           12   30    15          c  I
           13   30    16       clen  I
    MethodParameters:
          Name  Flags
      context   
      str       
      encoding  

  public static org.jruby.runtime.builtin.IRubyObject cgiesc_escape_html(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject _str
         0: .line 354
            aload 2 /* _str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 3 /* str */
        start local 3 // org.jruby.RubyString str
         1: .line 356
            aload 3 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 3
         2: .line 357
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* str */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_escape_html:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 359
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 0 /* context */
            aload 1 /* self */
            aload 2 /* _str */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.runtime.Helpers.invokeSuper:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyString str
        end local 2 // org.jruby.runtime.builtin.IRubyObject _str
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2     _str  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     3      str  Lorg/jruby/RubyString;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"escapeHTML"}, module = true, frame = true)
    MethodParameters:
         Name  Flags
      context  
      self     
      _str     

  public static org.jruby.runtime.builtin.IRubyObject cgiesc_unescape_html(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject _str
         0: .line 372
            aload 2 /* _str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 3 /* str */
        start local 3 // org.jruby.RubyString str
         1: .line 374
            aload 3 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 3
         2: .line 375
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* str */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_unescape_html:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 377
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 0 /* context */
            aload 1 /* self */
            aload 2 /* _str */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.runtime.Helpers.invokeSuper:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyString str
        end local 2 // org.jruby.runtime.builtin.IRubyObject _str
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2     _str  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     3      str  Lorg/jruby/RubyString;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"unescapeHTML"}, module = true, frame = true)
    MethodParameters:
         Name  Flags
      context  
      self     
      _str     

  public static org.jruby.runtime.builtin.IRubyObject cgiesc_escape(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject _str
         0: .line 390
            aload 2 /* _str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 3 /* str */
        start local 3 // org.jruby.RubyString str
         1: .line 392
            aload 3 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 3
         2: .line 393
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* str */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_escape:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 395
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 0 /* context */
            aload 1 /* self */
            aload 2 /* _str */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.runtime.Helpers.invokeSuper:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyString str
        end local 2 // org.jruby.runtime.builtin.IRubyObject _str
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2     _str  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     3      str  Lorg/jruby/RubyString;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"escape"}, module = true, frame = true)
    MethodParameters:
         Name  Flags
      context  
      self     
      _str     

  static org.jruby.runtime.builtin.IRubyObject accept_charset(org.jruby.runtime.builtin.IRubyObject[], int, int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 1 // int argc
        start local 2 // int argv
        start local 3 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 400
            iload 1 /* argc */
            ifle 2
         1: .line 401
            aload 0 /* args */
            iload 2 /* argv */
            aaload
            areturn
         2: .line 402
      StackMap locals:
      StackMap stack:
            aload 3 /* self */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            ldc "@@accept_charset"
            invokevirtual org.jruby.RubyClass.getClassVar:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject self
        end local 2 // int argv
        end local 1 // int argc
        end local 0 // org.jruby.runtime.builtin.IRubyObject[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     1  argc  I
            0    3     2  argv  I
            0    3     3  self  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      args  
      argc  
      argv  
      self  

  public static org.jruby.runtime.builtin.IRubyObject cgiesc_unescape(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
         0: .line 414
            aload 2 /* argv */
            iconst_0
            aaload
            astore 3 /* _str */
        start local 3 // org.jruby.runtime.builtin.IRubyObject _str
         1: .line 416
            aload 3 /* _str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 4 /* str */
        start local 4 // org.jruby.RubyString str
         2: .line 418
            aload 4 /* str */
            invokevirtual org.jruby.RubyString.getEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 5
         3: .line 419
            aload 2 /* argv */
            aload 2 /* argv */
            arraylength
            iconst_1
            isub
            iconst_1
            aload 1 /* self */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.accept_charset:([Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* enc */
        start local 5 // org.jruby.runtime.builtin.IRubyObject enc
         4: .line 420
            aload 0 /* context */
            aload 4 /* str */
            aload 5 /* enc */
            invokestatic org.jruby.ext.cgi.escape.CGIEscape.optimized_unescape:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject enc
         5: .line 422
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString
      StackMap stack:
            aload 0 /* context */
            aload 1 /* self */
            aload 2 /* argv */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.runtime.Helpers.invokeSuper:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.RubyString str
        end local 3 // org.jruby.runtime.builtin.IRubyObject _str
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     3     _str  Lorg/jruby/runtime/builtin/IRubyObject;
            2    6     4      str  Lorg/jruby/RubyString;
            4    5     5      enc  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"unescape"}, required = 1, optional = 1, module = true, frame = true)
    MethodParameters:
         Name  Flags
      context  
      self     
      argv     

  public void load(org.jruby.Ruby, boolean);
    descriptor: (Lorg/jruby/Ruby;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.ext.cgi.escape.CGIEscape this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean wrap
         0: .line 427
            aload 1 /* runtime */
            ldc "CGI"
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 3 /* rb_cCGI */
        start local 3 // org.jruby.RubyClass rb_cCGI
         1: .line 428
            aload 3 /* rb_cCGI */
            ldc "Escape"
            invokevirtual org.jruby.RubyClass.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 4 /* rb_mEscape */
        start local 4 // org.jruby.RubyModule rb_mEscape
         2: .line 429
            aload 4 /* rb_mEscape */
            ldc Lorg/jruby/ext/cgi/escape/CGIEscape;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
         3: .line 433
            return
        end local 4 // org.jruby.RubyModule rb_mEscape
        end local 3 // org.jruby.RubyClass rb_cCGI
        end local 2 // boolean wrap
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.cgi.escape.CGIEscape this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/jruby/ext/cgi/escape/CGIEscape;
            0    4     1     runtime  Lorg/jruby/Ruby;
            0    4     2        wrap  Z
            1    4     3     rb_cCGI  Lorg/jruby/RubyClass;
            2    4     4  rb_mEscape  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  
      wrap     

  static int ruby_scan_digits(byte[], int, int, int, int[]);
    descriptor: ([BIII[I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // byte[] strBytes
        start local 1 // int str
        start local 2 // int len
        start local 3 // int base
        start local 4 // int[] retlenOverflow
         0: .line 438
            iload 1 /* str */
            istore 5 /* start */
        start local 5 // int start
         1: .line 439
            iconst_0
            istore 6 /* ret */
        start local 6 // int ret
         2: .line 440
            ldc 2147483647
            iload 3 /* base */
            idiv
            istore 8 /* mul_overflow */
        start local 8 // int mul_overflow
         3: .line 442
            aload 4 /* retlenOverflow */
            iconst_1
            iconst_0
            iastore
         4: .line 444
            iload 2 /* len */
            ifne 7
         5: .line 445
            aload 4 /* retlenOverflow */
            iconst_0
            iconst_0
            iastore
         6: .line 446
            iconst_0
            ireturn
         7: .line 450
      StackMap locals: byte[] int int int int[] int int top int
      StackMap stack:
            getstatic org.jruby.ext.cgi.escape.CGIEscape.ruby_digit36_to_number_table:[I
            aload 0 /* strBytes */
            iload 1 /* str */
            iinc 1 /* str */ 1
            baload
            iaload
            istore 9 /* d */
        start local 9 // int d
         8: .line 451
            iload 9 /* d */
            iconst_m1
            if_icmpeq 9
            iload 3 /* base */
            iload 9 /* d */
            if_icmpgt 11
         9: .line 452
      StackMap locals: int
      StackMap stack:
            iinc 1 /* str */ -1
        10: .line 453
            goto 19
        11: .line 455
      StackMap locals:
      StackMap stack:
            iload 8 /* mul_overflow */
            iload 6 /* ret */
            if_icmpge 13
        12: .line 456
            aload 4 /* retlenOverflow */
            iconst_1
            iconst_1
            iastore
        13: .line 457
      StackMap locals:
      StackMap stack:
            iload 6 /* ret */
            iload 3 /* base */
            imul
            istore 6 /* ret */
        14: .line 458
            iload 6 /* ret */
            istore 7 /* x */
        start local 7 // int x
        15: .line 459
            iload 6 /* ret */
            iload 9 /* d */
            iadd
            istore 6 /* ret */
        16: .line 460
            iload 6 /* ret */
            iload 7 /* x */
            if_icmpge 18
        17: .line 461
            aload 4 /* retlenOverflow */
            iconst_1
            iconst_1
            iastore
        end local 9 // int d
        18: .line 462
      StackMap locals: byte[] int int int int[] int int int int
      StackMap stack:
            iload 2 /* len */
            iflt 7
            iinc 2 /* len */ -1
            iload 2 /* len */
            ifne 7
        end local 7 // int x
        19: .line 463
      StackMap locals: byte[] int int int int[] int int top int
      StackMap stack:
            aload 4 /* retlenOverflow */
            iconst_0
            iload 1 /* str */
            iload 5 /* start */
            isub
            iastore
        20: .line 464
            iload 6 /* ret */
            ireturn
        end local 8 // int mul_overflow
        end local 6 // int ret
        end local 5 // int start
        end local 4 // int[] retlenOverflow
        end local 3 // int base
        end local 2 // int len
        end local 1 // int str
        end local 0 // byte[] strBytes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0        strBytes  [B
            0   21     1             str  I
            0   21     2             len  I
            0   21     3            base  I
            0   21     4  retlenOverflow  [I
            1   21     5           start  I
            2   21     6             ret  I
           15   19     7               x  I
            3   21     8    mul_overflow  I
            8   18     9               d  I
    MethodParameters:
                Name  Flags
      strBytes        
      str             
      len             
      base            
      retlenOverflow  

  static int char_to_number(int);
    descriptor: (I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int c
         0: .line 468
            getstatic org.jruby.ext.cgi.escape.CGIEscape.ruby_digit36_to_number_table:[I
            iload 0 /* c */
            iaload
            ireturn
        end local 0 // int c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  I
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "CGIEscape.java"