public class org.h2.tools.Script extends org.h2.util.Tool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.tools.Script
  super_class: org.h2.util.Tool
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Script this
         0: .line 20
            aload 0 /* this */
            invokespecial org.h2.util.Tool.<init>:()V
            return
        end local 0 // org.h2.tools.Script this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Script;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 45
            new org.h2.tools.Script
            dup
            invokespecial org.h2.tools.Script.<init>:()V
            aload 0 /* args */
            invokevirtual org.h2.tools.Script.runTool:([Ljava/lang/String;)V
         1: .line 46
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public void runTool(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=6, locals=14, args_size=2
        start local 0 // org.h2.tools.Script this
        start local 1 // java.lang.String[] args
         0: .line 50
            aconst_null
            astore 2 /* url */
        start local 2 // java.lang.String url
         1: .line 51
            ldc ""
            astore 3 /* user */
        start local 3 // java.lang.String user
         2: .line 52
            ldc ""
            astore 4 /* password */
        start local 4 // java.lang.String password
         3: .line 53
            ldc "backup.sql"
            astore 5 /* file */
        start local 5 // java.lang.String file
         4: .line 54
            ldc ""
            astore 6 /* options1 */
        start local 6 // java.lang.String options1
         5: .line 55
            ldc ""
            astore 7 /* options2 */
        start local 7 // java.lang.String options2
         6: .line 56
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         7: goto 51
         8: .line 57
      StackMap locals: org.h2.tools.Script java.lang.String[] java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* args */
            iload 8 /* i */
            aaload
            astore 9 /* arg */
        start local 9 // java.lang.String arg
         9: .line 58
            aload 9 /* arg */
            ldc "-url"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 59
            aload 1 /* args */
            iinc 8 /* i */ 1
            iload 8 /* i */
            aaload
            astore 2 /* url */
        11: .line 60
            goto 50
      StackMap locals: java.lang.String
      StackMap stack:
        12: aload 9 /* arg */
            ldc "-user"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 61
            aload 1 /* args */
            iinc 8 /* i */ 1
            iload 8 /* i */
            aaload
            astore 3 /* user */
        14: .line 62
            goto 50
      StackMap locals:
      StackMap stack:
        15: aload 9 /* arg */
            ldc "-password"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 63
            aload 1 /* args */
            iinc 8 /* i */ 1
            iload 8 /* i */
            aaload
            astore 4 /* password */
        17: .line 64
            goto 50
      StackMap locals:
      StackMap stack:
        18: aload 9 /* arg */
            ldc "-script"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 65
            aload 1 /* args */
            iinc 8 /* i */ 1
            iload 8 /* i */
            aaload
            astore 5 /* file */
        20: .line 66
            goto 50
      StackMap locals:
      StackMap stack:
        21: aload 9 /* arg */
            ldc "-options"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 46
        22: .line 67
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 10 /* buff1 */
        start local 10 // java.lang.StringBuilder buff1
        23: .line 68
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 11 /* buff2 */
        start local 11 // java.lang.StringBuilder buff2
        24: .line 69
            iinc 8 /* i */ 1
        25: .line 70
            goto 42
        26: .line 71
      StackMap locals: java.lang.StringBuilder java.lang.StringBuilder
      StackMap stack:
            aload 1 /* args */
            iload 8 /* i */
            aaload
            astore 12 /* a */
        start local 12 // java.lang.String a
        27: .line 72
            aload 12 /* a */
            invokestatic org.h2.util.StringUtils.toUpperEnglish:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* upper */
        start local 13 // java.lang.String upper
        28: .line 73
            ldc "SIMPLE"
            aload 13 /* upper */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            aload 13 /* upper */
            ldc "NO"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 29
            ldc "DROP"
            aload 13 /* upper */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        29: .line 74
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 10 /* buff1 */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        30: .line 75
            aload 10 /* buff1 */
            aload 1 /* args */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        31: .line 76
            goto 41
      StackMap locals:
      StackMap stack:
        32: ldc "BLOCKSIZE"
            aload 13 /* upper */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 39
        33: .line 77
            aload 10 /* buff1 */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        34: .line 78
            aload 10 /* buff1 */
            aload 1 /* args */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        35: .line 79
            iinc 8 /* i */ 1
        36: .line 80
            aload 10 /* buff1 */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        37: .line 81
            aload 10 /* buff1 */
            aload 1 /* args */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        38: .line 82
            goto 41
        39: .line 83
      StackMap locals:
      StackMap stack:
            aload 11 /* buff2 */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        40: .line 84
            aload 11 /* buff2 */
            aload 1 /* args */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 13 // java.lang.String upper
        end local 12 // java.lang.String a
        41: .line 70
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 8 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 26
        43: .line 87
            aload 10 /* buff1 */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* options1 */
        44: .line 88
            aload 11 /* buff2 */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* options2 */
        end local 11 // java.lang.StringBuilder buff2
        end local 10 // java.lang.StringBuilder buff1
        45: .line 89
            goto 50
      StackMap locals:
      StackMap stack:
        46: aload 9 /* arg */
            ldc "-help"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 47
            aload 9 /* arg */
            ldc "-?"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        47: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.Script.showUsage:()V
        48: .line 91
            return
        49: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* arg */
            invokevirtual org.h2.tools.Script.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        end local 9 // java.lang.String arg
        50: .line 56
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: aload 1 /* args */
            ifnull 52
            iload 8 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 8
        end local 8 // int i
        52: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            ifnonnull 55
        53: .line 97
            aload 0 /* this */
            invokevirtual org.h2.tools.Script.showUsage:()V
        54: .line 98
            new java.sql.SQLException
            dup
            ldc "URL not set"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
        55: .line 100
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            aload 3 /* user */
            aload 4 /* password */
            aload 5 /* file */
            aload 6 /* options1 */
            aload 7 /* options2 */
            invokestatic org.h2.tools.Script.process:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        56: .line 101
            return
        end local 7 // java.lang.String options2
        end local 6 // java.lang.String options1
        end local 5 // java.lang.String file
        end local 4 // java.lang.String password
        end local 3 // java.lang.String user
        end local 2 // java.lang.String url
        end local 1 // java.lang.String[] args
        end local 0 // org.h2.tools.Script this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   57     0      this  Lorg/h2/tools/Script;
            0   57     1      args  [Ljava/lang/String;
            1   57     2       url  Ljava/lang/String;
            2   57     3      user  Ljava/lang/String;
            3   57     4  password  Ljava/lang/String;
            4   57     5      file  Ljava/lang/String;
            5   57     6  options1  Ljava/lang/String;
            6   57     7  options2  Ljava/lang/String;
            7   52     8         i  I
            9   50     9       arg  Ljava/lang/String;
           23   45    10     buff1  Ljava/lang/StringBuilder;
           24   45    11     buff2  Ljava/lang/StringBuilder;
           27   41    12         a  Ljava/lang/String;
           28   41    13     upper  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public static void process(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=6
        start local 0 // java.lang.String url
        start local 1 // java.lang.String user
        start local 2 // java.lang.String password
        start local 3 // java.lang.String fileName
        start local 4 // java.lang.String options1
        start local 5 // java.lang.String options2
         0: .line 115
            aconst_null
            astore 6 /* conn */
        start local 6 // java.sql.Connection conn
         1: .line 117
            invokestatic org.h2.Driver.load:()Lorg/h2/Driver;
            pop
         2: .line 118
            aload 0 /* url */
            aload 1 /* user */
            aload 2 /* password */
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            astore 6 /* conn */
         3: .line 119
            aload 6 /* conn */
            aload 3 /* fileName */
            aload 4 /* options1 */
            aload 5 /* options2 */
            invokestatic org.h2.tools.Script.process:(Ljava/sql/Connection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         4: .line 120
            goto 8
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.sql.Connection
      StackMap stack: java.lang.Throwable
         5: astore 7
         6: .line 121
            aload 6 /* conn */
            invokestatic org.h2.util.JdbcUtils.closeSilently:(Ljava/sql/Connection;)V
         7: .line 122
            aload 7
            athrow
         8: .line 121
      StackMap locals:
      StackMap stack:
            aload 6 /* conn */
            invokestatic org.h2.util.JdbcUtils.closeSilently:(Ljava/sql/Connection;)V
         9: .line 123
            return
        end local 6 // java.sql.Connection conn
        end local 5 // java.lang.String options2
        end local 4 // java.lang.String options1
        end local 3 // java.lang.String fileName
        end local 2 // java.lang.String password
        end local 1 // java.lang.String user
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0       url  Ljava/lang/String;
            0   10     1      user  Ljava/lang/String;
            0   10     2  password  Ljava/lang/String;
            0   10     3  fileName  Ljava/lang/String;
            0   10     4  options1  Ljava/lang/String;
            0   10     5  options2  Ljava/lang/String;
            1   10     6      conn  Ljava/sql/Connection;
      Exception table:
        from    to  target  type
           1     5       5  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      url       
      user      
      password  
      fileName  
      options1  
      options2  

  public static void process(java.sql.Connection, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/sql/Connection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // java.sql.Connection conn
        start local 1 // java.lang.String fileName
        start local 2 // java.lang.String options1
        start local 3 // java.lang.String options2
         0: .line 137
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: aload 0 /* conn */
            invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
            astore 6 /* stat */
        start local 6 // java.sql.Statement stat
         2: .line 138
            new java.lang.StringBuilder
            dup
            ldc "SCRIPT "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* options1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " TO '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* fileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* options2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* sql */
        start local 7 // java.lang.String sql
         3: .line 139
            aload 6 /* stat */
            aload 7 /* sql */
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
        end local 7 // java.lang.String sql
         4: .line 140
            aload 6 /* stat */
            ifnull 10
            aload 6 /* stat */
            invokeinterface java.sql.Statement.close:()V
            goto 10
      StackMap locals: java.sql.Connection java.lang.String java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.sql.Statement
      StackMap stack: java.lang.Throwable
         5: astore 4
            aload 6 /* stat */
            ifnull 6
            aload 6 /* stat */
            invokeinterface java.sql.Statement.close:()V
        end local 6 // java.sql.Statement stat
      StackMap locals:
      StackMap stack:
         6: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 5
            aload 4
            ifnonnull 8
            aload 5
            astore 4
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 4
            aload 5
            if_acmpeq 9
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 4
            athrow
        10: .line 141
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String options2
        end local 2 // java.lang.String options1
        end local 1 // java.lang.String fileName
        end local 0 // java.sql.Connection conn
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      conn  Ljava/sql/Connection;
            0   11     1  fileName  Ljava/lang/String;
            0   11     2  options1  Ljava/lang/String;
            0   11     3  options2  Ljava/lang/String;
            2    6     6      stat  Ljava/sql/Statement;
            3    4     7       sql  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     4       5  any
           1     7       7  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      conn      
      fileName  
      options1  
      options2  
}
SourceFile: "Script.java"