class io.vertx.ext.mail.mailencoder.Utils
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.ext.mail.mailencoder.Utils
  super_class: java.lang.Object
{
  private static final java.util.concurrent.atomic.AtomicInteger count;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final byte[] lf;
    descriptor: [B
    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 93
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putstatic io.vertx.ext.mail.mailencoder.Utils.count:Ljava/util/concurrent/atomic/AtomicInteger;
         1: .line 223
            iconst_1
            newarray 8
            dup
            iconst_0
            bipush 10
            bastore
            putstatic io.vertx.ext.mail.mailencoder.Utils.lf:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.mail.mailencoder.Utils this
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 30
            return
        end local 0 // io.vertx.ext.mail.mailencoder.Utils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/mail/mailencoder/Utils;

  static java.lang.String encodeQP(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=9, args_size=1
        start local 0 // java.lang.String text
         0: .line 33
            aload 0 /* text */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 1 /* utf8 */
        start local 1 // byte[] utf8
         1: .line 34
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 36
            iconst_0
            istore 3 /* column */
        start local 3 // int column
         3: .line 37
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 25
         5: .line 38
      StackMap locals: java.lang.String byte[] java.lang.StringBuilder int int
      StackMap stack:
            aload 1 /* utf8 */
            iload 4 /* i */
            baload
            i2c
            istore 5 /* ch */
        start local 5 // char ch
         6: .line 39
            iload 5 /* ch */
            bipush 10
            if_icmpne 10
         7: .line 40
            aload 2 /* sb */
            iload 5 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 41
            iconst_0
            istore 3 /* column */
         9: .line 42
            goto 24
        10: .line 43
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            aload 1 /* utf8 */
            arraylength
            iconst_1
            isub
            if_icmpeq 11
            aload 1 /* utf8 */
            iload 4 /* i */
            iconst_1
            iadd
            baload
            bipush 10
            if_icmpeq 11
            iconst_0
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_1
      StackMap locals:
      StackMap stack: int
        12: istore 6 /* nextIsEOL */
        start local 6 // boolean nextIsEOL
        13: .line 45
            iload 5 /* ch */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.mustEncode:(C)Z
            ifne 14
            iload 6 /* nextIsEOL */
            ifeq 16
            iload 5 /* ch */
            bipush 32
            if_icmpne 16
        14: .line 46
      StackMap locals: int
      StackMap stack:
            iload 5 /* ch */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.encodeChar:(C)Ljava/lang/String;
            astore 7 /* encChar */
        start local 7 // java.lang.String encChar
        15: .line 47
            goto 17
        end local 7 // java.lang.String encChar
        16: .line 48
      StackMap locals:
      StackMap stack:
            iload 5 /* ch */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 7 /* encChar */
        start local 7 // java.lang.String encChar
        17: .line 50
      StackMap locals: java.lang.String
      StackMap stack:
            iload 3 /* column */
            aload 7 /* encChar */
            invokevirtual java.lang.String.length:()I
            iadd
            istore 8 /* newColumn */
        start local 8 // int newColumn
        18: .line 51
            iload 8 /* newColumn */
            bipush 75
            if_icmple 19
            iload 6 /* nextIsEOL */
            ifeq 22
            iload 8 /* newColumn */
            bipush 76
            if_icmpne 22
        19: .line 52
      StackMap locals: int
      StackMap stack:
            aload 2 /* sb */
            aload 7 /* encChar */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 53
            iload 8 /* newColumn */
            istore 3 /* column */
        21: .line 54
            goto 24
        22: .line 55
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc "=\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* encChar */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 56
            aload 7 /* encChar */
            invokevirtual java.lang.String.length:()I
            istore 3 /* column */
        end local 8 // int newColumn
        end local 7 // java.lang.String encChar
        end local 6 // boolean nextIsEOL
        end local 5 // char ch
        24: .line 37
      StackMap locals: java.lang.String byte[] java.lang.StringBuilder int int
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 4 /* i */
            aload 1 /* utf8 */
            arraylength
            if_icmplt 5
        end local 4 // int i
        26: .line 60
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int column
        end local 2 // java.lang.StringBuilder sb
        end local 1 // byte[] utf8
        end local 0 // java.lang.String text
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       text  Ljava/lang/String;
            1   27     1       utf8  [B
            2   27     2         sb  Ljava/lang/StringBuilder;
            3   27     3     column  I
            4   26     4          i  I
            6   24     5         ch  C
           13   24     6  nextIsEOL  Z
           15   16     7    encChar  Ljava/lang/String;
           17   24     7    encChar  Ljava/lang/String;
           18   24     8  newColumn  I
    MethodParameters:
      Name  Flags
      text  

  private static java.lang.String encodeChar(char);
    descriptor: (C)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // char ch
         0: .line 64
            iload 0 /* ch */
            bipush 16
            if_icmpge 2
         1: .line 65
            new java.lang.StringBuilder
            dup
            ldc "=0"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* ch */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 67
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 61
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* ch */
            sipush 255
            iand
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  static boolean mustEncode(char);
    descriptor: (C)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char ch
         0: .line 76
            iload 0 /* ch */
            sipush 128
            if_icmpge 2
            iload 0 /* ch */
            bipush 10
            if_icmplt 2
            iload 0 /* ch */
            bipush 11
            if_icmplt 1
            iload 0 /* ch */
            bipush 32
            if_icmplt 2
      StackMap locals:
      StackMap stack:
         1: iload 0 /* ch */
            bipush 61
            if_icmpeq 2
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    ch  C
    MethodParameters:
      Name  Flags
      ch    

  static boolean mustEncode(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.String s
         0: .line 84
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 6
         2: .line 85
      StackMap locals: int
      StackMap stack:
            aload 0 /* s */
            iload 1 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 2 /* ch */
        start local 2 // char ch
         3: .line 86
            iload 2 /* ch */
            bipush 61
            if_icmpeq 5
            iload 2 /* ch */
            bipush 9
            if_icmpeq 5
            iload 2 /* ch */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.mustEncode:(C)Z
            ifeq 5
         4: .line 87
            iconst_1
            ireturn
        end local 2 // char ch
         5: .line 84
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmplt 2
        end local 1 // int i
         7: .line 90
            iconst_0
            ireturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     s  Ljava/lang/String;
            1    7     1     i  I
            3    5     2    ch  C
    MethodParameters:
      Name  Flags
      s     

  static java.lang.String generateBoundary();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 96
            new java.lang.StringBuilder
            dup
            ldc "=--vertx_mail_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Object.hashCode:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic io.vertx.ext.mail.mailencoder.Utils.count:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.lang.String generateMessageID(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String hostname
         0: .line 100
            new java.lang.StringBuilder
            dup
            ldc "<msg."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ".vertxmail."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic io.vertx.ext.mail.mailencoder.Utils.count:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* hostname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String hostname
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  hostname  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      hostname  

  static java.lang.String encodeHeader(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=12, args_size=2
        start local 0 // java.lang.String subject
        start local 1 // int index
         0: .line 109
            aload 0 /* subject */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.mustEncode:(Ljava/lang/String;)Z
            ifeq 29
         1: .line 110
            aload 0 /* subject */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* utf8 */
        start local 2 // byte[] utf8
         2: .line 111
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         3: .line 112
            aload 3 /* sb */
            ldc "=?UTF-8?Q?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 113
            bipush 10
            iload 1 /* index */
            iadd
            istore 4 /* column */
        start local 4 // int column
         5: .line 114
            aload 2 /* utf8 */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 26
      StackMap locals: java.lang.String int byte[] java.lang.StringBuilder int top int int byte[]
      StackMap stack:
         6: aload 8
            iload 6
            baload
            istore 5 /* b */
        start local 5 // byte b
         7: .line 115
            iload 5 /* b */
            i2c
            istore 9 /* ch */
        start local 9 // char ch
         8: .line 116
            iload 9 /* ch */
            bipush 10
            if_icmpne 11
         9: .line 117
            iconst_1
            istore 4 /* column */
        10: .line 118
            goto 25
        11: .line 120
      StackMap locals: java.lang.String int byte[] java.lang.StringBuilder int int int int byte[] int
      StackMap stack:
            iload 9 /* ch */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.mustEncode:(C)Z
            ifne 12
            iload 9 /* ch */
            bipush 95
            if_icmpeq 12
            iload 9 /* ch */
            bipush 63
            if_icmpne 14
        12: .line 121
      StackMap locals:
      StackMap stack:
            iload 9 /* ch */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.encodeChar:(C)Ljava/lang/String;
            astore 10 /* encChar */
        start local 10 // java.lang.String encChar
        13: .line 122
            goto 18
        end local 10 // java.lang.String encChar
      StackMap locals:
      StackMap stack:
        14: iload 9 /* ch */
            bipush 32
            if_icmpne 17
        15: .line 123
            ldc "_"
            astore 10 /* encChar */
        start local 10 // java.lang.String encChar
        16: .line 124
            goto 18
        end local 10 // java.lang.String encChar
        17: .line 125
      StackMap locals:
      StackMap stack:
            iload 9 /* ch */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 10 /* encChar */
        start local 10 // java.lang.String encChar
        18: .line 127
      StackMap locals: java.lang.String
      StackMap stack:
            iload 4 /* column */
            aload 10 /* encChar */
            invokevirtual java.lang.String.length:()I
            iadd
            istore 11 /* newColumn */
        start local 11 // int newColumn
        19: .line 128
            iload 11 /* newColumn */
            bipush 74
            if_icmpgt 23
        20: .line 129
            aload 3 /* sb */
            aload 10 /* encChar */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 130
            iload 11 /* newColumn */
            istore 4 /* column */
        22: .line 131
            goto 25
        23: .line 132
      StackMap locals: int
      StackMap stack:
            aload 3 /* sb */
            ldc "?=\n =?UTF-8?Q?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* encChar */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 133
            bipush 11
            aload 10 /* encChar */
            invokevirtual java.lang.String.length:()I
            iadd
            istore 4 /* column */
        end local 11 // int newColumn
        end local 10 // java.lang.String encChar
        end local 9 // char ch
        end local 5 // byte b
        25: .line 114
      StackMap locals: java.lang.String int byte[] java.lang.StringBuilder int top int int byte[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        26: iload 6
            iload 7
            if_icmplt 6
        27: .line 137
            aload 3 /* sb */
            ldc "?="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 138
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // int column
        end local 3 // java.lang.StringBuilder sb
        end local 2 // byte[] utf8
        29: .line 140
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* subject */
            areturn
        end local 1 // int index
        end local 0 // java.lang.String subject
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   30     0    subject  Ljava/lang/String;
            0   30     1      index  I
            2   29     2       utf8  [B
            3   29     3         sb  Ljava/lang/StringBuilder;
            5   29     4     column  I
            7   25     5          b  B
            8   25     9         ch  C
           13   14    10    encChar  Ljava/lang/String;
           16   17    10    encChar  Ljava/lang/String;
           18   25    10    encChar  Ljava/lang/String;
           19   25    11  newColumn  I
    MethodParameters:
         Name  Flags
      subject  
      index    

  static java.lang.String encodeHeaderEmail(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.String address
        start local 1 // int index
         0: .line 145
            new io.vertx.ext.mail.mailencoder.EmailAddress
            dup
            aload 0 /* address */
            invokespecial io.vertx.ext.mail.mailencoder.EmailAddress.<init>:(Ljava/lang/String;)V
            astore 2 /* adr */
        start local 2 // io.vertx.ext.mail.mailencoder.EmailAddress adr
         1: .line 147
            aload 2 /* adr */
            invokevirtual io.vertx.ext.mail.mailencoder.EmailAddress.getName:()Ljava/lang/String;
            invokestatic io.vertx.ext.mail.mailencoder.Utils.mustEncode:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 148
            new java.lang.StringBuilder
            dup
            aload 2 /* adr */
            invokevirtual io.vertx.ext.mail.mailencoder.EmailAddress.getEmail:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* adr */
            invokevirtual io.vertx.ext.mail.mailencoder.EmailAddress.getName:()Ljava/lang/String;
            iload 1 /* index */
            aload 2 /* adr */
            invokevirtual io.vertx.ext.mail.mailencoder.EmailAddress.getEmail:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iadd
            iconst_2
            iadd
            invokestatic io.vertx.ext.mail.mailencoder.Utils.encodeHeader:(Ljava/lang/String;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         3: .line 150
      StackMap locals: io.vertx.ext.mail.mailencoder.EmailAddress
      StackMap stack:
            aload 0 /* address */
            areturn
        end local 2 // io.vertx.ext.mail.mailencoder.EmailAddress adr
        end local 1 // int index
        end local 0 // java.lang.String address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  address  Ljava/lang/String;
            0    4     1    index  I
            1    4     2      adr  Lio/vertx/ext/mail/mailencoder/EmailAddress;
    MethodParameters:
         Name  Flags
      address  
      index    

  static java.lang.String encodeEmailList(java.util.List<java.lang.String>, int);
    descriptor: (Ljava/util/List;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // java.util.List addresses
        start local 1 // int index
         0: .line 155
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 156
            iconst_1
            istore 3 /* firstAddress */
        start local 3 // boolean firstAddress
         2: .line 157
            aload 0 /* addresses */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 51
      StackMap locals: java.util.List int java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* addr */
        start local 4 // java.lang.String addr
         4: .line 158
            iload 3 /* firstAddress */
            ifeq 7
         5: .line 159
            iconst_0
            istore 3 /* firstAddress */
         6: .line 160
            goto 9
         7: .line 161
      StackMap locals: java.util.List int java.lang.StringBuilder int java.lang.String java.util.Iterator
      StackMap stack:
            aload 2 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 162
            iinc 1 /* index */ 1
         9: .line 164
      StackMap locals:
      StackMap stack:
            new io.vertx.ext.mail.mailencoder.EmailAddress
            dup
            aload 4 /* addr */
            invokespecial io.vertx.ext.mail.mailencoder.EmailAddress.<init>:(Ljava/lang/String;)V
            astore 6 /* adr */
        start local 6 // io.vertx.ext.mail.mailencoder.EmailAddress adr
        10: .line 165
            aload 6 /* adr */
            invokevirtual io.vertx.ext.mail.mailencoder.EmailAddress.getEmail:()Ljava/lang/String;
            astore 7 /* email */
        start local 7 // java.lang.String email
        11: .line 166
            aload 6 /* adr */
            invokevirtual io.vertx.ext.mail.mailencoder.EmailAddress.getName:()Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
        12: .line 167
            iload 1 /* index */
            aload 7 /* email */
            invokevirtual java.lang.String.length:()I
            iadd
            bipush 76
            if_icmplt 15
        13: .line 168
            aload 2 /* sb */
            ldc "\n "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 169
            iconst_1
            istore 1 /* index */
        15: .line 171
      StackMap locals: io.vertx.ext.mail.mailencoder.EmailAddress java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* sb */
            aload 7 /* email */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 172
            iload 1 /* index */
            aload 7 /* email */
            invokevirtual java.lang.String.length:()I
            iadd
            istore 1 /* index */
        17: .line 173
            aload 8 /* name */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 51
        18: .line 174
            aload 8 /* name */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.mustEncode:(Ljava/lang/String;)Z
            ifeq 38
        19: .line 175
            iconst_0
            istore 9 /* hadSpace */
        start local 9 // boolean hadSpace
        20: .line 176
            iload 1 /* index */
            bipush 12
            iadd
            bipush 71
            if_icmplt 24
        21: .line 177
            aload 2 /* sb */
            ldc "\n "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 178
            iconst_1
            istore 1 /* index */
        23: .line 179
            iconst_1
            istore 9 /* hadSpace */
        24: .line 181
      StackMap locals: int
      StackMap stack:
            iload 9 /* hadSpace */
            ifne 27
        25: .line 182
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 183
            iinc 1 /* index */ 1
        27: .line 185
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        28: .line 186
            iinc 1 /* index */ 1
        29: .line 187
            aload 8 /* name */
            iload 1 /* index */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.encodeHeader:(Ljava/lang/String;I)Ljava/lang/String;
            astore 10 /* encoded */
        start local 10 // java.lang.String encoded
        30: .line 188
            aload 2 /* sb */
            aload 10 /* encoded */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        31: .line 189
            aload 10 /* encoded */
            ldc "\n"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 34
        32: .line 190
            aload 10 /* encoded */
            invokevirtual java.lang.String.length:()I
            aload 10 /* encoded */
            bipush 10
            invokevirtual java.lang.String.lastIndexOf:(I)I
            isub
            istore 1 /* index */
        33: .line 191
            goto 35
        34: .line 192
      StackMap locals: java.lang.String
      StackMap stack:
            iload 1 /* index */
            aload 10 /* encoded */
            invokevirtual java.lang.String.length:()I
            iadd
            istore 1 /* index */
        35: .line 194
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        36: .line 195
            iinc 1 /* index */ 1
        end local 10 // java.lang.String encoded
        end local 9 // boolean hadSpace
        37: .line 196
            goto 51
        38: .line 197
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* hadSpace */
        start local 9 // boolean hadSpace
        39: .line 198
            iload 1 /* index */
            aload 8 /* name */
            invokevirtual java.lang.String.length:()I
            iadd
            iconst_3
            iadd
            bipush 76
            if_icmplt 43
        40: .line 199
            aload 2 /* sb */
            ldc "\n "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        41: .line 200
            iconst_1
            istore 1 /* index */
        42: .line 201
            iconst_1
            istore 9 /* hadSpace */
        43: .line 203
      StackMap locals: int
      StackMap stack:
            iload 9 /* hadSpace */
            ifne 46
        44: .line 204
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        45: .line 205
            iinc 1 /* index */ 1
        46: .line 207
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        47: .line 208
            iinc 1 /* index */ 1
        48: .line 209
            aload 2 /* sb */
            aload 8 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        49: .line 210
            aload 2 /* sb */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        50: .line 211
            iload 1 /* index */
            aload 7 /* email */
            invokevirtual java.lang.String.length:()I
            iconst_3
            iadd
            iadd
            istore 1 /* index */
        end local 9 // boolean hadSpace
        end local 8 // java.lang.String name
        end local 7 // java.lang.String email
        end local 6 // io.vertx.ext.mail.mailencoder.EmailAddress adr
        end local 4 // java.lang.String addr
        51: .line 157
      StackMap locals: java.util.List int java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        52: .line 215
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // boolean firstAddress
        end local 2 // java.lang.StringBuilder sb
        end local 1 // int index
        end local 0 // java.util.List addresses
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   53     0     addresses  Ljava/util/List<Ljava/lang/String;>;
            0   53     1         index  I
            1   53     2            sb  Ljava/lang/StringBuilder;
            2   53     3  firstAddress  Z
            4   51     4          addr  Ljava/lang/String;
           10   51     6           adr  Lio/vertx/ext/mail/mailencoder/EmailAddress;
           11   51     7         email  Ljava/lang/String;
           12   51     8          name  Ljava/lang/String;
           20   37     9      hadSpace  Z
           30   37    10       encoded  Ljava/lang/String;
           39   51     9      hadSpace  Z
    Signature: (Ljava/util/List<Ljava/lang/String;>;I)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      addresses  
      index      

  static java.lang.String generateDate();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 219
            new java.text.SimpleDateFormat
            dup
            ldc "EEE, dd MMM yyyy HH:mm:ss Z (z)"
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 0 /* format */
        start local 0 // java.text.SimpleDateFormat format
         1: .line 220
            aload 0 /* format */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            areturn
        end local 0 // java.text.SimpleDateFormat format
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    2     0  format  Ljava/text/SimpleDateFormat;

  static java.lang.String base64(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] bytes
         0: .line 230
            bipush 76
            getstatic io.vertx.ext.mail.mailencoder.Utils.lf:[B
            invokestatic java.util.Base64.getMimeEncoder:(I[B)Ljava/util/Base64$Encoder;
            aload 0 /* bytes */
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            areturn
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
    MethodParameters:
       Name  Flags
      bytes  
}
SourceFile: "Utils.java"
InnerClasses:
  public Encoder = java.util.Base64$Encoder of java.util.Base64