public abstract class com.google.common.escape.UnicodeEscaper extends com.google.common.escape.Escaper
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.common.escape.UnicodeEscaper
  super_class: com.google.common.escape.Escaper
{
  private static final int DEST_PAD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.escape.UnicodeEscaper this
         0: .line 59
            aload 0 /* this */
            invokespecial com.google.common.escape.Escaper.<init>:()V
            return
        end local 0 // com.google.common.escape.UnicodeEscaper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/escape/UnicodeEscaper;

  protected abstract char[] escape(int);
    descriptor: (I)[C
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      cp    

  public java.lang.String escape(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.google.common.escape.UnicodeEscaper this
        start local 1 // java.lang.String string
         0: .line 102
            aload 1 /* string */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 103
            aload 1 /* string */
            invokevirtual java.lang.String.length:()I
            istore 2 /* end */
        start local 2 // int end
         2: .line 104
            aload 0 /* this */
            aload 1 /* string */
            iconst_0
            iload 2 /* end */
            invokevirtual com.google.common.escape.UnicodeEscaper.nextEscapeIndex:(Ljava/lang/CharSequence;II)I
            istore 3 /* index */
        start local 3 // int index
         3: .line 105
            iload 3 /* index */
            iload 2 /* end */
            if_icmpne 4
            aload 1 /* string */
            goto 5
      StackMap locals: int int
      StackMap stack:
         4: aload 0 /* this */
            aload 1 /* string */
            iload 3 /* index */
            invokevirtual com.google.common.escape.UnicodeEscaper.escapeSlow:(Ljava/lang/String;I)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         5: areturn
        end local 3 // int index
        end local 2 // int end
        end local 1 // java.lang.String string
        end local 0 // com.google.common.escape.UnicodeEscaper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/google/common/escape/UnicodeEscaper;
            0    6     1  string  Ljava/lang/String;
            2    6     2     end  I
            3    6     3   index  I
    MethodParameters:
        Name  Flags
      string  

  protected int nextEscapeIndex(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.google.common.escape.UnicodeEscaper this
        start local 1 // java.lang.CharSequence csq
        start local 2 // int start
        start local 3 // int end
         0: .line 131
            iload 2 /* start */
            istore 4 /* index */
        start local 4 // int index
         1: .line 132
            goto 8
         2: .line 133
      StackMap locals: int
      StackMap stack:
            aload 1 /* csq */
            iload 4 /* index */
            iload 3 /* end */
            invokestatic com.google.common.escape.UnicodeEscaper.codePointAt:(Ljava/lang/CharSequence;II)I
            istore 5 /* cp */
        start local 5 // int cp
         3: .line 134
            iload 5 /* cp */
            iflt 9
            aload 0 /* this */
            iload 5 /* cp */
            invokevirtual com.google.common.escape.UnicodeEscaper.escape:(I)[C
            ifnull 5
         4: .line 135
            goto 9
         5: .line 137
      StackMap locals: int
      StackMap stack:
            iload 4 /* index */
            iload 5 /* cp */
            invokestatic java.lang.Character.isSupplementaryCodePoint:(I)Z
            ifeq 6
            iconst_2
            goto 7
      StackMap locals:
      StackMap stack: int
         6: iconst_1
      StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.CharSequence int int int int
      StackMap stack: int int
         7: iadd
            istore 4 /* index */
        end local 5 // int cp
         8: .line 132
      StackMap locals:
      StackMap stack:
            iload 4 /* index */
            iload 3 /* end */
            if_icmplt 2
         9: .line 139
      StackMap locals:
      StackMap stack:
            iload 4 /* index */
            ireturn
        end local 4 // int index
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.CharSequence csq
        end local 0 // com.google.common.escape.UnicodeEscaper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/google/common/escape/UnicodeEscaper;
            0   10     1    csq  Ljava/lang/CharSequence;
            0   10     2  start  I
            0   10     3    end  I
            1   10     4  index  I
            3    8     5     cp  I
    MethodParameters:
       Name  Flags
      csq    
      start  
      end    

  protected final java.lang.String escapeSlow(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // com.google.common.escape.UnicodeEscaper this
        start local 1 // java.lang.String s
        start local 2 // int index
         0: .line 158
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            istore 3 /* end */
        start local 3 // int end
         1: .line 161
            invokestatic com.google.common.escape.Platform.charBufferFromThreadLocal:()[C
            astore 4 /* dest */
        start local 4 // char[] dest
         2: .line 162
            iconst_0
            istore 5 /* destIndex */
        start local 5 // int destIndex
         3: .line 163
            iconst_0
            istore 6 /* unescapedChunkStart */
        start local 6 // int unescapedChunkStart
         4: .line 165
            goto 26
         5: .line 166
      StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.String int int char[] int int
      StackMap stack:
            aload 1 /* s */
            iload 2 /* index */
            iload 3 /* end */
            invokestatic com.google.common.escape.UnicodeEscaper.codePointAt:(Ljava/lang/CharSequence;II)I
            istore 7 /* cp */
        start local 7 // int cp
         6: .line 167
            iload 7 /* cp */
            ifge 8
         7: .line 168
            new java.lang.IllegalArgumentException
            dup
            ldc "Trailing high surrogate at end of input"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 173
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 7 /* cp */
            invokevirtual com.google.common.escape.UnicodeEscaper.escape:(I)[C
            astore 8 /* escaped */
        start local 8 // char[] escaped
         9: .line 174
            iload 2 /* index */
            iload 7 /* cp */
            invokestatic java.lang.Character.isSupplementaryCodePoint:(I)Z
            ifeq 10
            iconst_2
            goto 11
      StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.String int int char[] int int int char[]
      StackMap stack: int
        10: iconst_1
      StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.String int int char[] int int int char[]
      StackMap stack: int int
        11: iadd
            istore 9 /* nextIndex */
        start local 9 // int nextIndex
        12: .line 175
            aload 8 /* escaped */
            ifnull 25
        13: .line 176
            iload 2 /* index */
            iload 6 /* unescapedChunkStart */
            isub
            istore 10 /* charsSkipped */
        start local 10 // int charsSkipped
        14: .line 180
            iload 5 /* destIndex */
            iload 10 /* charsSkipped */
            iadd
            aload 8 /* escaped */
            arraylength
            iadd
            istore 11 /* sizeNeeded */
        start local 11 // int sizeNeeded
        15: .line 181
            aload 4 /* dest */
            arraylength
            iload 11 /* sizeNeeded */
            if_icmpge 18
        16: .line 182
            iload 11 /* sizeNeeded */
            iload 3 /* end */
            iload 2 /* index */
            isub
            iadd
            bipush 32
            iadd
            istore 12 /* destLength */
        start local 12 // int destLength
        17: .line 183
            aload 4 /* dest */
            iload 5 /* destIndex */
            iload 12 /* destLength */
            invokestatic com.google.common.escape.UnicodeEscaper.growBuffer:([CII)[C
            astore 4 /* dest */
        end local 12 // int destLength
        18: .line 186
      StackMap locals: int int int
      StackMap stack:
            iload 10 /* charsSkipped */
            ifle 21
        19: .line 187
            aload 1 /* s */
            iload 6 /* unescapedChunkStart */
            iload 2 /* index */
            aload 4 /* dest */
            iload 5 /* destIndex */
            invokevirtual java.lang.String.getChars:(II[CI)V
        20: .line 188
            iload 5 /* destIndex */
            iload 10 /* charsSkipped */
            iadd
            istore 5 /* destIndex */
        21: .line 190
      StackMap locals:
      StackMap stack:
            aload 8 /* escaped */
            arraylength
            ifle 24
        22: .line 191
            aload 8 /* escaped */
            iconst_0
            aload 4 /* dest */
            iload 5 /* destIndex */
            aload 8 /* escaped */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        23: .line 192
            iload 5 /* destIndex */
            aload 8 /* escaped */
            arraylength
            iadd
            istore 5 /* destIndex */
        24: .line 195
      StackMap locals:
      StackMap stack:
            iload 9 /* nextIndex */
            istore 6 /* unescapedChunkStart */
        end local 11 // int sizeNeeded
        end local 10 // int charsSkipped
        25: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* s */
            iload 9 /* nextIndex */
            iload 3 /* end */
            invokevirtual com.google.common.escape.UnicodeEscaper.nextEscapeIndex:(Ljava/lang/CharSequence;II)I
            istore 2 /* index */
        end local 9 // int nextIndex
        end local 8 // char[] escaped
        end local 7 // int cp
        26: .line 165
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            iload 3 /* end */
            if_icmplt 5
        27: .line 202
            iload 3 /* end */
            iload 6 /* unescapedChunkStart */
            isub
            istore 7 /* charsSkipped */
        start local 7 // int charsSkipped
        28: .line 203
            iload 7 /* charsSkipped */
            ifle 34
        29: .line 204
            iload 5 /* destIndex */
            iload 7 /* charsSkipped */
            iadd
            istore 8 /* endIndex */
        start local 8 // int endIndex
        30: .line 205
            aload 4 /* dest */
            arraylength
            iload 8 /* endIndex */
            if_icmpge 32
        31: .line 206
            aload 4 /* dest */
            iload 5 /* destIndex */
            iload 8 /* endIndex */
            invokestatic com.google.common.escape.UnicodeEscaper.growBuffer:([CII)[C
            astore 4 /* dest */
        32: .line 208
      StackMap locals: int int
      StackMap stack:
            aload 1 /* s */
            iload 6 /* unescapedChunkStart */
            iload 3 /* end */
            aload 4 /* dest */
            iload 5 /* destIndex */
            invokevirtual java.lang.String.getChars:(II[CI)V
        33: .line 209
            iload 8 /* endIndex */
            istore 5 /* destIndex */
        end local 8 // int endIndex
        34: .line 211
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 4 /* dest */
            iconst_0
            iload 5 /* destIndex */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 7 // int charsSkipped
        end local 6 // int unescapedChunkStart
        end local 5 // int destIndex
        end local 4 // char[] dest
        end local 3 // int end
        end local 2 // int index
        end local 1 // java.lang.String s
        end local 0 // com.google.common.escape.UnicodeEscaper this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   35     0                 this  Lcom/google/common/escape/UnicodeEscaper;
            0   35     1                    s  Ljava/lang/String;
            0   35     2                index  I
            1   35     3                  end  I
            2   35     4                 dest  [C
            3   35     5            destIndex  I
            4   35     6  unescapedChunkStart  I
            6   26     7                   cp  I
            9   26     8              escaped  [C
           12   26     9            nextIndex  I
           14   25    10         charsSkipped  I
           15   25    11           sizeNeeded  I
           17   18    12           destLength  I
           28   35     7         charsSkipped  I
           30   34     8             endIndex  I
    MethodParameters:
       Name  Flags
      s      
      index  

  protected static int codePointAt(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.CharSequence seq
        start local 1 // int index
        start local 2 // int end
         0: .line 246
            aload 0 /* seq */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 247
            iload 1 /* index */
            iload 2 /* end */
            if_icmpge 35
         2: .line 248
            aload 0 /* seq */
            iload 1 /* index */
            iinc 1 /* index */ 1
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 3 /* c1 */
        start local 3 // char c1
         3: .line 249
            iload 3 /* c1 */
            ldc 55296
            if_icmplt 4
            iload 3 /* c1 */
            ldc 57343
            if_icmple 5
         4: .line 251
      StackMap locals: int
      StackMap stack:
            iload 3 /* c1 */
            ireturn
         5: .line 252
      StackMap locals:
      StackMap stack:
            iload 3 /* c1 */
            ldc 56319
            if_icmpgt 23
         6: .line 254
            iload 1 /* index */
            iload 2 /* end */
            if_icmpne 8
         7: .line 255
            iload 3 /* c1 */
            ineg
            ireturn
         8: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* seq */
            iload 1 /* index */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 4 /* c2 */
        start local 4 // char c2
         9: .line 259
            iload 4 /* c2 */
            invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 11
        10: .line 260
            iload 3 /* c1 */
            iload 4 /* c2 */
            invokestatic java.lang.Character.toCodePoint:(CC)I
            ireturn
        11: .line 262
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        12: .line 263
            new java.lang.StringBuilder
            dup
            ldc "Expected low surrogate but got char '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 264
            iload 4 /* c2 */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        14: .line 265
            ldc "' with value "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 266
            iload 4 /* c2 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        16: .line 267
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 268
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        18: .line 269
            ldc " in '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 270
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        20: .line 271
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 263
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 262
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // char c2
        23: .line 273
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        24: .line 274
            new java.lang.StringBuilder
            dup
            ldc "Unexpected low surrogate character '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 275
            iload 3 /* c1 */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        26: .line 276
            ldc "' with value "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 277
            iload 3 /* c1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        28: .line 278
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 279
            iload 1 /* index */
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        30: .line 280
            ldc " in '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 281
            aload 0 /* seq */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        32: .line 282
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 274
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 273
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // char c1
        35: .line 285
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "Index exceeds specified range"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // int end
        end local 1 // int index
        end local 0 // java.lang.CharSequence seq
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   36     0    seq  Ljava/lang/CharSequence;
            0   36     1  index  I
            0   36     2    end  I
            3   35     3     c1  C
            9   23     4     c2  C
    MethodParameters:
       Name  Flags
      seq    
      index  
      end    

  private static char[] growBuffer(char[], int, int);
    descriptor: ([CII)[C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // char[] dest
        start local 1 // int index
        start local 2 // int size
         0: .line 293
            iload 2 /* size */
            ifge 2
         1: .line 294
            new java.lang.AssertionError
            dup
            ldc "Cannot increase internal buffer any further"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 296
      StackMap locals:
      StackMap stack:
            iload 2 /* size */
            newarray 5
            astore 3 /* copy */
        start local 3 // char[] copy
         3: .line 297
            iload 1 /* index */
            ifle 5
         4: .line 298
            aload 0 /* dest */
            iconst_0
            aload 3 /* copy */
            iconst_0
            iload 1 /* index */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 300
      StackMap locals: char[]
      StackMap stack:
            aload 3 /* copy */
            areturn
        end local 3 // char[] copy
        end local 2 // int size
        end local 1 // int index
        end local 0 // char[] dest
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   dest  [C
            0    6     1  index  I
            0    6     2   size  I
            3    6     3   copy  [C
    MethodParameters:
       Name  Flags
      dest   
      index  
      size   
}
SourceFile: "UnicodeEscaper.java"
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtCompatible()