public final class org.bson.internal.Base64
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.bson.internal.Base64
  super_class: java.lang.Object
{
  private static final int BYTES_PER_UNENCODED_BLOCK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int BYTES_PER_ENCODED_BLOCK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int SIX_BIT_MASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 63

  private static final byte PAD;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 61

  private static final byte[] ENCODE_TABLE;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 46
            bipush 64
            newarray 8
            dup
            iconst_0
            bipush 65
            bastore
            dup
            iconst_1
            bipush 66
            bastore
            dup
            iconst_2
            bipush 67
            bastore
            dup
            iconst_3
            bipush 68
            bastore
            dup
            iconst_4
            bipush 69
            bastore
            dup
            iconst_5
            bipush 70
            bastore
            dup
            bipush 6
         1: .line 47
            bipush 71
            bastore
            dup
            bipush 7
            bipush 72
            bastore
            dup
            bipush 8
            bipush 73
            bastore
            dup
            bipush 9
            bipush 74
            bastore
            dup
            bipush 10
            bipush 75
            bastore
            dup
            bipush 11
            bipush 76
            bastore
            dup
            bipush 12
            bipush 77
            bastore
            dup
            bipush 13
            bipush 78
            bastore
            dup
            bipush 14
            bipush 79
            bastore
            dup
            bipush 15
            bipush 80
            bastore
            dup
            bipush 16
            bipush 81
            bastore
            dup
            bipush 17
            bipush 82
            bastore
            dup
            bipush 18
            bipush 83
            bastore
            dup
            bipush 19
         2: .line 48
            bipush 84
            bastore
            dup
            bipush 20
            bipush 85
            bastore
            dup
            bipush 21
            bipush 86
            bastore
            dup
            bipush 22
            bipush 87
            bastore
            dup
            bipush 23
            bipush 88
            bastore
            dup
            bipush 24
            bipush 89
            bastore
            dup
            bipush 25
            bipush 90
            bastore
            dup
            bipush 26
            bipush 97
            bastore
            dup
            bipush 27
            bipush 98
            bastore
            dup
            bipush 28
            bipush 99
            bastore
            dup
            bipush 29
            bipush 100
            bastore
            dup
            bipush 30
            bipush 101
            bastore
            dup
            bipush 31
            bipush 102
            bastore
            dup
            bipush 32
         3: .line 49
            bipush 103
            bastore
            dup
            bipush 33
            bipush 104
            bastore
            dup
            bipush 34
            bipush 105
            bastore
            dup
            bipush 35
            bipush 106
            bastore
            dup
            bipush 36
            bipush 107
            bastore
            dup
            bipush 37
            bipush 108
            bastore
            dup
            bipush 38
            bipush 109
            bastore
            dup
            bipush 39
            bipush 110
            bastore
            dup
            bipush 40
            bipush 111
            bastore
            dup
            bipush 41
            bipush 112
            bastore
            dup
            bipush 42
            bipush 113
            bastore
            dup
            bipush 43
            bipush 114
            bastore
            dup
            bipush 44
            bipush 115
            bastore
            dup
            bipush 45
         4: .line 50
            bipush 116
            bastore
            dup
            bipush 46
            bipush 117
            bastore
            dup
            bipush 47
            bipush 118
            bastore
            dup
            bipush 48
            bipush 119
            bastore
            dup
            bipush 49
            bipush 120
            bastore
            dup
            bipush 50
            bipush 121
            bastore
            dup
            bipush 51
            bipush 122
            bastore
            dup
            bipush 52
            bipush 48
            bastore
            dup
            bipush 53
            bipush 49
            bastore
            dup
            bipush 54
            bipush 50
            bastore
            dup
            bipush 55
            bipush 51
            bastore
            dup
            bipush 56
            bipush 52
            bastore
            dup
            bipush 57
            bipush 53
            bastore
            dup
            bipush 58
         5: .line 51
            bipush 54
            bastore
            dup
            bipush 59
            bipush 55
            bastore
            dup
            bipush 60
            bipush 56
            bastore
            dup
            bipush 61
            bipush 57
            bastore
            dup
            bipush 62
            bipush 43
            bastore
            dup
            bipush 63
            bipush 47
            bastore
         6: .line 46
            putstatic org.bson.internal.Base64.ENCODE_TABLE:[B
         7: .line 53
            sipush 128
            newarray 10
            putstatic org.bson.internal.Base64.DECODE_TABLE:[I
         8: .line 56
            iconst_0
            istore 0 /* i */
        start local 0 // int i
         9: goto 12
        10: .line 57
      StackMap locals: int
      StackMap stack:
            getstatic org.bson.internal.Base64.DECODE_TABLE:[I
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 0 /* i */
            baload
            iload 0 /* i */
            iastore
        11: .line 56
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 0 /* i */
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            arraylength
            if_icmplt 10
        end local 0 // int i
        13: .line 59
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            9   13     0     i  I

  public static byte[] decode(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // java.lang.String s
         0: .line 68
            aload 0 /* s */
            ldc "=="
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 1
            iconst_2
            goto 3
      StackMap locals:
      StackMap stack:
         1: aload 0 /* s */
            ldc "="
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 1 /* delta */
        start local 1 // int delta
         4: .line 69
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_3
            imul
            iconst_4
            idiv
            iload 1 /* delta */
            isub
            newarray 8
            astore 2 /* buffer */
        start local 2 // byte[] buffer
         5: .line 70
            sipush 255
            istore 3 /* mask */
        start local 3 // int mask
         6: .line 71
            iconst_0
            istore 4 /* pos */
        start local 4 // int pos
         7: .line 72
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 21
         9: .line 73
      StackMap locals: java.lang.String int byte[] int int int
      StackMap stack:
            getstatic org.bson.internal.Base64.DECODE_TABLE:[I
            aload 0 /* s */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            iaload
            istore 6 /* c0 */
        start local 6 // int c0
        10: .line 74
            getstatic org.bson.internal.Base64.DECODE_TABLE:[I
            aload 0 /* s */
            iload 5 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            iaload
            istore 7 /* c1 */
        start local 7 // int c1
        11: .line 75
            aload 2 /* buffer */
            iload 4 /* pos */
            iinc 4 /* pos */ 1
            iload 6 /* c0 */
            iconst_2
            ishl
            iload 7 /* c1 */
            iconst_4
            ishr
            ior
            iload 3 /* mask */
            iand
            i2b
            bastore
        12: .line 76
            iload 4 /* pos */
            aload 2 /* buffer */
            arraylength
            if_icmplt 14
        13: .line 77
            aload 2 /* buffer */
            areturn
        14: .line 79
      StackMap locals: int int
      StackMap stack:
            getstatic org.bson.internal.Base64.DECODE_TABLE:[I
            aload 0 /* s */
            iload 5 /* i */
            iconst_2
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            iaload
            istore 8 /* c2 */
        start local 8 // int c2
        15: .line 80
            aload 2 /* buffer */
            iload 4 /* pos */
            iinc 4 /* pos */ 1
            iload 7 /* c1 */
            iconst_4
            ishl
            iload 8 /* c2 */
            iconst_2
            ishr
            ior
            iload 3 /* mask */
            iand
            i2b
            bastore
        16: .line 81
            iload 4 /* pos */
            aload 2 /* buffer */
            arraylength
            if_icmplt 18
        17: .line 82
            aload 2 /* buffer */
            areturn
        18: .line 84
      StackMap locals: int
      StackMap stack:
            getstatic org.bson.internal.Base64.DECODE_TABLE:[I
            aload 0 /* s */
            iload 5 /* i */
            iconst_3
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            iaload
            istore 9 /* c3 */
        start local 9 // int c3
        19: .line 85
            aload 2 /* buffer */
            iload 4 /* pos */
            iinc 4 /* pos */ 1
            iload 8 /* c2 */
            bipush 6
            ishl
            iload 9 /* c3 */
            ior
            iload 3 /* mask */
            iand
            i2b
            bastore
        end local 9 // int c3
        end local 8 // int c2
        end local 7 // int c1
        end local 6 // int c0
        20: .line 72
            iinc 5 /* i */ 4
      StackMap locals:
      StackMap stack:
        21: iload 5 /* i */
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmplt 9
        end local 5 // int i
        22: .line 87
            aload 2 /* buffer */
            areturn
        end local 4 // int pos
        end local 3 // int mask
        end local 2 // byte[] buffer
        end local 1 // int delta
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0       s  Ljava/lang/String;
            4   23     1   delta  I
            5   23     2  buffer  [B
            6   23     3    mask  I
            7   23     4     pos  I
            8   22     5       i  I
           10   20     6      c0  I
           11   20     7      c1  I
           15   20     8      c2  I
           19   20     9      c3  I
    MethodParameters:
      Name  Flags
      s     final

  public static java.lang.String encode(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // byte[] in
         0: .line 99
            iconst_0
            istore 1 /* modulus */
        start local 1 // int modulus
         1: .line 100
            iconst_0
            istore 2 /* bitWorkArea */
        start local 2 // int bitWorkArea
         2: .line 101
            aload 0 /* in */
            arraylength
            iconst_3
            idiv
            iconst_4
            imul
         3: .line 102
            aload 0 /* in */
            arraylength
            iconst_3
            irem
            ifne 4
            iconst_0
            goto 5
      StackMap locals: byte[] int int
      StackMap stack: int
         4: iconst_4
         5: .line 101
      StackMap locals: byte[] int int
      StackMap stack: int int
            iadd
            istore 3 /* numEncodedBytes */
        start local 3 // int numEncodedBytes
         6: .line 104
            iload 3 /* numEncodedBytes */
            newarray 8
            astore 4 /* buffer */
        start local 4 // byte[] buffer
         7: .line 105
            iconst_0
            istore 5 /* pos */
        start local 5 // int pos
         8: .line 107
            aload 0 /* in */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 20
      StackMap locals: byte[] int int int byte[] int top int int byte[]
      StackMap stack:
         9: aload 9
            iload 7
            baload
            istore 6 /* b */
        start local 6 // int b
        10: .line 108
            iload 1 /* modulus */
            iconst_1
            iadd
            iconst_3
            irem
            istore 1 /* modulus */
        11: .line 110
            iload 6 /* b */
            ifge 13
        12: .line 111
            iinc 6 /* b */ 256
        13: .line 114
      StackMap locals: byte[] int int int byte[] int int int int byte[]
      StackMap stack:
            iload 2 /* bitWorkArea */
            bipush 8
            ishl
            iload 6 /* b */
            iadd
            istore 2 /* bitWorkArea */
        14: .line 115
            iload 1 /* modulus */
            ifne 19
        15: .line 116
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            bipush 18
            ishr
            bipush 63
            iand
            baload
            bastore
        16: .line 117
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            bipush 12
            ishr
            bipush 63
            iand
            baload
            bastore
        17: .line 118
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            bipush 6
            ishr
            bipush 63
            iand
            baload
            bastore
        18: .line 119
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            bipush 63
            iand
            baload
            bastore
        end local 6 // int b
        19: .line 107
      StackMap locals: byte[] int int int byte[] int top int int byte[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        20: iload 7
            iload 8
            if_icmplt 9
        21: .line 123
            iload 1 /* modulus */
            tableswitch { // 1 - 2
                    1: 22
                    2: 27
              default: 32
          }
        22: .line 125
      StackMap locals: byte[] int int int byte[] int
      StackMap stack:
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            iconst_2
            ishr
            bipush 63
            iand
            baload
            bastore
        23: .line 126
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            iconst_4
            ishl
            bipush 63
            iand
            baload
            bastore
        24: .line 127
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            bipush 61
            bastore
        25: .line 128
            aload 4 /* buffer */
            iload 5 /* pos */
            bipush 61
            bastore
        26: .line 129
            goto 32
        27: .line 132
      StackMap locals:
      StackMap stack:
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            bipush 10
            ishr
            bipush 63
            iand
            baload
            bastore
        28: .line 133
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            iconst_4
            ishr
            bipush 63
            iand
            baload
            bastore
        29: .line 134
            aload 4 /* buffer */
            iload 5 /* pos */
            iinc 5 /* pos */ 1
            getstatic org.bson.internal.Base64.ENCODE_TABLE:[B
            iload 2 /* bitWorkArea */
            iconst_2
            ishl
            bipush 63
            iand
            baload
            bastore
        30: .line 135
            aload 4 /* buffer */
            iload 5 /* pos */
            bipush 61
            bastore
        31: .line 136
            goto 32
        32: .line 141
      StackMap locals:
      StackMap stack:
            aload 4 /* buffer */
            invokestatic org.bson.internal.Base64.byteArrayToString:([B)Ljava/lang/String;
            areturn
        end local 5 // int pos
        end local 4 // byte[] buffer
        end local 3 // int numEncodedBytes
        end local 2 // int bitWorkArea
        end local 1 // int modulus
        end local 0 // byte[] in
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0               in  [B
            1   33     1          modulus  I
            2   33     2      bitWorkArea  I
            6   33     3  numEncodedBytes  I
            7   33     4           buffer  [B
            8   33     5              pos  I
           10   19     6                b  I
    MethodParameters:
      Name  Flags
      in    final

  private static java.lang.String byteArrayToString(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // byte[] buffer
         0: .line 146
            new java.lang.String
            dup
            aload 0 /* buffer */
            iconst_0
            iconst_0
            aload 0 /* buffer */
            arraylength
            invokespecial java.lang.String.<init>:([BIII)V
            areturn
        end local 0 // byte[] buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  buffer  [B
    MethodParameters:
        Name  Flags
      buffer  final

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.internal.Base64 this
         0: .line 149
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 150
            return
        end local 0 // org.bson.internal.Base64 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/internal/Base64;
}
SourceFile: "Base64.java"